Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Formularz dodawania danych do komórki
Forum PHP.pl > Forum > Przedszkole
kylo1989
Witam
Mam następujący problem, w pętli w której odczytuje dane z tabeli mam taki link:
  1. <a href=\"news.php?a=addimg&amp;id={$r['id']}\">imgadd</a>


następnie chce aby po kliknięciu w ten link użytkownik mógł wgrać na serwer plik, nazwa pliku miałaby zostać zapisana do odpowiedniej komórki o o nazwie "zdjecie":
  1.  
  2. $id = trim($_GET['id']);
  3. if($a == 'addimg') {
  4.  
  5. $plik_nazwase = $_FILES['plik']['name'];
  6. echo $plik_nazwase; /*to dodałem tylko aby sprawdzić czy po kliknięciu w link wyświetli się odpowiednie id, i się wyświetla*/
  7.  
  8. $query=mysql_query("UPDATE news SET zdjecie='$plik_nazwase' WHERE id='$id'");
  9. if(!$query){
  10. echo "Niestety nie mogłem aktualizować bazy danych";
  11. }
  12.  
  13.  
  14. $plik_tmpse = $_FILES['plik']['tmp_name'];
  15. $spse = explode(".",$plik_nazwase);
  16.  
  17. if ($_POST['button2'] == "dodaj") {
  18. if($spse[1] == "jpg" || $spse[1] == "JPG" || $spse[1] == "png" || $spse[1] == "jpeg") {
  19.  
  20. if(is_uploaded_file($plik_tmp)) {
  21. move_uploaded_file($plik_tmpse, "modul/news/img/$plik_nazwase");
  22. chmod ("modul/news/img/$plik_nazwase", 0777);
  23. echo '<br>Plik: <strong>'.$plik_nazwase.'</strong> zaladowany.<br /><br />';
  24. }
  25. }else{ echo 'Plik o niedozwolonym rozszerzeniu!';
  26. exit; }
  27. }
  28.  
  29.  
  30. }


oraz sam formularz:
  1. <div id="form">
  2. <form enctype="multipart/form-data" action="news.php?a=addimg" method="post" >
  3. <input type="hidden" name="MAX_FILE_SIZE" value="5000000555" />
  4. <input name="plik" type="file" />
  5. <input type="submit" name="button2" value="dodaj">
  6. </form>';


pliki są uploadowane zgdonie z kodem i nie ma z tym problemu

co mnie dziwi że gdy wpisze w pole id w zapytaniu SQL jakieś konkretne id to wartość zostanie zapisana odpowiednio, wychodzi na to że id nie jest przechwytywane do zapytania, i pytanie do mądrzejszych dlaczego tak się dzieje?

jak to rozwiązać, może cała koncepcja jest zła? Proszę o wskazówki, z góry dzięki.
NEO.pl
Cytat(kylo1989 @ 24.03.2011, 11:10:42 ) *
co mnie dziwi że gdy wpisze w pole id w zapytaniu SQL jakieś konkretne id to wartość zostanie zapisana odpowiednio, wychodzi na to że id nie jest przechwytywane do zapytania, i pytanie do mądrzejszych dlaczego tak się dzieje?


wyswietl sobie query ktore chcesz wykonac to zobaczysz co tam masz.

PS: az sie prosisz o sql injection.
kylo1989
to jak powinien wyglądać prawidłowy update bo rozumiem że to tutaj leży problem

problem leży w tym że nazwa pliku i id są tak jakby z zewnątrz? jak w takim razie w php mam zaaktualizować takie dane?

jak wyświetle moje zapytanie to pokazuje mi "1" taką wartość


zmieniłem kolejność na odpowiednią:
  1. $id = trim($_GET['id']);
  2. if($a == 'addimg') {
  3.  
  4. $plik_nazwase = $_FILES['plik']['name'];
  5. echo $plik_nazwase; /*to dodałem tylko aby sprawdzić czy po kliknięciu w link wyświetli się odpowiednie id, i się wyświetla*/
  6.  
  7.  
  8.  
  9. $plik_tmpse = $_FILES['plik']['tmp_name'];
  10. $spse = explode(".",$plik_nazwase);
  11.  
  12. if ($_POST['button2'] == "dodaj") {
  13. if($spse[1] == "jpg" || $spse[1] == "JPG" || $spse[1] == "png" || $spse[1] == "jpeg") {
  14.  
  15. if(is_uploaded_file($plik_tmp)) {
  16. move_uploaded_file($plik_tmpse, "modul/news/img/$plik_nazwase");
  17. chmod ("modul/news/img/$plik_nazwase", 0777);
  18. echo '<br>Plik: <strong>'.$plik_nazwase.'</strong> zaladowany.<br /><br />';
  19.  
  20. /*teraz tutaj dopiero moge przeciez zmienić nazwe bo wcześniej nie jest ona jeszcze pobrana*/
  21. $query=mysql_query("UPDATE news SET zdjecie='$plik_nazwase' WHERE id='$id'");
  22. if(!$query){
  23. echo "Niestety nie mogłem aktualizować bazy danych";
  24. }
  25.  
  26.  
  27.  
  28. }
  29. }else{ echo 'Plik o niedozwolonym rozszerzeniu!';
  30. exit; }
  31. }
  32.  
  33.  
  34. }


mimo to nawet jeśli zapytanie jest narażone na luke to i tak tabela powinna się zaaktualizować?

może ktoś inny ma jeszcze jakiś sposób na to?
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.