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

PHP wyswietlanie bledu

0 głosów
49 wizyt
pytanie zadane 6 dni temu w PHP, Symfony, Zend przez Ziuziek Gaduła (3,970 p.)
edycja 6 dni temu przez Ziuziek

Siema mam pytanie zrobilem tak i mam problem, bo jesli raz wyskocza bledy to po odswiezeniu strony dalej widoczne sa bledy, jak zrobic by znikaly w raz z odswiezaniem strony? i czy tak ma wygladac walidacja ze jesli jest blad to wroc do poprzedniej strony?

        $state = $_POST['state'];
		if((strlen($state)<4) || (strlen($state)>100)) { 
            $_SESSION['warning_state'] = "blad";
               header('Location: ./add_attraction.php');
            
             } 
        $city = $_POST['city'];
		if((strlen($city)<4) || (strlen($city)>100)) { 
             $_SESSION['warning_city'] = "blad zzz";
             header('Location: ./add_attraction.php');
            } 

 

 <label>Państwo</label>
 <input name="state" class="form-control"  type="text" placeholder="uzupełnij"><br/>
 <?php if(isset($_SESSION['warning_state'])) echo '<div class="warning">'.$_SESSION['warning_state'].'</div><br />'; ?>

 <label>Kraj</label>
 <input name="city" class="form-control" type="text" placeholder="uzupełnij"><br/>
<?php if(isset($_SESSION['warning_city'])) echo '<div class="warning">'.$_SESSION['warning_city'].'</div><br />'; ?>
              

 

I jak zrobic zeby wszedzie nie pisac header location

1 odpowiedź

0 głosów
odpowiedź 6 dni temu przez Karol Jankiewicz Mądrala (5,780 p.)

Nie rozumiem czemu błędy tego typu trzymać w sesjach? To przez to Ci błędy nie znikają. Zmienne sesyjne nie są nigdzie usuwane.

Lepiej to zrobić po parametrze GET w url.

$state = $_POST['state'];
if((strlen($state)<4) || (strlen($state)>100)) { 
       header('Location: ./add_attraction.php?blad=blad1');
     
     } 

 

I w pliku gdzie chcesz łapać błędy:

<?php
 if(isset($_GET['blad'])) 
echo '<div class="warning">'.$_GET['blad'].'</div><br />';
 ?>

 

 

 

komentarz 6 dni temu przez Ziuziek Gaduła (3,970 p.)
Zeby wyswietlalo poszczególne bledy np dotyczace hasla , loginu itd to musi byc przy kazdym polu validacji header location tak?
komentarz 6 dni temu przez Ziuziek Gaduła (3,970 p.)

Twoj sposob nie dziala zrobielm tak

        $state = $_POST['state'];
		if((strlen($state)<4) || (strlen($state)>100)) { 
       header('Location: ./add_attraction.php?blad=blad1');
     }

<?php
 	if(!empty($_GET['blad'])){
 $blad = $_GET['blad'];
echo $_GET['blad'];
 }
 echo $blad;
 ?>

I po wyslaniu

Notice: Undefined variable: blad in C:\xampp\htdocs\add_attraction.php on line 36

a W logu jest

http://localhost/skrypt/add_attraction.php?blad=blad1 błąd 302 NOT FOUND

Podobne pytania

0 głosów
1 odpowiedź 44 wizyt
0 głosów
1 odpowiedź 45 wizyt
pytanie zadane 7 grudnia 2016 w C i C++ przez 10kw10 Pasjonat (15,210 p.)
0 głosów
1 odpowiedź 54 wizyt
...