Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]prosze o sprawdzenie kodu
Forum PHP.pl > Forum > Przedszkole
gregov0
skrypt dziala ale prosze o sprawdzenie i ocene czy jest bezpieczny i czy wszystko jest w nim tak jak trzeba lub co nalezy zmienic
  1. <?php
  2. if(isset($_POST["submit"])) {
  3. include ("db.php");
  4.  
  5. $odpa = mysql_real_escape_string(htmlspecialchars(trim($_POST['odpa'])));
  6. $odpb = mysql_real_escape_string(htmlspecialchars(trim($_POST['odpb'])));
  7. $odpc = mysql_real_escape_string(htmlspecialchars(trim($_POST['odpc'])));
  8. $odpd = mysql_real_escape_string(htmlspecialchars(trim($_POST['odpd'])));
  9. $odppraw = mysql_real_escape_string(htmlspecialchars(trim($_POST['odppraw'])));
  10.  
  11. if (empty($pyt)||empty($odpa)||empty($odpb)||empty($odpc)||empty($odpd)||empty($odppraw)) {
  12. echo 'Wypełnij wszystkie pola!';}
  13. else {
  14. echo $add = mysql_query("INSERT INTO quiz(pyt, odpa, odpb, odpc, odpd, odppraw) VALUES('$pyt', '$odpa', '$odpb','$odpc','$odpd','$odppraw')");
  15. }
  16.  
  17.  
  18. if ($add) {
  19. echo '<p>Dodano do bazy</p>';
  20. } else {
  21. echo mysql_error(); echo '<p>Błąd! Spróbuj ponownie</p>';
  22. }
  23. } else {
  24. ?>
  25. <!-- kod formularza-->
  26. <form action="dodpyt.php" method="post">
  27. <table>
  28. <tr>
  29. <td align="right">Pytanie: </td>
  30. <td><textarea name="pyt" rows=5 cols=30 warp=phisical></textarea></td>
  31. </tr>
  32. <tr>
  33. <td align="right">Odpowiedz a: </td>
  34. <td><textarea name="odpa" rows=5 cols=30 warp=phisical></textarea></td>
  35. </tr>
  36. <tr>
  37. <td align="right">Odpowiedz b: </td>
  38. <td><textarea name="odpb" rows=5 cols=30 warp=phisical></textarea></td>
  39. </tr>
  40. <tr>
  41. <td align="right">Odpowiedz c: </td>
  42. <td><textarea name="odpc" rows=5 cols=30 warp=phisical></textarea></td>
  43. </tr>
  44. <tr>
  45. <td align="right">Odpowiedź d: </td>
  46. <td><textarea name="odpd" rows=5 cols=30 warp=phisical></textarea></td>
  47. </tr>
  48. <tr>
  49. <td align="right">Poprawna odpowiedz to: </td>
  50. <td><input type="text" name="odppraw"> - tu wpisz a,b,c lub d</td>
  51. </tr>
  52. <tr>
  53. <td colspan="2" align="right">
  54. <input type="submit" name="submit" value="Zapisz" /></td>
  55. </tr>
  56. </table>
  57. </form>
  58.  
  59. <?php
  60. }
  61. ?>
Piogola
Skrypt ok, tylko po co filtrujesz dane przed sprawdzeniem, czy są wypełnione?
darko
Za eksperta w poprawianiu czyjego kodu się nie uważam, ale mam kilka luźnych uwag.
Z tego

lepiej zrobić prostą funkcję. Zainteresuj się klasą PDO, naucz się z niej poprawnie korzystać i nie będziesz musiał pisać takich potworków sprawdzających przychodzące zmienne. Sprawdzaj czy długość zmiennych poszczególnych odpowiedzi nie jest większa od maksymalnej długości ustawionej w bazie dla tych danych. Znacznik textarea nie ma atrybutu warp, a wrap który jest niestandardowy i interpretowany przez niektóre wersje przeglądarek Netscape i IE. Znacznik input należy zamykać <input type="text" name="odppraw" />. Sam formularz można byłoby przyozdobić jakoś i uporządkować, zamiast jednego pola input (odppraw) wstawiłbym cztery inputy radio po każdym na odpowiedź.

http://www.answerbag.com/q_view/325939
http://stackoverflow.com/questions/263938/...sing-javascript
Ulysess
hmm i jaki jest sens używania htmlspecialchars przy zapisywaniu bez drukowania ?
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.