From 01c7ce508e2300c7b41eb42f1e7a752aed92d540 Mon Sep 17 00:00:00 2001 From: Samuel ORTION Date: Fri, 9 Apr 2021 14:29:00 +0200 Subject: [PATCH] Added GUANO metadata --- .gitignore | 4 +- public/contact/index.php | 11 +- public/contact/sendmail.php | 15 +- public/explore/guano/index.php | 73 +++++ public/explore/list/index.php | 4 +- public/gallery/gallery.php | 34 ++ public/gallery/index.php | 44 +++ public/gallery/scripts/gallery.js | 10 + public/gallery/upload.php | 74 +++++ public/larynx/index.php | 9 +- public/larynx/scripts/spectro.js | 8 +- public/media/icons/bottom_arrow.svg | 61 ++++ public/media/icons/copy.png | Bin 0 -> 6379 bytes public/media/icons/data.jpg | Bin 0 -> 16804 bytes public/media/icons/data.png | Bin 0 -> 62172 bytes public/media/icons/style.css | 464 ++++++++++++++++++++++++++++ public/scripts/script.js | 29 +- public/styles/style.css | 146 +++++++++ public/test/file.php | 13 - public/test/upload.php | 33 -- public/upload/metadata.php | 16 + public/upload/submitmetadata.php | 23 +- public/upload/submitobservation.php | 36 ++- public/upload/verify.php | 2 +- 24 files changed, 1040 insertions(+), 69 deletions(-) create mode 100644 public/explore/guano/index.php create mode 100644 public/gallery/gallery.php create mode 100644 public/gallery/index.php create mode 100644 public/gallery/scripts/gallery.js create mode 100644 public/gallery/upload.php create mode 100644 public/media/icons/bottom_arrow.svg create mode 100644 public/media/icons/copy.png create mode 100644 public/media/icons/data.jpg create mode 100644 public/media/icons/data.png create mode 100644 public/media/icons/style.css delete mode 100644 public/test/file.php delete mode 100644 public/test/upload.php diff --git a/.gitignore b/.gitignore index 512c50f..3b9ae08 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -public/storage \ No newline at end of file +public/storage +node_modules +public/test diff --git a/public/contact/index.php b/public/contact/index.php index 1422481..a741806 100644 --- a/public/contact/index.php +++ b/public/contact/index.php @@ -17,24 +17,25 @@ include("$root/analytics/matomo.php");
+

Contact

- +
- +
- +

- +
- +
diff --git a/public/contact/sendmail.php b/public/contact/sendmail.php index ee88fbe..58ad9c0 100644 --- a/public/contact/sendmail.php +++ b/public/contact/sendmail.php @@ -50,14 +50,14 @@ try { //Server settings // $mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output $mail->isSMTP(); //Send using SMTP - $mail->Timeout = 60; + $mail->Timeout = 60; $mail->SMTPKeepAlive = true; - $mail->Host = 'smtp.gmail.com'; //Set the SMTP server to send through - $mail->SMTPAuth = true; //Enable SMTP authentication - $mail->Username = 'samulus.ortion@gmail.com'; //SMTP username - $mail->Password = 'CEkvk6vjP28vhCy'; //SMTP password + $mail->Host = 'smtp.gmail.com'; //Set the SMTP server to send through + $mail->SMTPAuth = true; //Enable SMTP authentication + $mail->Username = 'samulus.ortion@gmail.com'; //SMTP username + $mail->Password = 'CEkvk6vjP28vhCy'; //SMTP password $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; //Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged - $mail->Port = 587; //TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above + $mail->Port = 587; //TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above $mail->CharSet = "UTF-8"; $mail->Encoding = 'base64'; //Recipients @@ -75,7 +75,8 @@ try { //Content //$mail->isHTML(true); //Set email format to HTML $mail->Subject = $subject; - $mail->Body = $message; + $mail->Body = $message; + $mail->Body .= "\nSended by $fname $lname <$email>\n"; // $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); diff --git a/public/explore/guano/index.php b/public/explore/guano/index.php new file mode 100644 index 0000000..d356f1d --- /dev/null +++ b/public/explore/guano/index.php @@ -0,0 +1,73 @@ + PDO::ERRMODE_EXCEPTION + )); +} catch (Exception $e) { + die("Error : ".$e->getMessage()); +} +if (isset($_GET['record'])) { + $req = $db->prepare('SELECT * FROM records WHERE id=:id'); + $req->execute(array( + "id"=>$_GET['record'] + )); +} else { + $req = $db->prepare('SELECT * FROM records ORDER BY date DESC LIMIT 1'); + $req->execute(); +} +if ($data = $req->fetch()) { + +} else { + $_SESSION['error_msg'] = "Can't fetch data."; +} +?> + + + + + + + GUANO | Chiro-Canto + + + + + + +
+

GUANO v1.0

+ '.$_SESSION['error_msg'].'' : "";?> + about GUANO +
+GUANO|Version: 1.0

+ +Original Filename:
+Timestamp:
+Species Auto ID: None
+Species Manual ID:
+Tags: None
+Note:
+TE:
+Samplerate:
+Length:
+
+ +
+ + + + + diff --git a/public/explore/list/index.php b/public/explore/list/index.php index 652ae3f..f3c9787 100644 --- a/public/explore/list/index.php +++ b/public/explore/list/index.php @@ -4,7 +4,6 @@ ini_set('display_startup_errors', 1); error_reporting(E_ALL); session_start(); $root = realpath($_SERVER["DOCUMENT_ROOT"]); -$version = "1.0"; require "$root/database/credentials.php"; // Connect the database try { @@ -66,7 +65,8 @@ $result = $req->fetchAll(); - spectro analysis + spectro analysis + database search diff --git a/public/gallery/gallery.php b/public/gallery/gallery.php new file mode 100644 index 0000000..b28160b --- /dev/null +++ b/public/gallery/gallery.php @@ -0,0 +1,34 @@ + PDO::ERRMODE_EXCEPTION + )); +} catch (Exception $e) { + die("Error : ".$e->getMessage()); +} +$req = $db->prepare('SELECT * FROM images'); +$req->execute(); +$result = $req->fetchAll(); + +?> +
    + +
  • +
    <?=$row['species']?>
    +
  • + +
+Upload Image + + + + + + + + + Gallery | Chiro - Canto + + + + + + +
+

Gallery

+ + '.$_SESSION['error_msg'].'' : ""?> + +
+ + + + \ No newline at end of file diff --git a/public/gallery/scripts/gallery.js b/public/gallery/scripts/gallery.js new file mode 100644 index 0000000..1d5d2fa --- /dev/null +++ b/public/gallery/scripts/gallery.js @@ -0,0 +1,10 @@ +images = document.getElementsByTagName('img'); +for (img of images) { + img.addEventListener('click', function() { + if (img.classList.contains("fullscreen")) { + img.classList.remove('fullscreen'); + } else { + img.classList.add('fullscreen'); + } + }); +} \ No newline at end of file diff --git a/public/gallery/upload.php b/public/gallery/upload.php new file mode 100644 index 0000000..5cc965b --- /dev/null +++ b/public/gallery/upload.php @@ -0,0 +1,74 @@ + + +
+
+ + + +
+ PDO::ERRMODE_EXCEPTION + )); + } catch (Exception $e) { + die("Error : ".$e->getMessage()); + } + if (isset($_SESSION['username'])) { + $req = $db->prepare('SELECT id FROM authors WHERE username=:username'); + $req->execute(array( + "username"=>$_SESSION['username'] + )); + if ($data = $req->fetch()) { + $author_id = $data['id']; + } + } else { + $_SESSION['error_msg'] .= "You need to be logged in to upload images."; + header("Location: /auth/login"); + } + $req = $db->prepare('INSERT INTO images (species, file_name, author_id, entry_date) VALUES (:species, :file_name, :author_id, now())'); + $req->execute(array( + "species"=>$species, + "file_name"=>$filename, + "author_id"=>$author_id + )); +} + + +$_SESSION['error_msg'] = ""; +if(isset($_POST['submit'])){ + $location = $root."/storage/images/"; + $name = $_FILES['file']['name']; + $temp_name = $_FILES['file']['tmp_name']; + if(isset($name) and !empty($name)){ + $location = "$root/storage/images/"; + if(move_uploaded_file($temp_name, $location.$name)){ + echo 'File uploaded successfully'; + db_entry(isset($_POST['species']) ? $_POST['species'] : "", $name); + header('Location: /gallery'); + } else { + echo "Can't move your file."; + } + } else { + $_SESSION['error_msg'] .= 'You should select a file to upload !!'; + } +} else { + form(); +} +?> diff --git a/public/larynx/index.php b/public/larynx/index.php index a969589..cfff89b 100644 --- a/public/larynx/index.php +++ b/public/larynx/index.php @@ -46,6 +46,9 @@ include("$root/analytics/matomo.php");

