Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przechodzi przez warunek IF, nie pokazuje instrukcji w ELSE
Forum PHP.pl > Forum > Przedszkole
Mostrom
Witam! Mam dokładniej problem z logowaniem. Kod wygląda tak:
  1. if($_SESSION["zalogowany"]==0){
  2. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  3.  
  4. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
  5. $poprzedniastrona=$_SERVER['HTTP_REFERER'];
  6. if($poprzedniastrona!='http://127.0.0.1/index.php?wyloguj=tak'){
  7. echo "Zalogowano poprawnie. <a href='$poprzedniastrona'>Wróć na poprzednią stronę</a>";
  8. echo "<br/>"; }
  9. else { echo "Zalogowano poprawnie. <a href='/index.php'>Wróć na poprzednią stronę</a>";
  10. echo "<br/>"; }
  11. $_SESSION["zalogowany"]=1;
  12. }
  13. else { echo ShowLogin("Podano złe dane!!!"); }
  14. }
  15. else { ShowLogin(); }
  16.  
  17. }
  18. else { echo "Aaaaaaa"; }


No i nie wyświetla mi "Aaaaaaaa". Wydaje mi się, ze warunek jest spełniony. Co jest źle??
Ramzaa
Konkretniej jeśli można, bo nic z tego nie rozumiem.. Sprawdź czy przy logowaniu dodaje Ci ciasteczka do przeglądarki, bo skrypt wydaje mi się poprawnie napisany.

  1. <?php
  2.  
  3. if( $_SESSION["zalogowany"]==0){
  4. if (!empty($_POST["login"]) && !empty($_POST["haslo"])) {
  5. if (mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE `user_login` = '".htmlspecialchars($_POST["login"])."' AND `user_haslo` = '".htmlspecialchars($_POST["haslo"])."'"))) {
  6. $poprzedniastrona=$_SERVER['HTTP_REFERER'];
  7. if ($poprzedniastrona!='http://127.0.0.1/index.php?wyloguj=tak') {
  8. echo "Zalogowano poprawnie. <a href='$poprzedniastrona'>Wróć na poprzednią stronę</a>";
  9. echo "<br/>"; }
  10. else {
  11. echo "Zalogowano poprawnie. <a href='/index.php'>Wróć na poprzednią stronę</a>";
  12. echo "<br/>"; }
  13. $_SESSION["zalogowany"]=1;
  14. }
  15. else {
  16. echo ShowLogin("Podano złe dane!!!");
  17. }
  18. }
  19.  
  20. else {
  21. ShowLogin();
  22. }
  23.  
  24. }
  25.  
  26. else {
  27. echo "Aaaaaaa";
  28. }
  29.  
  30. ?>

Wersja czytelniejsza od Twojej smile.gif
erix
Jeśli nie masz tego klucza w tablicy, to będzie on miał domyślnie wartość false, w zależności od kontekstu typowania. Ale w tym przypadku - false.
Mostrom
Cytat
Sprawdź czy przy logowaniu dodaje Ci ciasteczka do przeglądarki

Nie wiem dokładnie jak to sprawdzić, ale zdziwiłbym się że nie, bo u kolegi jest tak samo.

Cytat
Jeśli nie masz tego klucza w tablicy, to będzie on miał domyślnie wartość false, w zależności od kontekstu typowania. Ale w tym przypadku - false.

Hmm czyli co mam zrobić żeby wyświetlało tekst w else?
Dla porządku dodam, że na początku pliku z logowaniem mam to:
  1. @session_register("zalogowany");
  2. //łączenie z bazą
  3. //deklaracja funkcji showLogin
  4. <?php
  5. if(empty($_SESSION["zalogowany"])){
  6. $_SESSION["zalogowany"]=0;
  7. }
  8. //dopiero teraz powyższy kod


Więc nie wiem czy mam ten klucz w tablicy
erix
pytanie za sto punktów - startujesz gdzieś sesję?
Mostrom
Tak, ten plik jest includowany do index.php gdzie na samym początku startuję sesje.
Czy mam coś zmienić?
Ramzaa
Temat: MySQLPHPPewien problem z formularzem logowania

Zwróć uwagę na mój skrypt logowania, a szczególnie na plik logowanie.php, bo pewnie masz podobny problem z sesją. Co do sprawdzenia czy tworzy się ciasteczko, to zależy od przeglądarki, w operze mam "Narzędzia -> Zaawansowane -> Ciasteczka" i tak szukasz ip/nazwy serwera, jak masz na localu to będziesz miał "127.0.0.1".
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.