Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sesja. Nie działa?
-Wieviór-
post
Post #1





Goście







  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...

Ten post edytował Wieviór 4.01.2005, 20:18:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
crash
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


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...

Ten post edytował crashu 4.01.2005, 20:16:50
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #3





Goście







O góry są kolorki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
crash
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


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ą.

Ten post edytował crashu 4.01.2005, 20:38:10
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #5





Goście







Dałem Ob_End_Flush na końcu i nadal to samo. Tam wyżej musi być błąd. Tylko nie mogę go znaleść...
Go to the top of the page
+Quote Post
crash
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


No tam są błędy! Podałem Ci je już 2 posty wyżej...
Go to the top of the page
+Quote Post
rogrog
post
Post #7





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

zawsze warto używać wcięć które obrazują działanie warunków - prawdopodobnie nie było by tego problemu... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
crash
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Ale i tak przy takim zapytaniu SQL nie uda się znaleźć użytkownika, chyba że jego nazwa jest typu int (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
rogrog
post
Post #9





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post

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: 14.09.2025 - 13:57