Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [html][php][mysql] bezpieczny formularz
Forum PHP.pl > Forum > Przedszkole
pt
Witam, od razu zaznaczę iż jestem początkujący - chciałem poradzić się odnośnie bezpiecznego formularza, uproszczeń co do mojej wersji, bo zdaję sobie sprawę iż na pewno jest prostsze i wygodniejsze rozwiązanie - tak więc proszę o pomoc doświadczonych kolegów ...

formularz.html
  1. <form action="wyszukiwarka.php" method="GET">
  2. <table border="0" width="100%" cellspacing="0" cellpadding="0">
  3. <tr>
  4. <td>wybierz rodzaj billboardu:<br>
  5. wolnostojący - <input type="checkbox" name="wolnostojacy" value="wolnostojacy"><br>
  6. wiszący - <input type="checkbox" name="wiszacy" value="wiszacy"><br>
  7. przestawny - <input type="checkbox" name="przestawny" value="przestawny"><br>
  8. inny - <input type="checkbox" name="inny" value="inny"><br>
  9. <br>
  10. wymiary billboardu:<br>
  11. <input type="text" name="szerokosc" size="14" value=" szerokość">
  12. <input type="text" name="wysokosc" size="14" value=" wysokość"><br>
  13. <br>
  14. rodzaj tablicy:<br>
  15. jednostronna - <input type="checkbox" name="jednostronna" value="jednostronna"><br>
  16. dwustronna - <input type="checkbox" name="dwustronna" value="dwustronna"><br>
  17. <br>
  18. oświetlenie:<br>
  19. tak - <input type="checkbox" name="tak" value="tak"><br>
  20. nie - <input type="checkbox" name="nie" value="nie"><br>
  21. <br>
  22. lokalizacja:<br>
  23. <input type="text" name="lokalizacja" size="31" value=" wprowadź nazwę ulicy"><br>
  24. <br>
  25. <input type="image" value="wyszukaj" src="wyszukaj.gif" width="70" height="20"></td>
  26. </tr>
  27. </form>


wyszukiwarka.php
  1. <?php
  2. print "wybrane opcje wyszukiwania:<br><br>";
  3. //pobieranie pierwszej zmiennej
  4. if (!empty($_GET['wolnostojacy'])) {
  5. print $_GET['wolnostojacy'];
  6. print" ";
  7. }
  8. //pobieranie drugiej zmiennej
  9. if (!empty($_GET['wiszacy'])) {
  10. print $_GET['wiszacy'];
  11. print" ";
  12. }
  13. //pobieranie trzeciej zmiennej
  14. if (!empty($_GET['przestawny'])) {
  15. print $_GET['przestawny'];
  16. print" ";
  17. }
  18. //pobieranie czwartej zmiennej
  19. if (!empty($_GET['inny'])) {
  20. print $_GET['inny'];
  21. print" ";
  22. }
  23. //pobieranie szerokosci zmiennej
  24. if (!empty($_GET['szerokosc'])) {
  25. print $_GET['szerokosc'];
  26. print" ";
  27. }
  28. //pobieranie wysokosc zmiennej
  29. if (!empty($_GET['wysokosc'])) {
  30. print $_GET['wysokosc'];
  31. print" ";
  32. }
  33. //pobieranie jednostronna zmiennej
  34. if (!empty($_GET['jednostronna'])) {
  35. print $_GET['jednostronna'];
  36. print" ";
  37. }
  38. //pobieranie dwustronna zmiennej
  39. if (!empty($_GET['dwustronna'])) {
  40. print $_GET['dwustronna'];
  41. print" ";
  42. }
  43. //pobieranie oswietlenie zmiennej
  44. if (!empty($_GET['tak'])) {
  45. print $_GET['tak'];
  46. print" ";
  47. }
  48. //pobieranie oswietlenie zmiennej
  49. if (!empty($_GET['nie'])) {
  50. print $_GET['nie'];
  51. print" ";
  52. }
  53. //pobieranie lokalizacja zmiennej
  54. if (!empty($_GET['lokalizacja'])) {
  55. print $_GET['lokalizacja'];
  56. print" ";
  57. }
  58. ?>


... niby wyświetla mi te opcje które wybiorę, ale ten kod mnie przeraża ;-), da się go jakoś uprościć? czy będzie bezpieczny w takiej formie? i najważniejsze dla mnie - jak wykonać zapytanie do bazy, spełniające kryteria wyszukiwania które użytkownik wybierze "zaznaczy"?
lukaszgolder
Zmień sposób przesyłania danych z GET na POST, a no i a pewno łatwiej będzie jeśli zrobisz to za pomocą tablicy, a dokładniej:
  1. <form action="wyszukiwarka.php" method="POST">
  2.  
  3. wolnostojący - <input type="checkbox" name="dane[]" value="wolnostojacy" /><br />
  4. wiszący - <input type="checkbox" name="dane[]" value="wiszacy" /><br />
  5. przestawny - <input type="checkbox" name="dane[]" value="przestawny" /><br />

I wyświetlać to za pomocą pętli foreach:
  1. <?php
  2. $tablica = $_POST['dane'];
  3. foreach($tablica as $klucz => $wartosc) { ... }
  4. ?>

Co do zapytania zależy to od struktury bazy, ale możesz to zrobić np tak:
  1. <?php
  2. mysql_query("INSERT INTO `wyszukwianie` VALUES(NULL, '$rodzaj_bilbordu', '$szerokosc', '$wysokosc');
  3. ?>
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.