ziedinjsh Posted June 16, 2011 Report Share Posted June 16, 2011 Svaiki! šāds ir upload scripts if(isset($_POST['addmp3'])){ $result = 0; $folder = "../mp3/"; $artist = mysql_real_escape_string($_POST['artist']); $title = mysql_real_escape_string($_POST['title']); $lyricartist = mysql_real_escape_string($_POST['lyricartist']); $type = $_POST['type']; $beat = $_FILES['mp3']['name']; $tmp = $_FILES['mp3']['tmp_name']; $date = date('y.m.d'); $ip = $_POST['ip']; $mp3 = $folder.basename($_FILES['mp3']['name']); if($type == "audio/mpeg") { die("this format is not allowed or file is to big"); } else { $query = mysql_query("INSERT INTO beats (beat, title, artist, lyricartist, type, date, ip) VALUES ('$beat', '$title', '$artist', '$lyricartist', '$type', '$date', '$ip') "); if(move_uploaded_file($_FILES['mp3']['tmp_name'], $mp3)) { $result = 1; } sleep(1); ?> <script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script> <?php } } hostings piedāvā šo: ffmpeg -y -i fails.mp3 -f flv -acodec libmp3lame -ab 64 -ac 1 uploads/fails.flv kur un kā man jāievieto šis ffmpeg kods lai augšupielādējot mp3 viņš enkodējas uz flv formātu? Paldies jau iepriekš Quote Link to comment Share on other sites More sharing options...
briedis Posted June 16, 2011 Report Share Posted June 16, 2011 Es redzu pāris sql injekciju ievainojamības... Quote Link to comment Share on other sites More sharing options...
ziedinjsh Posted June 16, 2011 Author Report Share Posted June 16, 2011 Es redzu pāris sql injekciju ievainojamības... Šos? $beat = $_FILES['mp3']['name']; $tmp = $_FILES['mp3']['tmp_name']; Quote Link to comment Share on other sites More sharing options...
gta1151 Posted June 16, 2011 Report Share Posted June 16, 2011 (edited) Nē,jo vienkārši nevar (varbūt maldos). Šos paskaties $type = $_POST['type']; $ip = $_POST['ip']; Edited June 16, 2011 by gta1151 Quote Link to comment Share on other sites More sharing options...
Kemito Posted June 16, 2011 Report Share Posted June 16, 2011 Padotus datus no lietotāju puses vienmēr vaig apstrādāt, jo tu taču nezini ko viņš pados. Quote Link to comment Share on other sites More sharing options...
gta1151 Posted June 16, 2011 Report Share Posted June 16, 2011 To ziedinjsh Uztaisi vel vienu if kur ir pārbaude vai fails ir mp3 un apmēram izmēru,jo piemēram tagad tava kodā varēs ievietot exe failu un 300mb mp3 formātu failu. Quote Link to comment Share on other sites More sharing options...
Maris-S Posted June 17, 2011 Report Share Posted June 17, 2011 Daudz vērtīgu padomu, bet neviens neatbild uz autora pamatjautājumu. :) Pats neko tādu neesmu taisījis, bet šķiet ka tā lieta strādā tikai no komandrindas, tāpēc jāizpilda kā ārēja programma. Tad, kad fails tiks augšupielādēts, izpildi ffmpeg kā ārējo programmu uz atbilstošo, tikko augšupielādēto, failu. Izsaukt ārējo programmu varētu ar exec un system, papēti šīs funkcijas. Jā un ņem vērā arī ieteikumus par drošības uzlabošanu, ka jau šeit minēja. Quote Link to comment Share on other sites More sharing options...
Kaklz Posted June 17, 2011 Report Share Posted June 17, 2011 Parasti video/audio failu ielādi veic aptuveni šādi: 1. pie augšupielādes ieliec konkrēto failu kādā mysql tabulā, kurā tu glabāsi apstrādājamos failus 2. uztaisi skriptu, kas fonā ik pēc mirkļa pārbauda vai šajā tabulā nav iekritis kāds fails. Sliktākajā gadījumā ar crontab skriptu, kas darbojas reizi minūtē. Labākajā gadījumā, ja tev ir pieeja pie shella, tad vienkārši palaid no konsoles skriptu while(1){ // pārbaudam vai nav kāds konvertējams fails, ja ir tad nokonvertējam sleep(10) } 3. Fona procesā failam, kuru tu esi paņēmis uz apstrādi uzseto kaut kādu statusu, ka tas tiek apstrādāts 4. Publiskajā pusē zinot faila ID tu vari parādīt lietotājam, ka fails šobrīd tiek apstrādāts / failam priekšā vēl ir N citi faili. Ja tu liksi šo ffmpeg konvertēšanu pa taisno upload skriptā, tad vari jau sākt raut matus nost no galvas un skaidrot cilvēkiem, ka viss notiek, ka viss strādā, tikai viss ir ļoti lēni. Tb konvertēšana manuprāt ir OBLIGĀTI jānodala no augšupielādes. Quote Link to comment Share on other sites More sharing options...
Maris-S Posted June 17, 2011 Report Share Posted June 17, 2011 Kaklz, tieši tā, ja pieejams crontab, tad labāk izmantot pieeju, ko Tu piedāvā, bet ja nav tad gan jādomā citi varianti. Šķiet bij arī kaut kādas metodes kā fonā palaist php skriptu, bez crontab, sanāk pa mūžīgo ciklu, bet iespējams es to rakstu nepareizi sapratu un arī īpaši neapskatīju uzmanīgi, nebija vajadzība, tā ka iespējams kļūdos. Pašam gan ir nācies taisīt sistēmas kur faila pēcapstrāde, pēc augšupielādēšanas, aizņem kādu laiciņu un jā, tieši tā arī darīju, rakstīju paziņojumu: "Fails tiek apstrādāts, lūdzu uzgaidiet". Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.