| | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 31.07.07 Prihlásený: 09.01.19 Príspevky: 327 Témy: 85 Bydlisko: Humenné |
Mám skript, ktorý mi uploadne zip súbor a extraktuje ho, lenže extract nie vždy funguje. Ak mám taký kód tak mi zip extract nefunguje a vypiše chybovú hlášku Warning: ZipArchive::extractTo() [ziparchive.extractto]: SAFE MODE Restriction in effect. The script whose uid/gid is 5599/5518 is not allowed to access /var/www/clients/client13/web101/web/img/gallery owned by uid/gid 33/33 in /var/www/clients/client13/web101/web/admin/gallery.php on line 63
Kód: <?php
$original = $_POST["original"]; $dir = "../img/$original"; mkdir($dir, 0777); if($_FILES["zip_file"]["name"]) { $filename = $_FILES["zip_file"]["name"]; $source = $_FILES["zip_file"]["tmp_name"]; $type = $_FILES["zip_file"]["type"]; $name = explode(".", $filename); $accepted_types = array('application/zip', 'application/x-zip-compressed', 'multipart/x-zip', 'application/x-compressed'); foreach($accepted_types as $mime_type) { if($mime_type == $type) { $okay = true; break; } } $continue = strtolower($name[1]) == 'zip' ? true : false; if(!$continue) { $message = "Chyba"; } $target_path = $dir.$filename; if(move_uploaded_file($source, $target_path)) { include("Zip.php"); $zip = new ZipArchive(); $x = $zip->open($target_path); if ($x === true) { $zip->extractTo($dir); $zip->close(); unlink($target_path); } $message = "Chyba."; } else { $message = "Chyba."; } } ?> Avšak ak dám takýto kód už to funguje Kód: <?php
$original = $_POST["original"]; $dir = "../img/"; mkdir($dir, 0777); if($_FILES["zip_file"]["name"]) { $filename = $_FILES["zip_file"]["name"]; $source = $_FILES["zip_file"]["tmp_name"]; $type = $_FILES["zip_file"]["type"]; $name = explode(".", $filename); $accepted_types = array('application/zip', 'application/x-zip-compressed', 'multipart/x-zip', 'application/x-compressed'); foreach($accepted_types as $mime_type) { if($mime_type == $type) { $okay = true; break; } } $continue = strtolower($name[1]) == 'zip' ? true : false; if(!$continue) { $message = "Chyba"; } $target_path = $dir.$filename; if(move_uploaded_file($source, $target_path)) { include("Zip.php"); $zip = new ZipArchive(); $x = $zip->open($target_path); if ($x === true) { $zip->extractTo($dir); $zip->close(); unlink($target_path); } $message = "Chyba."; } else { $message = "Chyba."; } } ?>
Lenže problém je v tom, že ja to potrebujem tak ako to je v prvom kóde, aby som to potom mohol rozoznať, v ktorej galerii sú tie obrázky. Ako to mám urobiť, aby mi to fungovalo ?
|
|
Registrovaný: 25.12.10 Prihlásený: 30.05.23 Príspevky: 94 Témy: 21 Bydlisko: Pezinok |
Citácia: Note: When safe mode is enabled, PHP checks whether the directory in which the script is operating has the same UID (owner) as the script that is being executed.
Inak povedané, skript ktorý sa vykonáva a adresár ktorý vytváraš musia mať rovnaké UID inak ti to padne na warningu keď je zapnutý safe mode. Adresár "img" a skript si pravdepodobne nahrával cez ftp alebo nejaké webové rozhranie s nejakými užívateľským kontom - takže majú rovnaké UID. Skript sa však spúšťa pod iným užívateľom - takže adresár "img/gallery" alebo čo to tam máš v tom $dir má iné UID.
|
|
Registrovaný: 31.07.07 Prihlásený: 09.01.19 Príspevky: 327 Témy: 85 Bydlisko: Humenné |
No tento problém som už vyriešil Stačilo vypnúť na serveri SAFE_MODE a funguje to v pohode.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|