Napisałem sobie prosty skrypt logowania.
Skrypt po zalogowaniu przekierowywuje na index2.php poprzez header().
Niestety gdy używam else aby wyświetlić niepowodzenie operacji, to while mi powiela komunikat.
Dzieje się chyba dlatego ponieważ sprawdzam dwie zmienne ? Nie wiem dokładnie.
Kod przedstawia się następująco:
<?php $conn = mysqli_connect("localhost", "", "", "test"); $login = $_POST['login']; $haslo = $_POST['haslo']; $zapytanie = "SELECT * FROM uzytkownicy"; $data = mysqli_query($conn, $zapytanie) or die("MySQL error: " . mysqli_error($conn) . "<hr>\nQuery: $zapytanie"); if ($zapytanie) { while ($row = mysqli_fetch_array($data)) { if ($login == $row['login'] || $haslo == $row['haslo']) { $_SESSION['zalogowany'] = true; } else { ?> Niepoprawne dane. Zaloguj sie ponownie! <a href="logowanie.php" >Logowanie</a> <? } } } } else { ?> <form action="logowanie.php" method="post" /> <input name="login" /> <input name="haslo" /> <input type="submit" name="submit" value="Zaloguj" /> </form> <?php } ?>
Komunikat:
Kod
Niepoprawne dane. Zaloguj sie ponownie!
<a href="logowanie.php" >Logowanie</a>
<a href="logowanie.php" >Logowanie</a>
Zostaje powielany.
Wiem że jest on w petli, ale jak jest gdzie indziej to nie działa

Chciałem zastosować też header(), ale wtedy nawet gdy podam poprawne dane w formularzu to przekierowuje mnie na logwanie.php bez sesji...
Da sie to jakos inaczej wyświetlić ? Próbowałem foreach, ale niestety dzialania tej instrukcji nie kumam do końca.
Dzięki za odpowiedzi

Pozdrawiam!