Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Gdzie tutaj może znajdować się błąd?
Forum PHP.pl > Forum > Przedszkole
NetJaro
  1. <?php
  2. $nazwa_roz = explode(&#092;".\", $_FILES['myfile']['name']); //wzraca nazwe bez rozszerzenia
  3. $nazwa_pliku = $nazwa_roz[0];
  4. $roz_pliku = $nazwa_roz[1];
  5. // gdy dam tutaj echo $roz_pliku; to dobrze wyswietla
  6. if ($roz_pliku = &#092;"GIF\" || $roz_pliku = \"JPG\" || $roz_pliku = \"gif\" || $roz_pliku = \"jpg\") {
  7.    if (is_uploaded_file($_FILES['myfile']['tmp_name']))
  8.         {
  9.         move_uploaded_file($_FILES['myfile']['tmp_name'], &#092;"img/$id.$roz_pliku\");
  10.         include (&#092;"mysql.php\");
  11.          $sql = &#092;"INSERT INTO `images` (`id`, `nazwa_pliku`) VALUES ('''', '$id.$roz_pliku')\";
  12.         $wykonaj = mysql_query($sql) or die(&#092;"Błąd podczas dodania pliku do bazy!\");
  13.         echo &#092;"Udany upload pliku!\";
  14. // gdy dam tutaj echo $roz_pliku to wyswietla mi \"1\".
  15.         }
  16.     else {
  17.         die('Próba ataku! Plik: ' . $_FILES['myfile']['name']);}
  18.     } else {
  19.         echo &#092;"Złe rozszerzenie pliku\"; }
  20. ?>


Formularz:

  1. <?php
  2. include (&#092;"mysql.php\");
  3. $ostatni_rekord = &#092;"SELECT * FROM images ORDER BY id DESC LIMIT 1\" or die(\"Błą podczas wyznaczania ostatniego rekordu\");
  4. $wykonaj = mysql_query($ostatni_rekord) or die(&#092;"Błą podczas zapytania\");
  5. while ($r= mysql_fetch_array($wykonaj))
  6. {
  7.   $id = $r [id];
  8.   $nazwa_pliku = $r [nazwa_pliku];
  9. }
  10.  
  11. $id_dobry = $id++;
  12. echo &#092;"
  13. <form enctype=&#092;"multipart/form-data\" action=\"send.php\" method=\"post\">
  14. <input type=&#092;"file\" name=\"myfile\">
  15. <input type=&#092;"hidden\" name=\"id\" value=\"$id_dobry\">
  16. <input type=&#092;"submit\" value=\"submit\">
  17. <input type=&#092;"hidden\" name=\"MAX_FILE_SIZE\" value=\"1048576\">
  18. </form>&#092;";
  19. ?>

Bład opisany w komentrazach. Wydaje mi się, ze skrypt gubi zmienną. Również skrypt pod złym rozszerzeniem kopiuje pliki.
Pozdrawiam.
hwao
  1. <?php
  2. if ($roz_pliku = &#092;"GIF\" || $roz_pliku = \"JPG\" || $roz_pliku = \"gif\" || $roz_pliku = \"jpg\") {
  3. ?>

Operator = jest operatorem przypisania
Porownania jest == i === to taki 1 rzucajacy sie w oczy blad.
Pozatym rozszerznei lepiej sie zdobywa przez
  1. <?php
  2. $p = 'plik.cos.hehe.jpg';
  3. echo array_pop( explode( '.', $p ) );
  4.  
  5. ?>
NetJaro
Działa. Dzięki wielkie. Muszę poczytać o array_pop" title="Zobacz w manualu PHP" target="_manual
mario
Cytat(hwao @ 2005-05-03 14:54:45)
Pozatym rozszerznei lepiej sie zdobywa przez
  1. <?php
  2. $p = 'plik.cos.hehe.jpg';
  3. echo array_pop( explode( '.', $p ) );
  4.  
  5. ?>

lub też więcej informacji poprzez pathinfo

  1. <?php
  2. $sciezka = pathinfo('/www/htdocs/index.html');
  3.  
  4. echo $sciezka['dirname'], &#092;"n\";
  5. echo $sciezka['basename'], &#092;"n\";
  6. echo $sciezka['extension'], &#092;"n\";
  7. ?>

zwróci:

katalog: www/htdocs
nazwa: index.html
rozszerzenie: html
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.