Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Mam dwa skrypty PHP. Pierwszy umieszcza parę plików na serwerze i modyfikuje index.html:
<?php $nazwa_gry = $_POST["nazwa"]; mkdir($nazwa_gry); mkdir($nazwa_gry . "/assets/"); $target_dir = $nazwa_gry . "/assets/"; //tlo $tlo = $target_dir . "tlo.jpg"; $uploadOk = 1; $tlotype = pathinfo($tlo,PATHINFO_EXTENSION); // Allow certain file formats if($tlotype != "jpg") { echo "Tlo musi byc jpg! "; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 1) { if (move_uploaded_file($_FILES["tlo"]["tmp_name"], $tlo)) { echo "Plik ". basename( $_FILES["tlo"]["name"]). " zostal wgrany na serwer. "; } else { echo "Blad!"; } } //tlo //bird $bird = $target_dir . "bird.png"; $uploadOk = 1; $birdtype = pathinfo($bird,PATHINFO_EXTENSION); // Allow certain file formats if($birdtype != "png") { echo "Bird musi byc png! "; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 1) { if (move_uploaded_file($_FILES["bird"]["tmp_name"], $bird)) { echo "Plik ". basename( $_FILES["bird"]["name"]). " zostal wgrany na serwer. "; } else { echo "Blad! "; } } //bird //pipe $pipe = $target_dir . "pipe.png"; $uploadOk = 1; $pipetype = pathinfo($pipe,PATHINFO_EXTENSION); // Allow certain file formats if($pipetype != "png") { echo "Przeszkoda musi byc png! "; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 1) { if (move_uploaded_file($_FILES["pipe"]["tmp_name"], $pipe)) { echo "Plik ". basename( $_FILES["pipe"]["name"]). " zostal wgrany na serwer. "; } else { echo "Blad! "; } } //pipe //splash $splash = $target_dir . "splash.png"; $uploadOk = 1; $splashtype = pathinfo($splash,PATHINFO_EXTENSION); // Allow certain file formats if($splashtype != "png") { echo "Ekran powitalny musi byc png!"; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 1) { if (move_uploaded_file($_FILES["splash"]["tmp_name"], $splash)) { echo "Plik ". basename( $_FILES["splash"]["name"]). " zostal wgrany na serwer. "; } else { echo "Blad! "; } } //splash //icon $icon = "./index_files/" . $nazwa_gry . ".png"; $uploadOk = 1; $icontype = pathinfo($icon,PATHINFO_EXTENSION); // Allow certain file formats if($icontype != "png") { echo "Obraz wyswietlany na stronie glownej musi byc png! "; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 1) { if (move_uploaded_file($_FILES["icon"]["tmp_name"], $icon)) { echo "Plik ". basename( $_FILES["icon"]["name"]). " zostal wgrany na serwer. "; } else { echo "Blad! "; } } //icon //kopiuj zrodla $main = copy ("michal/main.js", $nazwa_gry . "/main.js"); $phaser = copy ("michal/phaser.min.js", $nazwa_gry . "/phaser.min.js"); if ($main == 1) { echo "Udalo sie skopiowac glowny kod gry z Vappy Michala! "; } else { echo "Nie udalo sie skopiowac glownego kodu gry z Vappy Michala! "; } if ($phaser == 1) { echo "Udalo sie skopiowac framework Phaser z Vappy Michala! "; } else { echo "Nie udalo sie skopiowac frameworka Phaser z Vappy Michala! "; } //zmien index michala $source='michal/index.html'; $target=$nazwa_gry . "/index.html"; // copy operation $sh=fopen($source, 'r'); $th=fopen($target, 'w'); while (!feof($sh)) { $line=fgets($sh); if (strpos($line, 'Vappy Michał')!==false) { $line="<title> " . $nazwa_gry . " </title>" . PHP_EOL; } fwrite($th, $line); } fclose($sh); fclose($th); //zmien zrodla michala //kopiuj zrodla //dodaj do strony glownej $source='index.html'; $target='index.tmp'; // copy operation $sh=fopen($source, 'r'); $th=fopen($target, 'w'); while (!feof($sh)) { $line=fgets($sh); if (strpos($line, "<! -- Tutaj dodawac nowe gry -- >")!==false) { $line="<div class=\"card\"><img src=\"" . $icon . "\"><h3>" . $nazwa_gry . "</h3><a href=\"" . $nazwa_gry . "/index.html" . "\">Zagraj<a> <br></div>" . PHP_EOL . "<! -- Tutaj dodawac nowe gry -- >" . PHP_EOL; } fwrite($th, $line); } fclose($sh); fclose($th); // delete old source file unlink($source); // rename target file to source file rename($target, $source); //dodaj do strony glownej //ustaw haslo $haslo = $_POST["haslo"]; $haslo_md5 = md5($haslo); $plik_haslo_path = $nazwa_gry . "/haslo.txt"; $plik_haslo=fopen($plik_haslo_path, 'w'); fwrite($plik_haslo, $haslo_md5); fclose($plik_haslo); //ustaw haslo echo "Jezeli wszystko poszlo dobrze to twoja gra jest juz na stronie glownej! "; ?>
A drugi ma odwrócić jego działanie, czyli usunąć pliki wgrane na serwer i linię dopisaną do index.html:
<?php //funkcja usuwania folderu function removeDir($path) { $dir = new DirectoryIterator($path); foreach ($dir as $fileinfo) { if ($fileinfo->isFile() || $fileinfo->isLink()) { unlink($fileinfo->getPathName()); } elseif (!$fileinfo->isDot() && $fileinfo->isDir()) { removeDir($fileinfo->getPathName()); } } rmdir($path); } //funkcja usuwania folderu $nazwa = $_POST["nazwa"]; $haslo = $_POST["haslo"]; $icon = "./index_files/" . $nazwa . ".png"; $haslo_md5 = md5($haslo); $haslo_plik = fopen($nazwa . "/haslo.txt", "r"); $haslo_z_pliku = fgets($haslo_plik); fclose($haslo_plik); if($haslo_md5 == $haslo_z_pliku) { removeDir($nazwa); unlink($icon); $source='index.html'; $target='index.tmp'; // copy operation $sh=fopen($source, 'r'); $th=fopen($target, 'w'); while (!feof($sh)) { $line=fgets($sh); if (strpos($line, "<div class=\"card\"><img src=\"" . $icon . "\"><h3>" . $nazwa . "</h3><a href=\"" . $nazwa . "/index.html" . "\">Zagraj<a> <br></div>" . PHP_EOL . "<! -- Tutaj dodawac nowe gry -- >" . PHP_EOL)!==false) { $line="<! -- Tutaj dodawac nowe gry -- >"; } fwrite($th, $line); } fclose($sh); fclose($th); // delete old source file unlink($source); // rename target file to source file rename($target, $source); echo "Twoja gra zostala usunieta!"; } else { echo "Niepoprawna kombinacja nazwy i hasla!"; } ?>
Ale jak zwykle coś musi nie działać. Drugi skrypt usuwa prawidłowo pliki, ale już index.html nie chce zmodyfikować. Pewnie jak zwykle gdzieś jest jakiś banalny błąd, ale siedzę już kilka godzin i go nie widzę.
Offline
modyfikowanie index.html nie jest dobrą praktyką.
poza tym czy ścieżki $source , $target są kompletne ?
Offline
$source i $target są kompletne, skrypty są w tym samym folderze co index.html
Offline
Może uprawnienia do pliku nie pozwalają?
Offline
Może by tak włączyć raportowanie błędów w skrypcie i nie zgadywać. Sam powie co go boli.
W razie czego http://stackoverflow.com/questions/1053424/how-do-i … rs-to-display
Offline
Piotr3ks, uprawnienia do index.html są prawidłowe, bo pierwszy skrypt działa dobrze. kazmikaze, dopisałem
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
i nie informuje o żadnych błędach.
Offline
No to działa, tylko pewnie jest jakiś błąd w logice. To teraz trzeba pomyśleć przejść po kolei i zobaczyć co się dzieje. Idealnie jakbyś miał jakiś debugger. Ale jak nie ma to możesz umieszczać echo "tekst" by wiedzieć czy wchodzi gdzie trzeba. Np. czy wchodzi w twój if, który sprawdza czy ciąg się znajduje w linii. Ważna uwaga, jeśli strpos zwróci 0, co prawdopodobne to jest to false i nie wejdzie do if-a.
Offline