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

PHP wyswietlanie bledu

Ultraszybki serwer VPS NVMe START
0 głosów
50 wizyt
pytanie zadane 19 maja w PHP, Symfony, Zend przez Ziuziek Gaduła (4,920 p.)
edycja 19 maja 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ź 19 maja przez niezalogowany

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 19 maja przez Ziuziek Gaduła (4,920 p.)
Zeby wyswietlalo poszczególne bledy np dotyczace hasla , loginu itd to musi byc przy kazdym polu validacji header location tak?
komentarz 19 maja przez Ziuziek Gaduła (4,920 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ź 46 wizyt
0 głosów
1 odpowiedź 53 wizyt
pytanie zadane 7 grudnia 2016 w C i C++ przez 10kw10 Pasjonat (19,570 p.)
0 głosów
1 odpowiedź 56 wizyt

41,300 zapytań

80,249 odpowiedzi

158,746 komentarzy

19,718 pasjonatów

Przeglądających: 253
Pasjonatów: 17 Gości: 236

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.

...