Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Zmienna $_GET
Forum PHP.pl > Forum > Przedszkole
JulekJP
Witam, mam dość skomplikowany problem dla mnie i nie wiem jak go wyrazić.. Po prostu chce zrobić zmienna GET gdzie w adresie np dodam ?krok=edytuj&id=[id_usera] to mi wyświetli dane z bazy danych tylko o id usera podanym w adresie(get). Prosił bym o pomoc. Poniżej podaje skrypt pliku..

  1. <?php
  2. require("../manicore.php");
  3. require("../header.php");
  4. if (!$datauser['user_level'] == 103)
  5. { header("Location: ../login.php"); exit; } else {
  6. $krok = $_GET['krok'];
  7. $result = mysql_query("SELECT * FROM user ORDER BY user_name");
  8. $data = mysql_fetch_assoc($result);
  9.  
  10. echo "<div id=\"conten\">
  11. <div id=\"conten_01\">";
  12. if ($krok == "edytuj&amp;id=".$data['id'])
  13. {
  14. echo " czesc";
  15. }
  16. if (!$krok)
  17. {
  18. ?>
  19. <table width="70%" border="0">
  20. <tr>
  21. <td><strong>Nazwa klienta</strong></td>
  22. <td align="center"><strong>Typ</strong></td>
  23. <td><strong>Opcje</strong></td>
  24. </tr>
  25. <?php
  26. for($i = 0; $i < mysql_num_rows($result); $i++)
  27. {
  28. $data = mysql_fetch_assoc($result);
  29. echo "<tr>
  30. <td>".$data['user_names']." ".$data['user_name']."</td>
  31. <td>".getuserlevel($data['user_level'])."</td>
  32. <td>[edytuj] | [usuń]</td>
  33. </tr>";
  34. }
  35.  
  36. }
  37. echo "</table>";
  38. echo "<br class=\"clearfloat\" />";
  39. echo "</div>";
  40. }
  41. require("../footer.php");
  42. ?>


Jak widać zrobiłem to tak.. ;|
MateuszS
  1.  
  2. if(isset($_GET["edytuj"]))
  3. {
  4. if(isset($_GET["id_usera"])) {
  5. //tu ten kod edycji,
  6. }
  7. }
  8.  
JulekJP
Zrobiłem tak

  1. if($_GET['edycja'])
  2. {
  3. echo "problem";
  4. $result = mysql_query("SELECT * FROM user WHERE id=".$_GET['edycja']." ");
  5. $user = mysql_fetch_assoc($result);
  6. echo $user['user_name'];
  7. }


i w adresie wpisując ?edycja=2 nie wyświetla mi danych a jak dam swoje id czyli 1 to wyświetla mi dane ;|
luck
Na pewno masz w bazie usera o id=2? Co się dzieje jeśli na sztywno podasz takie id w zapytaniu? Jaki jest wynik?
BTW. W wolnym czasie poczytaj o SQL Injection. Serio, poczytaj.
JulekJP
A no sorry nie ma id 2 moja wina.. dlaczego mam poczytać o SQL Injection? Coś słyszałem o tym
luck
Choćby dlatego, że pozwolenie na wysłanie do bazy takiego zapytania:
  1. mysql_query("SELECT * FROM user WHERE id=".$_GET['edycja']." ")
to programistyczne samobójstwo. To są bardzo poważne rzeczy, dlatego zwracam Ci na nie uwagę.
JulekJP
No jedna osoba mi pisała.. Przeczytałem sobie o SQL Injection i wiem jak wykorzystać to ale jak zabezpieczyć się przed tym to nadal nie wiem.. Morzę masz jakąś strone gdzie dowiem sie jak zabespieczyć? Albo ty morze mi pomożesz?
luck
Polecam ten wątek: Temat: SQL Injection Insertion
A na początek możesz dać choćby
  1. "SELECT * FROM user WHERE id=".mysql_real_escape_string($_GET['edycja'])
JulekJP
Cały kod pliku wygląda tak.. Czy jest dobrze?

  1. <?php
  2. require("../manicore.php");
  3. require("../header.php");
  4. if (!$datauser['user_level'] == 103)
  5. { header("Location: ../login.php"); exit; } else {
  6.  
  7. echo "<div id=\"conten\">
  8. <div id=\"conten_01\">";
  9.  
  10.  
  11. if($_GET['edycja'])
  12. {
  13. $edycja = mysql_real_escape_string($_GET['edycja']);
  14. $result = mysql_query("SELECT * FROM user WHERE id=$edycja ");
  15. $user = mysql_fetch_assoc($result);
  16. echo $user['user_name'];
  17. } else {
  18. ?>
  19. <table width="70%" border="0">
  20. <tr>
  21. <td><strong>Nazwa klienta</strong></td>
  22. <td align="center"><strong>Typ</strong></td>
  23. <td><strong>Opcje</strong></td>
  24. </tr>
  25. <?php
  26. $result = mysql_query("SELECT * FROM user ORDER BY user_name");
  27. for($i = 0; $i < mysql_num_rows($result); $i++)
  28. {
  29. $data = mysql_fetch_assoc($result);
  30. echo "<tr>
  31. <td>".$data['user_names']." ".$data['user_name']."</td>
  32. <td>".getuserlevel($data['user_level'])."</td>
  33. <td>[edytuj] | [usun]</td>
  34. </tr>";
  35. }
  36.  
  37. }
  38. echo "</table>";
  39. echo "<br class=\"clearfloat\" />";
  40. echo "</div>";
  41. }
  42. require("../footer.php");
  43. ?>
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.