Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Problem z pobraną zmienną
Forum PHP.pl > Forum > Przedszkole
drakerc
Witam.

Napisałem pierwszy skrypt w PHP. Użytkownik musi wybrać katalog i zuploadować plik w formularzu w HTML'u, a potem skrypt PHP kopiuje plik do odpowiedniego katalogu. Wszystko działa oprócz kopiowania do katalogu ze zmiennej - przykładowo po wybraniu opcji folderu gfx kopiowane jest to do folderu /var/www/cstrike/ , zamiast do /var/www/cstrike/gfx. Nie będę się rozpisywał i podaję kod źródłowy:

  1. <?php
  2. echo '<?xml version="1.0" encoding="iso-8859-2"?>';
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
  5. transitional.dtd">
  6. <html>
  7. <head>
  8. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  9. <title>Upload</title>
  10. </head>
  11. <body>
  12.  
  13. <div>
  14. <form enctype="multipart/form-data" action="index2.php" method="POST">
  15.  
  16. <tr>
  17. <td>Wybierz plik 1
  18. <input name="file" type="file" size="100" />
  19. Wybierz katalog, w którym ma być plik
  20. <input type="radio" name="katalog" value="maps1"> /maps/<br>
  21. <input type="radio" name="katalog" value="events1"> /events/<br>
  22. <input type="radio" name="katalog" value="gfx1"> /gfx/<br>
  23. <input type="radio" name="katalog" value="models1"> /models/<br>
  24. <input type="radio" name="katalog" value="overviews1"> /overviews/<br>
  25. <input type="radio" name="katalog" value="sound1"> /sound/<br>
  26. <input type="radio" name="katalog" value="sprites1"> /sprites/<br>
  27. <input type="submit" value="Wyślij plik" />
  28. </td>
  29. </tr>

  1. <?php
  2. ini_set( 'display_errors', 'On' );
  3. error_reporting( E_ALL );
  4. $katalog;
  5. if ($_GET['katalog'] == "maps1")
  6. {
  7. $katalog = "maps";
  8. }
  9. if ($_GET['katalog'] == "events1")
  10. {
  11. $katalog = "events";
  12. }
  13. if ($_GET['katalog'] == "gfx1")
  14. {
  15. $katalog = "gfx";
  16. }
  17. if ($_FILES["file"]["error"] > 0)
  18. {
  19. echo "Kod błędu: " . $_FILES["file"]["error"] . "<br />";
  20. }
  21. else
  22. {
  23. if (file_exists("/var/www/cstrike/$katalog/" . $_FILES["file"]["name"]))
  24. {
  25. echo $_FILES["file"]["name"] . " juz istnieje. ";
  26. }
  27. else
  28. {
  29. move_uploaded_file($_FILES["file"]["tmp_name"],
  30. "/var/www/cstrike/$katalog/" . $_FILES["file"]["name"]);
  31. }
  32.  
  33. }
  34.  
  35. ?>
Darioosh
W form masz method="POST", a w PHP używasz tablicy $_GET. To chyba rozwiązanie.
drakerc
Po zmienieniu wszystkich
$_GET na $_POST nadal to samo

Podaje jeszcze error:

Notice: Undefined variable: katalog in /var/www/index2.php on line 23

Notice: Undefined variable: katalog in /var/www/index2.php on line 30
smagul
ekspertem nie jestem, ale chyba chodzi o to, ze niema takiego katalogu jak $katalog.
zamień to:
  1. "/var/www/cstrike/$katalog/" . $_FILES["file"]["name"]

na to:
  1. "/var/www/cstrike/".$katalog."/" . $_FILES["file"]["name"]


linia 23 i 30
luck
Po mojemu to $_POST['katalog'] zwyczajnie nie łapie się na żadną z reguł "if" i zostaje niezdefiniowane.
drakerc
Wielkie dzięki za pomoc smagul - działa już wyśmienicie! Poleciał "pomógł" dla ciebie. Dzięki luck i Darioosh za chęci smile.gif

Temat do zamknięcia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.