Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Błąd walidacji w inputach, zapamiętanie wpisanych wartości
ufo1990
post 13.08.2019, 08:00:00
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 26.07.2019

Ostrzeżenie: (0%)
-----


Witam mam dwa problemu z poniższym kodem tzn.

1. Chciałbym aby zapisane wartości w input-ach były zapamiętywane, ponieważ teraz zwraca wartość " <br /><b>Notice</b>: Undefined variable: name_check in".

2. Jeżeli długość domeny jest krótsza niż 5 znaków to zwraca błąd ale tylko przy pierwszym inpucie, a chciałbym aby błąd walidacji był przy każdym z inputów.

  1. <?php
  2. require_once "connect.php";
  3.  
  4. $connect = @new mysqli($host, $db_user, $db_password, $db_name);
  5.  
  6. if(isset($_POST['send']))
  7. {
  8. $all_ok=true;
  9. $id = $_POST['id'];
  10. $domain_name = $_POST['domain_name'];
  11. foreach ($domain_name as $value)
  12. {
  13. if (strlen($value)<5)
  14. {
  15.  
  16. $all_ok=false;
  17. $_SESSION['e_name']="Wpisana domena jest zbyt króka.";
  18. }
  19. }
  20. $_SESSION['fr_name'] = $value;
  21.  
  22. if ($all_ok==true)
  23. {
  24. $count = count($id);
  25. for($i=0;$i<$count;$i++) {
  26.  
  27. $connect->query('UPDATE domains SET domain_name="'.$domain_name[$i].'" WHERE id='.(int)$id[$i].'');
  28. }
  29. $_SESSION['well_done']=true;
  30. echo "udana walidacja";
  31. }
  32. }
  33. ?>
  34. <style>
  35. .error
  36. {
  37. color:#cc0000;
  38. margin-top: 5px;
  39. margin-bottom: -5px;
  40. font-size:12px;
  41. }
  42.  
  43. </style>
  44. <form method="POST" action="">
  45. <table>
  46. <?php
  47. $result = $connect->query("SELECT * FROM domains");
  48.  
  49. $how_nick = $result->num_rows;
  50.  
  51. if ($how_nick != 0) {
  52.  
  53. while($data = $result->fetch_assoc())
  54. {
  55. ?>
  56. <tr>
  57. <td>Nazwa Domeny:<br> <input type="text" value="<?php
  58. if (isset($_SESSION['fr_name']))
  59. {
  60. echo $_SESSION['fr_name'];
  61. unset($_SESSION['fr_name']);
  62. }
  63. else
  64. {
  65. echo $name_check;
  66. }
  67. ?>" name="domain_name[]"><br /><?php
  68. if (isset($_SESSION['e_name']))
  69. {
  70. echo '<div class="error">'.$_SESSION['e_name'].'</div>';
  71. unset($_SESSION['e_name']);
  72. }
  73. ?></td>
  74. <td><input type="hidden" name="id[]" value="<?php echo $data['id'];?>"/></td>
  75. </tr>
  76. <?php
  77. }}
  78. ?>
  79. </table>
  80. <br /><center><input class="button" type="submit" name="send" value="Zapisz"></center>
  81. </form>



w tym momencie jak w drugim inpucie wpisze wartość mniejszą niż dwa znaki to dostaje zwrot taki jak na zdjęciu.



Ten post edytował nospor 19.08.2019, 14:08:51
Go to the top of the page
+Quote Post
nospor
post 19.08.2019, 14:13:46
Post #2





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




ad1)
Ja tam nie wiem o co ci chodzi, ale $name_check widze tylko raz w kodzie, o tu
echo $name_check;
Nigdzie tej zmiennej nie definiujesz wiec nic dziwnego ze nie dziala. Z powietrza sie nie wezmie...
Jak chcesz cos pamietac miedzy stronami to albo masz to zapisac w sesji i potem z sesji pobrac, albo przesylac formem jako pole ukryte (hidden)

ad2)
Jak chcesz miec kilka bledow to zapisuj te bledy w tablicy a nie jak teraz nadpisujesz ciagle ten sam index.
A zdjecia jak wkladasz to wkladaj tak, bysmy je widzieli np. umieszczaj je w publicznych zasobach a nie dostepnych tylko dla ciebie

ps: przenosze na przedszkole i przez pewien czas sam zakladaj tam tematy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 18:03