Larynx

A web tool for bat sound analysis

+ +
+

Larynx v

@@ -60,7 +63,7 @@ include("$root/analytics/matomo.php");
T: - ms F: + s F: kHz
@@ -71,6 +74,10 @@ include("$root/analytics/matomo.php");

+
+ + +
diff --git a/public/larynx/scripts/spectro.js b/public/larynx/scripts/spectro.js index 4d8bf92..95ca77d 100644 --- a/public/larynx/scripts/spectro.js +++ b/public/larynx/scripts/spectro.js @@ -66,8 +66,12 @@ function measure(x, y) { y = -(-(-y + spectro_y) - spectro_height); let t = (x / spectro_width) * audio.duration; let f = (y / spectro_height) * 24; - document.getElementById('cursor-time').innerHTML = Math.round(t); - document.getElementById('cursor-frequency').innerHTML = Math.round(f); + let frequency_factor = 1; + if (document.getElementById('exp_x10').checked) { + frequency_factor = 10; + } + document.getElementById('cursor-time').innerHTML = Math.round(t / frequency_factor * 100) / 100; + document.getElementById('cursor-frequency').innerHTML = Math.round(f * frequency_factor * 100) / 100; } let spectro = document.getElementById("wave-spectrogram"); diff --git a/public/media/icons/bottom_arrow.svg b/public/media/icons/bottom_arrow.svg new file mode 100644 index 0000000..2f403ea --- /dev/null +++ b/public/media/icons/bottom_arrow.svg @@ -0,0 +1,61 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/public/media/icons/copy.png b/public/media/icons/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..558188d4113d595bea3a6a1bea061c8905144c55 GIT binary patch literal 6379 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 CEDEmx literal 0 HcmV?d00001 diff --git a/public/media/icons/data.jpg b/public/media/icons/data.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aa0cacd02c852523ecbb5dfb14c6bdc0dc62e5b2 GIT binary patch literal 16804 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 literal 0 HcmV?d00001 diff --git a/public/media/icons/data.png b/public/media/icons/data.png new file mode 100644 index 0000000000000000000000000000000000000000..afa15b2a6051ac921c94ebd3486d7ee8acced6f5 GIT binary patch literal 62172 zcmeFYWmH_yIXK~r*U_8cXxMpCpZLmr*S7(a3{FCBoGL$L6Xb+?tRYLdwloL z8RNVEcK7Hp)~Z?cRMoR;&hEKZSFDPXG%^A{0ssI&mX(oE0|0;<@1JHkn0JY|ICK^O zz)|3*q2r-u>P_n6=4@r_U`guX>tac2>0@gJ0QhXw<=Lhda3@Cmxy1^Ex|nk9Br9=d z9V?{y^~qu)b^9W#$wBjThBq)&f*P=}{pVN5=is+9W3oF8L*}|w)tci%ft#2#<*q-k z9J{*%$B&OM$I}h7gR{oo3_*e5q}Ze%w+TkVBtsny!Eb{dNus!n!Uk2B4bHWNU)XMr z&3^`Wsk{cr_>l(&^)Z9`n9~oA3HHw*Zg2Ja5_f_EB0YskE<08)3;*Q(o_sqV`~B?? z!3uxmOBtRs!o;n&!mnF^>>ub%>cXSP$356zWJ0LbJq;1gTvLVG&kuUPHxqt8b-nx| zSp4&~are)UFZBlJQU)gDBF40|f)W1ixO7QU&{$ zJl%3L4!=#E1-w~%b*;bkY)^lpsxq$s<$%>^7)4^xBjNW&>(}B_!jpR8gQk<*ccN?8Mgfh68*0%nQaTtcIry1IdNl{nH{da^57!UJaV6!}ZKuS5;< zu`FYkvlu&pW8J$b`TT|bNu&KE5MORGgSU1AZ@>IHoVM6RvzUH~btqsE;zndQU)X)c zLd5uKzdgxu)gf#=bs6l!XpoD|I6Iw>n->(w+$8rj)Ulv{JUojn6lBKH>D9*^65Hv$ zZz^U69YCcdhTJ!@Cf1*r51k{xD~f~5fF>6k9UaeGj&Jx;@O0-@3Gvd}JeKoxDufVG zRZTIW?SpNz4lnL&<+nuCnN&IE@}&hiZ_9LD^_jLMJ$-DwuNity<;yF2&ZRR2ei!Ad zJARj?v*^+g3R6|32|}Y;99}{5H?Mw``wssHU`P^;(>UzCUWd=q(%ne#Nc9>Cq|5xNte4qh6ZN^ zYc~QDUXAJ6c7enE-n?mlzI`1=@paoGn4S5NvF%^OfI-e#(dX?g#LIw_CUO43fSp! zMSZ*K8rkQ0O55f5NV#usdTr!4kWQ^ZxsSN{tiXK$S6Sviof)Y0V`@ypdw{eXc4ULm z=l6QhlAHV`qiD3dD9Y)Lmc?E7SA%XUo$RK($E%Xs%Q}01`85GtYZ~caEz9T5dXbN~ zoU~+_g+dvT!RY~T7zOdk+4nlUmV2Rf2kZCKdM~Pk7jf(AU-}HSNWFeZ3Ojaq9x~c{ z6FYrsSxMe@stp_+aMni{>(*cipe;zj$!1)&7hqm>s5P0QTdR*%`MOEJpZiOdumzR< zyo+b?!xL`jis4N6%}Lz`@rs_#dc^+kR@b}K&_`M*xQj$Y!jg6B{bA2rn{}<-DO`w! zdmh=Z#QF_z5M^1?cx;cG*WGPa!&BNq0!vLYCWjv+G{1k+yEj4jYGIlri8D{G*o&n) zEe{m6?>Rf2YEO$-OxO8BO>IIXu-W@T4?V>*Y_snr(kmxK+5w zFn*Lgn>>fw)eAfc)ByK-9+Ie9L5#jczySZ7@w%@lQ5<2Bk6>~nROj(ye5$G<3XE#fol6ggVgLP=i=&8x7+T_Ah6hL;Wy6O zcMikQtX1bDL*Sl;q%AA@L@{ z0AIvl!Rq49^Cev(a3)GGg#ofmC{;z*4XtRFUFpk_Z!DP@tcHB;LewQQD|n#n8G(l1 z?O3RD969Y36{$?|V464C><)A8@@EHmgoJ>=uhk*nJt)$Un6ppAS1cRON>twjiF zrS9j!9ygkG0|}ZM!HYFm-$BWV2N7&6gokz4<5q)$2qV%qQ&?0y^8#S5{@b*>U3amV zBtQy>JQKQsl&L&uZ;`S%wm}<}vi^q-d@7VGQt6Ex6CH4Q#08Y9mG%iUXf`KhV}4-W zWZMFo78v#cQ|ThXoX-*x-R)`Bmhys@i?eHi(-%(p36LQfN*EjPjKBizh>! z5-`glR0RtWmer#W{cXZSCPe(ZBm{TT=Bnny@IbMIeZh~tI$D5$e@y)~U{MJ(Rvr#X zwIWiLj2@nJOZ?VW*oQLpWemCW-tNT{5U+$4mKj z0F*JUUL1c0spO2X)u$yqfYrLBLE}C>R7hk_F^aNypH8s59regg`pg~SpyE|fcqg#x zH}@WR8ZJH`kV5(JWALmD8f4|$#B~izeY`=u`Lla5A9njD*7n%FYNh4k zJD2F0BxyKqq2ud9Kzyk@jGtxk-LqU4<|$yQ%~L71iGjRC%?qaq{}-B)dsOPs{vr7* z5Ypp=eG0q^JICa1NH@=ZchvzROLw*iQI&}|%qf`+Bw2Y1Z7ni!09oJ`^2Yv%2^{%0 zA7}iG z8vDs5*nu`<+~Z$RXMR!tV6+k)+fs33M6D4AV)9dps{gE-RB)gRgJ-B!?up4STBTn9 zupg;XGgmu$D}IY^F0c#CzvF>&qU2uj8b(S{Ekaa708U?Cqfoj=ixs|!WX^fC)gj}D z@0)P=eX33JCs{%o?ni+0VDTk*JgTNd3obIgaDMubG#)3ym(%&dfTR+zfCzD-$$iMw z2&*5;uK-Iup^J*~3AY^vlkc_j8s*IZEdYp`kA+C>f3hhsoP}Wm@%Y^SfcGq*^cnAX zVbH7!@t92v79bzN3yKbrw$>)`M*d(NSLqO;?+3jy-^pqc2>kOX@SuPyIY<#>Y#_MG zNv)+c=REw~Zu}DheG7uTF`;>yV_A6bq$0uRuXfyxSo-9&BX}nLKp%_GuBj-=Wa}zJ zHsp;-{i75T`!!$^%2SN<$AQv@~69b%k zDNX7aw+M|!nB9!$^$K6Ic@(-2U;=??$zAM6CJ&)y5c6SrqV4 z9cG-ER>~NHG3HBU)+e`T$aA5|@6caLf-2YLu?u1i9y zB~_C56PM;X)OOfj+Me9!UN5Y^pOuq@7B1d%MK0kuZ4luOy9fdy68`X7GBUN0zva#F zz@(ygKG?P}GB0&U?geJy-&cJFHV?lWXzk}FB1o0ttHIWajF+T3(xHp;$M$8F;zfWv zKU6}Asvu%V59^oNxNXgne+!Bm7%m0^jczDJ?_>v03}MVv(sdg7 zd0=DdYy8PceInS1AF_g4O=!0NOolejT3F(=w;KxX#^kV`6nkJfI&#O=d9We&nsflN z1ePy>JmUNd#1h2NRfyPkMIh)X7OWg|Jg^blH~8HlFH(I}LQUdR(SraO)|kChLFJrq zgKafFg=&wUlzsdg7+HkY`#CS4=hm#?E@0 za#dY!YhDfm*HWqa?lVA2BhoKXiBI;^58#y`&9oT}L|Fu=T%9)bR$LmPq<5~H^_@U1 z2*T-GZQ-#g#)7#_*U*HqgiVQb;5#`&AtpMHK4id!NuY6d^!i>Q;XY`E9}$b<#n3Cn zSLkQHk`!hs!sG6Okz^8UJSXh$a_^%y^HLxuHi~NTP#F?5lWo^t!m0~8z@sGCjc8$p zTbP9c2eUj-aEltF5U<5d9n|4-DUoyRh`g_ajv*tVjG%es58w@U5XN?!U_fF~oy7ZyRk!&-)oJV#=Tv#qRN-Ac6)dB z9~ZEDO{dUDrNpA6qaNjaZ|wAbuQduaDLmz3!8b;(nWBq%cUFy)5^6~9!C-RxqtV zRCA94Slzh^%G-Zr_->K_A9f2V26WqzAa73~!$dtt`vka9c>RM8hzvYM}~^iiJN;? znd1c2*~c_@_}P=JO4d&o&BQ2ycNtp8j|XxZZ#^A@E}A=fMgy&~_)g>Oa-8JJGOFLu zGl>YHU9Y-F8&?~3AEFZb#TkutZvYAfH4JwjEmNTnXm(Fm z9isp_@G}F>c1@qKW5KS4>>p?lU_5yd3Zg^lI4%np5NJ@>Trv)n*cDQ^g?W2 zNtfV>q8%)33m_dOkQjtmDNJ+o2eQWR=pS%yFhW68d5Z-{#YPkh0iO41y0xVAv=T$n zQ%>e@qWW4k2pks8vXC8URJuv$G_2lQA<$ zMn4TGz-!a6*lHqJ9RHASI6@)XWB%>A7rV+(KCvN#n8#xm9WZXlrzi34n~&Rrr?Pp< zaziz1L4-xZcTOeIoNLWR7TipHdpgy`65?M(6a(IS*G{4Xd$~D6q@v)L=)|!mL5o3D zBR3_50?@PTa@0NbG`a9cn^uW_5ie<{dh+an0&0Azs@pYqrIAPUes)T7aCn#^xJx`u z_Gu2ijNsZo3A`vPka)tv{(6x`M*~O3fM)q~l}R2-ndoffKJ;xrpn+Qp?GJ%^9zyU> z5kE#!i#dN80Rv49Qc^}9<`}o=m^gy)*&<#;b^(a~WlG=J& zhT@VW0kyVxq4JD3Q*!vxi$|n5SS;Zh@fK>?jqWA500W(Ta!be4ykW~N{6v}n=J}&2 zD!T%9@0W#U|3_qQqt9aGe2G~2JD-;h1c|o5)YD31_C3hbuz{jKRmW}Zh58mu*hS5W zP7^#&vb(R@^lXQSTEv2t6DBQXNgJ`Alejdk58ygu9cM<1?RDq__HUf>XH6Z9TA*T# zpu{l!PiwJ%dNs$1S1%#PFAY+v@lWL_$jBQFY|ts6(Z6h6B;Hv3@NR`~zmgZUxd`Wk zyv;=y!KVHC^xF{bs#ir5OQc6+P|w>3LXcVHtKYxF2D!79qi0T7V%C@YStklp|{9j zQqI?ItiY)ep8V$07z(4lT1B=OkCQ#gY3j$5_k*B%se7l$x`uOSu) z_H`BsQGK&>WzD+h~hwsB|qKx@FTy+NcuNp;Q-H;tD-*}?rU$v<78Z=x9kys)vU zD#>uip@z9BJv}iKc<`S;g3YU{GUC+jesWY3#aCX(%K)yiJcSNJ1>GQx%EFK66HR4w zc2yAh?S}uB2uKleT>eg8{aEfqj@>lvIp^k_)TAZxThj|;@8xG zR3$^Zk25HdFoSG7DO|`^N5(P~R(f{AM5*5h&`I|u8&Zp^Loas>;OjqluxXLdfKU0i z#h?n+1Fe(3FC3C`A)rT|zlIW{E z?n_@H_u?a4oHchGp$K_33&v}9{I3`a6rmgI5J*7@Jp;{XWr%uZyv#g4uopW9aISEg zl2@N86V>f`67zkjaFKngvE|9XnO)*_h}MoYdZIS z%$14oOKyhvM+*S^WN!@Jo>OW~=toPlu>Q|EV_^swaF1a^HX`g*k6otqK3hfC-N_CK}3a%9^)_B^nl1Oxxyqr0^6b*p^ixRT!lq-J}Zf4F`|u z;k7iQD3L38X*dnbsW%{jpN!QU1fv|z^2Ns8X9DvyJB;^eB3|| zpH{4urqs%S7d_4ZBp5e(0l;ZX+?JU}G&9~S1_As+{YtQ|r8GoNUWyKb zaQ`v&{PkJ24cC|{M;E!uVnrMC2m!gc=DQJ0tAu^%7bZ8R-wS)|YVAWHM~}N)|4&!X zDr!=)OrJOU!|QGJ+xjJ#!n5d80+&0U#$Weee+xB0d^iBlJ%yn;N8lO|i0)kaVy5Be zN+ULMsbwBPHF$MI!I1OybIvfI7gR)P%h!49CZu>Y%@FiqZ^rkT_C67R%S_3x8 zFh*)A#7;xS5$EB+-@vr4(J!Q;-2AXf!58m`Eq!Y@u?%Ff(PwaSGt2No8zHI*`K6jM1~$&y{Ry0^q?XoRqV8g={7l2<>*?H04bbh6aV#d;Jl$1T zdAo+b2p`MZ0e*W3u^AtPzC~P0%mj(P#5b1UpJOaIe@y;NUE5p6+w);KLT#^(0t|+T zo1AK)Ccv1j^V`Q-`~*%^F^;&SgR5LfF8RhtEA5l+uv^S$VA!w*%FSfllP8d&g7NLG zsdpmFtQL*`#MhPi*m=(bCn3oU(^}0+YOg-qgWs%@!Zm;ap8RPhoKq-unR4F7B5Ce? zMTX5Xr??CZ!Y4N)`q?*sMX^G-jJXOTgKGy3i)G}}uZF~HGXcoB2t90&r0grtz1qJl)#4L@>1iKo#VBRnFU@3BVie1iWI|2dsoY?>E_L6px-#AAP@xpNuz7 zm=_)D+*f~13(26e^Wj5v5a&?Vy+w-QyN9O!?hQ#F$5MSb{KPbf>$FNb*z!_<~x`XMVKKHJrRZ2a2n z7!nzb^i`%AG{S4V0mz+Vd@7sZ^2ZLpMnqp^4#OCMcV(JOI)?9(0^A~FOj=jEG!CaqYAc8Nvi zMxO;A92OYK5^{PXf%#|(T|zbR%+}7g)Mq>cV~COZM|6DqehH(}yvhSXzxpG$6#Hzn zTZ)Fv$do8diG|&1``0-fV2XQ$DoyvPsJmp1slJ$^*L?0Us*%ioaG{FFuFz-0QhnTA zCi|Aj8?zJDZKEc*Nq*(Cx`)e~DPe~8mCp$3jW^@?EeNOmIj}pN;Ib$T=3xRNw%sUD zRkG@W&Wc3`3>%b!tKET9%^Tt`8;sjYBs8*8WLhfFROh`h<3tae zWZJ5UY>4&k=}{Ydd`2{YWnvXQ^&d9kln^6;s1th_TMaeiOu9|w3-<#ul;qe*Dj?0Y z@eQ7m&wj(&p*tyq*C_W0F6yWHBGoH$XEcB+TXg>^uWEH#nZiqv3^u!1YeAQQXr{>em4g2ssnb3o8GODwZ0?_fD{+va9O~GavO;6Cf?7Y9 zUJ2iXwUi8@wO6QQK_}OE5WBJa1k(l=xPy)FjQ@>N>LlBcUBkc1qzi6 zvJS%ih!o4KxPS|R+a4|aDEE^RU64@5aA=b#52H3dy)IBKsTE`91nVh4OBP%_E5nK3 zqRu&X1)6ci(s6PrGSbuWCf&`1YV~rdW`-ecL@E2Cm&`6u@Aa+c z2EIB3>kB)AIwzGwxQ~?RASq}`cVMIxe^8pW(aDeCsrdV`OzFG^?Noq0qN7aM#$8E+ zLvg4&732VdR}r6s$=yM8`$bif(y4}ef%Y(NUGQl#+O72O>&!8JQP>;glJ7$N&dZ=! z(k)u(@h^IIVdFK4Jr;61Zg?}zqtf;$@Ww6fG8=M}F7n-o3KS+A+|cxxT{4y75!%tZ zU4;0{-{eAs;nC+Plqq^)b1{&S+oyzk{$9b_hTBAQFz} zT&ymkGU}-3NeU!HN7)pMu&*8f5qqqh8!+^_60}G+0Z(sM_c!*FWT83&8JL2_Ov0f@ z3lpdl-3s;Wy^ul`2{>qRJc3G)(VfYvDPg5_TF64*zvSGJX!^gJSo(9F$FJjke7%q# z6`T{s=N%aHq6x3QD*mD30npPgYfbw^W<`gszg?G@#0ba!u_0_g4*MSAStBB+y>k$z z2mC8X>kzyk<_F_{-yw~aQ`H`R`i&KR4|iw8+>?WoyKNbrAZ)IOQly&RWiHPVT$mo6p>+5Djt7Rb}=gjq#rX!K-jKp_CiFdYZH$QG)T43y3R4DG z%q)K0PBV}N8J0&(M2_yHNg%DAG8sW2>U%*K@zs6KvK`-Hii$3K@56n{wUpI-2j7oX z*=?T`Q4@?ils9ITq;$nD9`KJZ)O1%g-!jXZ0vxvPGtg$IA}u^`hddjbY!{Gd-`%W_Hu%Az^T!vevyiMOx7Kkm zpbnn-X?Q1F97ZB)Gbx`>C6vIfmk8%{A!W9~$TOyBQg9M( zPoBlSYF?ji&cTN0zCj>oGyJxivyj&T?{RH;qS;aN$kLQ6^V;77DVks03M>@xMJf+b z_9ZD<-}rJGoMro>=O}_ZPAhLWH~mwgFFTuIcyzAMC63!dHAsFshG_+thx#6w-9HE& z7DbA#(m%cxm|5J}fqp7XgfjKotyG^B46w~jm#bSibf(FeU zHwLc*R8j+TrQs6wsKhLXz|5fqEVSdqLl~i#Vx-|$Zc*<z@Qo@IZjVV zMuYwbMPAX&c>|Xz6p61;^^`HxElpf}1Z<%~nn~&&#j;0eZDr)dK5@R8FWKI*8}7hV ztV!8;OO?qJ=9TX*WM?OMtr2`U zPX(xlKeEcW82hE`37tn}jDnK*l+o1U7n%r740gTFJm*>s#e4Ga3a?_y;3XP-X^y6A zDt78}$X)k2RaNV|uqUlD4XV&@ZobFrFLCL}O!saO3$*43_SoKcuoQtQXTon-=qX^X zNpyO@N8irb+);}_RpMpn@SpCAf98~n%9^YaZ&1`p)@*}tpq9pwy+x3l{=(9f^sav%zu z0Sz21m(@E;s}`hm2| za!nl|;pC*e39~9{EtGY~a&|(dq0xToZ0&YKhqjZq{UUol_j>OkD*7}*aCjC$tZ6k+ z{00Tt;{kJyJ$~?FgiHu6>IbRWV?9)bAW|Z1j5Ao>YfW!@(7gfiiCIfpY=9CIP9aQb zrUo`6Mq=5v1W!~ORRJ%%)wgBvPrlOf2QwjqE?X__^OFUo`G){a-#b&I#S78SC{N8~ zgidjte!+%Q{N&O7WE6b7d)+p^2An3j)sw)Hz(4|m@UGE0Y{vn5D%^QspRN)eqE3TI z^0PfmxUjHe6O5u}@&UQ7{*TIMICO9BErcfxo{xti4gfA*&YF+G)M zq12P~Vk0p=tnes{JtNpRI)|vS3IW~id#iRcrmjUV2Ld~C40^0}Y~RrpzI_$&r}Cr~ z+i+W=6kR{*DrXC5MEL@zP1r#5)g*?##swXe$Zg{Em9H=r*S%0AEI6J z)>K%VuTysxgY-d)R$s`{CU{|UtaJda3V&c+eUet3#tw-lQZ7qb5f{urGE5DsVCO6~ zp7^AJ zH7+y-VqH;Dso}K9YO{voS{Dwxh-}r4_ybdXhvhfh9R78ri}peOw*B=hUvN($7k#+CJSwHw%f2tcD4g|Bl#GOr=N~Lj(r}ut%m2XE=?v zNUwW9r{d(y>2kh=VWltt5|q_4#iWj_yrvS~c^aS8C?(Co%YD*7q>B9J4d@=1DWI|G zqP7?Q`MOUFwoT}8O)k=eNW#>>y^bJ5_sJ3K*|1Y-b=7TS7Vwc98r*9O41|tE{@7uJ zB3ZHKsq5dyWg%@Kb!!w+6$Dr*DMs^nTanF>-k{Km*!n-ZYnY3zS&sIWr#d^QX;`MN<_j}EXM<;FpV z-KI)a-m51+3JQJMK-S{-=z_2XBY-neeAjKeYu^^25<4xd^HE~!wU@R(Di&WX{ld`Oxzs?(jDH;zh(Khbe(`dgz7TY9*aOQh-TYTt3o=jDcmLMJIpk~7V06B`% zLdj&O2J6Hlpdrfv+jbg{sBX8of=eR>O_|Ciqt#(orc&&)i)V(HO5kpnI3r&m!Sgl; z+-B1rz?Q)xDC%{rH@3@vAX&Fz|u z6FTlHF8n|i`|OLR>JK??5-}+EbJ;Ya*21!RTnTF^Spem$_WA1V;->hrMOZ-VA_%Ry zo2Sfnh(KW!vU(#|O@n8Nwjpl0v)4-kxMtg9KJ}_;Nm3ANvNQ?{f?%<$vtfy_t#v~t zADX2cj4j%8ZN|#+n|-KNfc95H^oEjfh-1* zbweCbdEU}mqv6+T1DRF;G2uyxxByAd^6L+8ime^H-lx4XQVXOqiCQ>yFPyYGk$MEy9jKs~B$}jF2a)wW+!V4@6bzFB`lv(-v8&O!tkqX_tk%{XFs?jLhbz$>rUj|o7$U|aFRS4g zfDHT{=RFkHtF)na@Pm{l1^A4{3H!7+u*1wX!)QZc;71UQ4zbY+YW)Zg!3qPPI$WfV zf~B*E?lNH+^?=t-^QX3t;)hAaDtM8h#~dH**C3fzvt>-c`1Gf?j?g60>-V0^a?L~n zGC1>URo1=Cz6#cM4f$J1DK9DKtgma?_{zH7Gy8m1v*oX=z%|=!J{hK}!xHm-w45^C zL2C(6T^@z)ECii2Y+sN2RjU+U>iDBwANXY??≈wWS_ai0tSf>@~M!qeeh?kueCL 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%0Ds6oUzwo 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 a{q_IO>b`0{peFSM{Zo`xg;qg62K^sndXka= literal 0 HcmV?d00001 diff --git a/public/media/icons/style.css b/public/media/icons/style.css new file mode 100644 index 0000000..6cd7d09 --- /dev/null +++ b/public/media/icons/style.css @@ -0,0 +1,464 @@ +* { + align-self: baseline; +} + +body { + margin: 0; + background-color: white; +} + +header { + text-align: right; + padding: 0; +} + +header a { + text-decoration: none; + color: black; +} + +nav, +nav .container { + padding: 0; + margin: 0; +} + +header .container, +nav .container { + display: flex; + justify-content: space-between; +} + +header h1 { + font-size: 4em; + padding: 0; + margin: 0; +} + +img.banner { + width: 100%; + height: auto; +} + +section { + padding: 1em; + min-height: 100vh; + width: 50vw; + text-align: left; + margin: auto; +} + +article { + width: 50vw; + text-align: left; + margin: auto; +} + +article h1 { + font-size: 5em; +} + +footer { + color: white; + text-align: center; + background-color: rgba(0, 0, 0, 0.9); + padding: 1em; +} + +footer a { + text-decoration: none; +} + + +footer img { + height: 1em; +} + +label { + width: 40em; + display: inline; +} + +label span.info { + display: none; +} + +label:hover span.info { + display: inline-block; + position: relative; + background: yellow; + padding: 0.5em; + border-radius: 5px; +} + +input { + margin: 0.1em; +} + +/* Style inputs with type="text", select elements and textareas */ +input[type=text], +input[type=email], +input[type=url], +input[type=password], +input[type=number], +input[type=date], +input[type=time], +select, +textarea { + width: 100%; + /* Full width */ + padding: 12px; + /* Some padding */ + border: 1px solid #ccc; + /* Gray border */ + border-radius: 4px; + /* Rounded borders */ + box-sizing: border-box; + /* Make sure that padding and width stays in place */ + margin-top: 6px; + /* Add a top margin */ + margin-bottom: 16px; + /* Bottom margin */ + resize: vertical + /* Allow the user to vertically resize the textarea (not horizontally) */ +} + +/* Style the submit button with a specific background color etc */ +input[type=submit] { + background-color: #4CAF50; + color: white; + padding: 12px 20px; + border: none; + border-radius: 4px; + cursor: pointer; +} + +input[type=reset] { + background-color: #af4c4c; + color: white; + padding: 12px 20px; + border: none; + border-radius: 4px; + cursor: pointer; +} + +/* When moving the mouse over the submit button, add a darker green color */ +input[type=submit]:hover { + background-color: #45a049; +} + +/* When moving the mouse over the reset button, add a darker red color */ +input[type=reset]:hover { + background-color: #923737; +} + + +/* Add a background color and some padding around the form */ +.container { + border-radius: 5px; + background-color: #f2f2f2; + padding: 1em; +} + +nav { + border-bottom: 1px solid black; + position: flex; + display: block; + width: 100%; + background-color: white; + z-index: 10; + overflow: hidden; + overflow-wrap: break-word; +} + +nav div { + padding: 1em; +} + +nav.dark-theme { + background: black; +} + +nav.dark-theme ul li { + color: white; +} + +nav ul { + display: flex; + flex-direction: row; +} + +nav ul a { + text-decoration: none; +} + +nav ul li { + list-style: none; + color: black; + margin: 0.5em; +} + +iframe::parent { + padding: 0; + margin: 0; +} + +iframe { + width: 100%; + height: 750px; +} + +#previewFrame { + width: 300px; + height: 200px; + resize: both; + zoom: 0.2; + -moz-transform: scale(0.5); + -moz-transform-origin: 0 0; + -o-transform: scale(0.5); + -o-transform-origin: 0 0; + -webkit-transform: scale(0.5); + -webkit-transform-origin: 0 0; +} + +iframe html body { + font-size: 0.1em; +} + +.container { + display: flex; + padding-top: 0; + padding-bottom: 0; +} + +.container.row { + flex-direction: row; +} + +.container.column { + flex-direction: column; +} + +h3, +p { + padding: 1em; + width: auto; +} + +p.large { + width: auto; +} + +table { + border-radius: 5px; + width: 100%; + border-collapse: collapse; +} + +td, +th { + border: 1px solid #dddddd; + text-align: left; + padding: 0.5em; +} + +tr:nth-child(even) { + background-color: #dddddd; +} + +table a { + text-decoration: none; + color: black; +} + +table a:hover { + font-style: italic; +} + +#searchbar { + display: flex; + flex-direction: row; + align-self: right; +} + +ul.breadcrumb { + display: flex; + flex-basis: row; +} + +ul.breadcrumb li { + list-style: url("/media/icons/arrow.svg"); + margin-left: 2em; +} + +ul.breadcrumb li.active { + font-weight: bold; +} + +div.coordinates { + display: flex; + flex-direction: row; +} + +div.coordinates input[type="text"] { + width: 25em; +} + +.sci-name { + font-style: italic; +} + +.error { + border: solid red; + border-radius: 5px; + padding: 0.5em; + background-color: rgba(255, 0, 0, 0.4) +} + +.sound { + background-color: rgba(0, 255, 0, 0.5); + padding: 1em; + border-radius: 5px; + overflow: auto; +} + +#spectrogram { + width: 100%; + max-width: 75vh; +} + +button img { + max-height: 1em; +} + +form#url-form { + display: none; + position: fixed; + top: 50%; + left: 35%; + width: 15em; + z-index: 1; + background-color: white; + padding: 1em; + border-radius: 5px; + border: 1px solid #ccc; +} + +table#replies td { + background-color: white; +} + + +#larynx { + background-color: rgba(0, 0, 0, 0.8); + width: auto; + min-height: 100vh; + margin: 0; + + color: white; + padding: 1em; +} + +#larynx h2 { + text-align: center; +} + +#larynx { + text-align: center; +} + +#larynx .license { + text-align: left; +} + +#larynx canvas { + width: 100vw; + position: relative; + left: 0; +} + +#larynx .container { + background: transparent; + display: flex; + justify-content: space-between; +} + +#larynx .settings { + display: flex; +} + +#larynx .settings input, #larynx .settings label { + width: auto; + padding: 0em 1em; +} +table { + max-width: 100vw; +} + +table#list { + position: absolute; + left: 0; +} + +table img { + height: 1em; +} + +.images img { + max-height: 10em; +} + +.images li { + list-style: none; +} + +.images .fullscreen { + display: block; + position: fixed; + /*top: 10%;*/ + bottom: 0; + left: 50%; + max-width: 100vw; + max-height: 100vh; + transform: translate(-50%); +} +.images .fullscreen::parent { + background: rgba(0, 0, 0, 0.5); + backdrop-filter: blur(9px); + position: fixed; + bottom: 0; + right: 0; + left: 0; + top: 0; +} + +.arrow { + position: relative; + bottom: 0; + left: 50%; + margin-left:-20px; + width: 40px; + height: 40px; + background-image: url(/media/icons/bottom_arrow.svg); + background-size: contain; +} + +.bounce { + animation: bounce 2s infinite; +} + +@keyframes bounce { + 0%, 20%, 50%, 100% { + transform: translateY(0); + } + 40% { + transform: translateY(-30px); + } + 60% { + transform: translateY(-15px); + } +} + +article.guano { + font-family: "Sudo"; +} \ No newline at end of file diff --git a/public/scripts/script.js b/public/scripts/script.js index 374f4b6..3ead129 100644 --- a/public/scripts/script.js +++ b/public/scripts/script.js @@ -49,4 +49,31 @@ win.onscroll = function() { // function hidePreview() { // iframe.style.display = "none"; -// } \ No newline at end of file +// } + +var coll = document.getElementsByClassName("collapsible"); +var i; + +for (i = 0; i < coll.length; i++) { + coll[i].addEventListener("click", function() { + this.classList.toggle("collapsed"); + var content = this.nextElementSibling; + if (content.style.display === "block") { + content.style.display = "none"; + } else { + content.style.display = "block"; + } + }); +} + + +function clipboard_copy() { + /* Get the text field */ + var copyText = document.getElementById("guano"); + var r = document.createRange(); + r.selectNode(copyText); + window.getSelection().removeAllRanges(); + window.getSelection().addRange(r); + document.execCommand('copy'); + window.getSelection().removeAllRanges(); +} \ No newline at end of file diff --git a/public/styles/style.css b/public/styles/style.css index 478a538..6b16597 100644 --- a/public/styles/style.css +++ b/public/styles/style.css @@ -167,6 +167,8 @@ nav { width: 100%; background-color: white; z-index: 10; + overflow: hidden; + overflow-wrap: break-word; } nav div { @@ -381,6 +383,14 @@ table#replies td { justify-content: space-between; } +#larynx .settings { + display: flex; +} + +#larynx .settings input, #larynx .settings label { + width: auto; + padding: 0em 1em; +} table { max-width: 100vw; } @@ -392,4 +402,140 @@ table#list { table img { height: 1em; +} + +.images img { + max-height: 10em; +} + +.images li { + list-style: none; +} + +.images .fullscreen { + display: block; + position: fixed; + /*top: 10%;*/ + bottom: 0; + left: 50%; + max-width: 100vw; + max-height: 100vh; + transform: translate(-50%); +} +.images .fullscreen::parent { + background: rgba(0, 0, 0, 0.5); + backdrop-filter: blur(9px); + position: fixed; + bottom: 0; + right: 0; + left: 0; + top: 0; +} + +.arrow { + position: relative; + bottom: 0; + left: 50%; + margin-left:-20px; + width: 40px; + height: 40px; + background-image: url(/media/icons/bottom_arrow.svg); + background-size: contain; +} + +.bounce { + animation: bounce 2s infinite; +} + +@keyframes bounce { + 0%, 20%, 50%, 100% { + transform: translateY(0); + } + 40% { + transform: translateY(-30px); + } + 60% { + transform: translateY(-15px); + } +} + +article#guano { + font-family: "Consolas"; + background-color: lightgray; + padding: 1em; + border-radius: 8px; +} + + +.collapsible { + background-color: lightgrey; + color: black; + cursor: pointer; + padding: 18px; + width: 100%; + border: none; + text-align: left; + outline: none; + font-size: 15px; +} + +.collapsed, .collapsible:hover { + background-color: grey; +} + +.content { + padding: 0 18px; + display: none; + overflow: hidden; + background-color: #f1f1f1; +} + +.collapsible:after { + content: '\02795'; /* Unicode character for "plus" sign (+) */ + font-size: 13px; + color: #777; + float: right; + margin-left: 5px; +} + +.collapsed:after { + content: "\2796"; /* Unicode character for "minus" sign (-) */ +} + +.tooltip { + position: relative; + display: inline-block; +} + +.tooltip .tooltiptext { + visibility: hidden; + width: 140px; + background-color: #555; + color: #fff; + text-align: center; + border-radius: 6px; + padding: 5px; + position: absolute; + z-index: 1; + bottom: 150%; + left: 50%; + margin-left: -75px; + opacity: 0; + transition: opacity 0.3s; +} + +.tooltip .tooltiptext::after { + content: ""; + position: absolute; + top: 100%; + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: #555 transparent transparent transparent; +} + +.tooltip:hover .tooltiptext { + visibility: visible; + opacity: 1; } \ No newline at end of file diff --git a/public/test/file.php b/public/test/file.php deleted file mode 100644 index cce4cbd..0000000 --- a/public/test/file.php +++ /dev/null @@ -1,13 +0,0 @@ - - - - - -
- Select image to upload: - - -
- - - diff --git a/public/test/upload.php b/public/test/upload.php deleted file mode 100644 index a263c35..0000000 --- a/public/test/upload.php +++ /dev/null @@ -1,33 +0,0 @@ - diff --git a/public/upload/metadata.php b/public/upload/metadata.php index fd42121..803a344 100644 --- a/public/upload/metadata.php +++ b/public/upload/metadata.php @@ -10,6 +10,7 @@

+ " id="species" placeholder="Enter a species..">
@@ -52,6 +53,21 @@
+ +
+ + + + + + + + + + +
+ + \ No newline at end of file diff --git a/public/upload/submitmetadata.php b/public/upload/submitmetadata.php index 3163c54..2e7c341 100644 --- a/public/upload/submitmetadata.php +++ b/public/upload/submitmetadata.php @@ -73,7 +73,7 @@ if (isset($_POST['submit'])) if (isset($_POST['name'])) { $_SESSION['observation']['recordist-name'] = $_POST['name']; - setcookie('name', $_SESSION['observation']['name'], time() + 86400 * 365.2, "/"); + setcookie('name', $_SESSION['observation']['recordist-name'], time() + 86400 * 365.2, "/"); } else { $_SESSION['error_msg'] .= "Incorrect Recordist Name.\n"; } @@ -116,6 +116,27 @@ if (isset($_POST['submit'])) { $_SESSION['observation']['remarks'] = $_POST['remarks']; } + /* Optional entries */ + if (isset($_POST['make'])) + { + $_SESSION['observation']['make'] = $_POST['make']; + } + if (isset($_POST['model'])) + { + $_SESSION['observation']['model'] = $_POST['model']; + } + if (isset($_POST['serial'])) + { + $_SESSION['observation']['serial'] = $_POST['serial']; + } + if (isset($_POST['sample_rate'])) + { + $_SESSION['observation']['sample_rate'] = $_POST['sample_rate']; + } + if (isset($_POST['time_expansion'])) + { + $_SESSION['observation']['time_expansion'] = $_POST['time_expansion']; + } } diff --git a/public/upload/submitobservation.php b/public/upload/submitobservation.php index cf10b1f..1f71959 100644 --- a/public/upload/submitobservation.php +++ b/public/upload/submitobservation.php @@ -30,8 +30,34 @@ if ($data = $req->fetch()) { $id = $data['id']; } + +/** Retrieve .wav duration*/ +$filepath = "$root/storage/records/".$_SESSION['observation']['file']; + +function wavDur($file) { + $fp = fopen($file, 'r'); + if (fread($fp,4) == "RIFF") { + fseek($fp, 20); + $rawheader = fread($fp, 16); + $header = unpack('vtype/vchannels/Vsamplerate/Vbytespersec/valignment/vbits',$rawheader); + $pos = ftell($fp); + while (fread($fp,4) != "data" && !feof($fp)) { + $pos++; + fseek($fp,$pos); + } + $rawheader = fread($fp, 4); + $data = unpack('Vdatasize',$rawheader); + $sec = $data['datasize']/$header['bytespersec']; + $minutes = intval(($sec / 60) % 60); + $seconds = intval($sec % 60); + return str_pad($minutes,2,"0", STR_PAD_LEFT).":".str_pad($seconds,2,"0", STR_PAD_LEFT); + } +} + +$t = wavDur($filepath); +print_r($t); try { - $req = $db->prepare('INSERT INTO `records` (author_id, recordist_name, file_name, license, species, subspecies, sound_type, country, lat, lng, date, time, remarks) VALUES ( :id, :recordist_name, :file_name, :license, :species, :subspecies, :sound_type, :country, :lat, :lng, :date, :time, :remarks)'); + $req = $db->prepare('INSERT INTO `records` (author_id, recordist_name, file_name, license, species, subspecies, sound_type, duration, make, model, serial, sample_rate, time_expansion, country, lat, lng, date, time, remarks) VALUES ( :id, :recordist_name, :file_name, :license, :species, :subspecies, :sound_type, :duration, :make, :model, :serial, :sample_rate, :time_expansion, :country, :lat, :lng, :date, :time, :remarks)'); $req->execute(array( "id"=>$id, "recordist_name"=>$_SESSION['observation']['recordist-name'], @@ -40,12 +66,18 @@ try { "species" => $_SESSION['observation']['species'], "subspecies"=>$_SESSION['observation']['subspecies'], "sound_type"=>implode(',', $_SESSION['observation']['type']), + "duration"=>$t, + "make"=>isset($_SESSION['observation']['make']) ? $_SESSION['observation']['make'] : "", + "model"=>isset($_SESSION['osbservation']['model']) ? $_SESSION['osbservation']['model'] : "", + "serial"=>isset($_SESSION['observation']['serial']) ? $_SESSION['observation']['serial'] : "", + "sample_rate"=>isset($_SESSION['observation']['sample_rate']) ? $_SESSION['observation']['sample_rate'] : 384, + "time_expansion"=>isset($_SESSION['observation']['time_expansion']) ? $_SESSION['observation']['time_expansion'] : 10, "country"=>$_SESSION['observation']['country'], "lat"=>$_SESSION['observation']['lat'], "lng"=>$_SESSION['observation']['lng'], "date"=>$_SESSION['observation']['date'], "time"=>$_SESSION['observation']['time'], - "remarks"=>$_SESSION['observation']['remarks'], + "remarks"=>$_SESSION['observation']['remarks'] )); } catch (Exception $e) { die("Error : ".$e->getMessage()); diff --git a/public/upload/verify.php b/public/upload/verify.php index e8049ae..8d2c305 100644 --- a/public/upload/verify.php +++ b/public/upload/verify.php @@ -66,7 +66,7 @@
- +