Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesja. Nie działa?
Forum PHP.pl > Forum > Przedszkole
Wieviór
  1. <?
  2. include 'config.php';
  3. ?>


  1. <form method=\"POST\" action=\"index.php?akcja=login\">  
  2.                   <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
  3.                     <tr>
  4.                       <td>Login:&nbsp;</td>
  5.                       <td><input type=\"text\" name=\"login\" size=\"10\"></td>
  6.                     </tr>
  7.                     <tr>
  8.                       <td>Hasło:&nbsp;</td>
  9.                       <td><input type=\"password\" name=\"pass\" size=\"10\"></td>
  10.                     </tr>
  11.                   </table>
  12.                 <input type=\"submit\" value=\"Zaloguj\" name=\"Submit\">
  13.               </form>
  14. <?
  15. if (!$_SESSION['login'])
  16. { echo 'Nie jesteś zalogowany.'; } else {            
  17.  if ($_GET['akcja'] == 'login')
  18.  {
  19.  $sql = 'SELECT * FROM 'uzytkownik' WHERE login=$_POST[login]';
  20.  $wykonaj = mysql_query($sql);            
  21.  $log = mysql_fetch_array($wykonaj);
  22.    if ( $_POST['pass'] == $log['haslo'])
  23.    {
  24.    $_SESSION['login'] = $_log['login'];
  25.    $_SESSION['imie'] = $log['imie'];
  26.    echo 'Witaj '.$_SESSION['imie'].'.<br><a href=\"index.php?akcja=logout\">Wyloguj sie</a>.';
  27.    } else { echo 'Podano błedne dane.';  }
  28.  }
  29.  if ($_GET['akcja'] == 'logout')
  30.  {
  31.  echo 'Wylogowano.';
  32.  }
  33. }
  34. ?>


No i nic. Jak się próbuje logować to absolutnie nic sie nie dzieje niezależnie do tego czy dobre czy złe dane...
crash
Pierwszy błąd widzę tu:
  1. <?php
  2. $sql = 'SELECT * FROM 'uzytkownik' WHERE login=$_POST[login]';
  3. ?>

zmień na:
  1. <?php
  2. $sql = 'SELECT * FROM \"uzytkownik\" WHERE login=\"'.$_POST[login].'\"';
  3. ?>

Poza tym dziwi mnie ten fragment (?) kodu z początkiem buforowania, a nigdzie końca nie widać...

Więcej błędów zobaczę jak użyjesz poprawnie BBCode...
Wieviór
O góry są kolorki winksmiley.jpg
crash
Dodaj może na samym końcu ob_end_flush" title="Zobacz w manualu PHP" target="_manual, poraw te błędy, które Ci wskazałem i napisz czy dalej jest coś nie tak. Ewentaulnie usuń całkowicie buforowanie wyjścia, ustaw error_reporting(E_ALL); i podaj tu błędy, jeśli nadal jakieś będą.
Wieviór
Dałem Ob_End_Flush na końcu i nadal to samo. Tam wyżej musi być błąd. Tylko nie mogę go znaleść...
crash
No tam są błędy! Podałem Ci je już 2 posty wyżej...
rogrog
jeśli nie użyje się ob_end_flush to php i tak automatycznie spłukuje bufor na końcu więc to nie to.

Paweł: w którym miejscu masz umieszczone session_start() bo ja nie widzę? w config.php?


wg mnie jest źle zbudowana konstrukcja warunkowa
  1. <?php
  2. if ( !$_SESSION['login'] )
  3. {
  4. //Nie jesteś zalogowany
  5. } 
  6. else 
  7. {
  8. //te instrukcje wykonaj tylko jeśli nie jest prawdą że \"nie jesteś zalogowany\",
  9. //czyli tylko jeśli jesteś zalogowany
  10.  
  11. if ($_GET['akcja'] == 'login')
  12. {
  13.  //logowanie
  14. }
  15.  
  16. if ($_GET['akcja'] == 'logout')
  17. {
  18.  //Wylogowanie
  19.  }
  20. }
  21.  
  22. ?>


czyli logowanie będzie następowało tylko jeśli użytkownik jest już zalogowany, co chyba nie jest zgodne z zamierzeniem winksmiley.jpg

zawsze warto używać wcięć które obrazują działanie warunków - prawdopodobnie nie było by tego problemu... winksmiley.jpg
crash
Ale i tak przy takim zapytaniu SQL nie uda się znaleźć użytkownika, chyba że jego nazwa jest typu int tongue.gif
rogrog
Cytat(crashu @ 2005-01-04 23:10:57)
Ale i tak przy takim zapytaniu SQL nie uda się znaleźć użytkownika, chyba że jego nazwa jest typu int tongue.gif

przy Twoim zapytaniu też chyba nie zadziała. (chyba) powinny być nie cudzysłowy przy nazwie tabeli, ale apostrofy wsteczne:

Cytat(crashu)
  1. <?php
  2. $sql = 'SELECT * FROM \"uzytkownik\" WHERE login=\"'.$_POST[login].'\"';
  3. ?>


  1. <?php
  2. $sql = 'SELECT * FROM `uzytkownik` WHERE login=\"'.$_POST[login].'\"';
  3. ?>
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.