Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Sesje i if w logowaniu
Matjas
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 6.08.2010

Ostrzeżenie: (0%)
-----


Witam

Mam taki problem. Od niedawna zacząłem naukę PHP, przestudiowałem kilka książkowych przykładów dotyczących logowania i postanowiłem napisać coś własnego. Sam skrypt na podstawie danych z formularza sprawdza czy w bazie są już takie dane, a jeśli są to wykonuje akcję. No i z tą akcją jest problem...

Wszystko bazuje na 3 plikach.

  • index.php
  • login.php
  • portal.php


Na stronie index znajduje sie formularz do logowania i przesylany jest do login.php

W pliku login.php jest taki skrypt
  1. <?php
  2. $loginF = $_POST['login']; // dane z formularza
  3. $hasloF = $_POST{'haslo'};
  4.  
  5. $host = "jakis host";
  6. $user = "jakis uzytkownik";
  7. $pass = "jakies haslo";
  8.  
  9. mysql_connect($host,$user,$pass)
  10. or die ("Bład połaczenia z serwerem MySQL");
  11. mysql_select_db("jakas baza");
  12.  
  13. $zapytanie = "SELECT * FROM user WHERE login='$loginF' and haslo='$hasloF'";
  14.  
  15. $rezultat = mysql_query($zapytanie) or die ("Błąd w zapytaniu");
  16.  
  17. while ($tabela = mysql_fetch_array($rezultat)) {
  18. $loginS = $tabela['login']; //dane wyciagniete z bazy
  19. $hasloS = $tabela['haslo'];
  20. }
  21. if ($loginF == $loginS and $hasloF == $hasloS) { //sprawdzenie zgodnosci danych z formularza i danych z bazy
  22. $_SESSION['zalogowany'] = 1;
  23. header("location:portal.php");
  24. } else {
  25. include "niepoprawny.php";
  26. }
  27.  
  28. $_SESSION['loginsesja'] = $loginS; //ta zmienna jest do powitania po nazwie uzytkownika.
  29. ?>


W pliku portal.php znajduje się taka treść
  1. <?php
  2. if ($_SESSION['zalogowany'] != 1) {
  3. echo "tresc wlasciwa";
  4. } else {
  5. header("location:index.php");
  6. }
  7. ?>


Problem dokladnie dotyczy funkcji if w pliku login.php po której następuje stworzenie zmiennej sesyjnej "zalogowany" z wartoscia 1.
Nie wiem dlaczego ale wartosc dla tej zmiennej przyjmuje 1 nawet jesli warunek nie zostaje spełniony. Czyli jeżeli bezpośrednio spróbuje w adresie wejść w plik login.php to bez wzgledu na to czy wpisałem jakieś dane w formularzu czy nie moja zmienna ma wartość 1. Sprawdziłem to funkcją print_r(SESSION);

Czy może ktoś z Was wie dlaczego tak się dzieje?

Z pozdrowieniami
Mateusz
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:29