Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Edycja
Forum PHP.pl > Forum > Przedszkole
Max Damage
Cześć, mam taki oto skrypt, jeśli nie istnieje $ed to pokazuje mi linki, po ich wciśnięciu wykonywane jest zapytanie do bazy, i tu pojawia się problem, ponieważ nie przekazuje mi wtedy zmiennych $tabela i $id. Jak to poprawić?

  1. <?
  2. $id=$_GET['id'];
  3. $tabela=$_GET['marka'];
  4. $ed=$_GET['ed'];
  5.  
  6. if(!isset($_GET['ed'])){
  7. echo "<a href='edytuj.php?ed=kraj'>dodaj/edytuj kraj</a><br />";
  8. echo "<a href='edytuj.php?ed=masa'>dodaj/edytuj mase własną</a><br />";
  9. }
  10.  
  11. else {
  12. $ed=$_GET['ed'];
  13.  
  14. $wynik=mysql_query("SELECT * FROM $tabela WHERE id='$id'") or die (mysql_error());
  15. $wiersz=mysql_fetch_assoc($wynik);
  16.  
  17. if($ed=='kraj') {
  18. ?>
  19. Kraj: 
  20. <form action='dodaj_auto.php' method='post' enctype='multipart/form-data'>
  21. <input size='20' name='dzien' value="<?php echo $wiersz['kraj'] ?>">
  22. <input type="submit" name='wyslij' value="wyslij" />
  23. echo "</form>";
  24. <?php
  25. }
  26. elseif($ed=='masa') {
  27. ?>
  28. Masa: 
  29. <form action='dodaj_auto.php' method='post' enctype='multipart/form-data'>
  30. <input size='20' name='dzien' value="<?php echo $wiersz['masa'] ?>">
  31. <input type="submit" name='wyslij' value="wyslij" />
  32. </form>
  33. <?php
  34. }
  35. }
Pride
Huhu w sumie to albo ja z rana nie "ogarniam", albo coś tu za mało info/kodu podałeś tongue.gif
Swoją drogą patrząc na to, to jak ma ci to przekazać, jeżeli w tym momencie (wywołania kodu jeszcze raz) get jest pusty? Powinno być: dodaj_auto.php?id=X&table=Y
Ogólnie to po co wkładasz tego get'a do zmiennej? Nie możesz go bezpośrednio wstawić do zapytania?
Shili
  1. <?php
  2. echo "<a href='edytuj.php?ed=kraj&tabela=".$tabela."&id=".$id."'>dodaj/edytuj kraj</a><br />";
  3. ?>

Powinieneś jeszcze wcześniej sprawdzić, czy tabela i id nie są puste.

I oczywiście Twój skrypt jest dziurawy jak stare sito. Poczytaj sobie o filtrowaniu zmiennych pochodzących od użytkownika, czyli między innymi tych przekazywanych w adresie.

Cytat
Ogólnie to po co wkładasz tego get'a do zmiennej? Nie możesz go bezpośrednio wstawić do zapytania?
Prościej się na nich operuje.
Pride
Cytat(Shili @ 16.07.2008, 11:33:53 ) *
Prościej się na nich operuje.

No czy ja wiem. Przy większych skryptach to po prostu zaśmiecanie kodu, kiedy masz ~10 postów które zamieniasz na 10 zmiennych, które tak czy siak musisz wstawić do zapytania.
Max Damage
Prawdę mówiąc nie chciałem już tego wszystkiego wklejać do linka, bo jak tak dalej pójdzie to będzie miał tam z 10 zmiennych, no ale skoro tak musi być to ok. A jeśli chodzi o bezpieczeństwo to póki co nie zwracam na to uwagi, to mój pierwsza strona taka z prawdziwego zdarzenia więc najpierw chciałbym aby wszystko chodziło jak trzeba.
Dzięki.
Shili
Si, ale przy profesjonalnym skrypcie, gdzie usuwasz niebezpieczne znaki, być może usuwasz również tagi i rzutujesz liczbę wygodniej jest to robić poprzez $pole = (rzutuj)funkcja1(funkcja2($_GET['pole']));

A tworzenie zapytania z taką filtracją lub przypisanie filtrowanych danych bezpośrednio do geta nie uważam za zbyt dobry pomysł winksmiley.jpg

Cytat
A jeśli chodzi o bezpieczeństwo to póki co nie zwracam na to uwagi, to mój pierwsza strona taka z prawdziwego zdarzenia więc najpierw chciałbym aby wszystko chodziło jak trzeba.
To uważaj, bo jak ktoś dropnie Ci bazę, to na pewno nie będzie chodzić jak trzeba tongue.gif
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.