• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd walidacji w inputach, zapamiętanie wpisanych wartości

0 głosów
64 wizyt
pytanie zadane 13 sierpnia w PHP, Symfony, Zend przez Leszek Dybiec Nowicjusz (200 p.)
edycja 13 sierpnia przez Leszek Dybiec

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.

<?php
session_start();
	
	if (!isset($_SESSION['logged']))
	{
	header('Location: index.php');
	exit();
	}

     
if(isset($_POST['send'])) 
{
    $all_ok=true;
    $id = $_POST['id']; 
    $domain_name = $_POST['domain_name']; 
    foreach ($domain_name as $value) 
        {
        if (strlen($value)<5)
        {   
         
        $all_ok=false;
        $_SESSION['e_name']="Wpisana domena jest zbyt króka.";
        }
        }
    $_SESSION['fr_name'] = $value;
   
    if ($all_ok==true)
    {
        $count = count($id); 
    for($i=0;$i<$count;$i++) {
       
        $connect->query('UPDATE domains SET domain_name="'.$domain_name[$i].'" WHERE id='.(int)$id[$i].'');
    }
        $_SESSION['well_done']=true;
        echo "udana walidacja";
    }
}
?>
<style>
        .error
        {
            color:#cc0000;
            margin-top: 5px;
            margin-bottom: -5px;
            font-size:12px;
        }
     
    </style>
<form method="POST" action="">
<table>
<?php
$result = $connect->query("SELECT * FROM domains");
 
    $how_nick = $result->num_rows;
     
    if ($how_nick != 0) {
         
       while($data = $result->fetch_assoc())
      {
?>  
<tr>
    <td>Nazwa Domeny:<br> <input type="text" value="<?php
            if (isset($_SESSION['fr_name']))
            {
                echo $_SESSION['fr_name'];
                unset($_SESSION['fr_name']);
            }
            else
            {
                echo $name_check; 
            }   
        ?>" name="domain_name[]"><br /><?php
            if (isset($_SESSION['e_name']))
            {
                echo '<div class="error">'.$_SESSION['e_name'].'</div>';
                unset($_SESSION['e_name']);
            }
        ?></td>
    <td><input type="hidden" name="id[]" value="<?php echo $data['id'];?>"/></td>
</tr>
<?php            
}}
?>         
</table>
<br /><center><input class="button" type="submit" name="send" value="Zapisz"></center>
</form>

 

2 odpowiedzi

0 głosów
odpowiedź 13 sierpnia przez UltraSF Stary wyjadacz (10,940 p.)
A skąd się wzięła ta zmienna $name_check ? NIe widzę jej deklaracji nigdzie
1
komentarz 13 sierpnia przez Leszek Dybiec Nowicjusz (200 p.)
faktycznie zamiast $name_check ma być $data['domain_name']
0 głosów
odpowiedź 13 sierpnia przez Leszek Dybiec Nowicjusz (200 p.)

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

Podobne pytania

0 głosów
1 odpowiedź 96 wizyt
pytanie zadane 6 czerwca 2016 w C i C++ przez MiO Obywatel (1,310 p.)
0 głosów
1 odpowiedź 48 wizyt
pytanie zadane 8 kwietnia w PHP, Symfony, Zend przez Whereismycode Obywatel (1,100 p.)
0 głosów
1 odpowiedź 185 wizyt
pytanie zadane 28 listopada 2017 w PHP, Symfony, Zend przez drraco Początkujący (370 p.)
Porady nie od parady
Zadając pytanie postaraj się o odpowiedni tytuł, kategorię oraz tagi.Tagi

65,728 zapytań

112,369 odpowiedzi

237,231 komentarzy

46,688 pasjonatów

Przeglądających: 177
Pasjonatów: 4 Gości: 173

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...