Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]logowanie z sesjami
Forum PHP.pl > Forum > Przedszkole
Ice_Gust_PL
Witam. Napotkałem się z problemem podczas tworzenia logowania na podstawie sesji.
login.php
  1. <?php
  2. $l=$_POST['login'];
  3. $h=$_POST['haslo'];
  4. $wzor="9df3b01c60df20d13843841ff0d4482c";
  5. if(($l=="download")&&(md5($h)==$wzor)) header('location: download.php');
  6. $SESSION['log']=='1';
  7. $SESSION['login']==$login;
  8. ?>
  9. <link rel="Stylesheet" type="text/css" href="1.css">
  10. <title>Zaloguj Sie</title>
  11. <center><br><br>
  12. <form method="POST" action="download.php">
  13. <b>Login:</b> <input type="text" name="login"><br>
  14. <b>Hasło:</b> <input type="password" name="haslo"><br>
  15. <input type="submit" value="Wyslij" name="wyslij">
  16. </form></center>

i sprawdzanie czy zalogowany:
  1. <?php
  2. if $SESSION['log']!='1'
  3. {
  4. header('location: login.php');
  5. }
  6. ?>

Niestety to nie działa. Nie wiem co dokładnie, ale nie powinna wejść strona, która jest sprawdzana, tylko powinna wskoczyć strona logowania. Co jest nie tak?
Chelo
Nie $SESSION tylko $_SESSION

zapamiętaj
Ice_Gust_PL
widocznie jest jeszcze jakiś inny błąd, bo niestety nie pomogło to całkowicie rozwiązać problem. Z tego co widzę to przekierowuje dobrze, czyli samo logowanie działa ok, tylko strona gdzie jest sprawdzane czy zalogowany wyświetla się pusta, cała biała...
Fafu
Jak sprawdzasz poprawność danych to wysyłasz użytkownika na stronę download.php więc nie przypiszą się zmienne. Rozwiązaniem jest dać header pod deklarowaniem zmiennych.
Ice_Gust_PL
  1. ...
  2. $SESSION['log']=='1';
  3. $SESSION['login']==$login;
  4. if(($l=="download")&&(md5($h)==$wzor)) header('location: download.php');
  5. ...

tak to ma wyglądać?
Chelo
Jak już coś to raczej tak:

  1. ...
  2. $_SESSION['log']=='1';
  3. $_SESSION['login']==$login;
  4. if(($l=="download")&&(md5($h)==$wzor)){
  5. $_SESSION['heade'] = header('location: download.php');
  6. }
  7. ...


albo

  1. ...
  2. $_SESSION['log']=='1';
  3. $_SESSION['login']==$login;
  4. if(($l=="download")&&(md5($h)==$wzor)){
  5. header('location: download.php');
  6. }
  7. ...
Ice_Gust_PL
dobra, wyswietla sie juz ta strona gdzie jest sprawdzanie, znaczy od razu przeskakuje na strone logowania, tylko ze z dobrym haslem i loginem dalej sie nie da wejsc. Problemem byl brak nawiasow przy okresleniu warunku. Moze zamieszcze obecne kody, co by bylo lepiej widac.
login.php
  1. <?php
  2. $l=$_POST['login'];
  3. $h=$_POST['haslo'];
  4. $wzor="9df3b01c60df20d13843841ff0d4482c";
  5. $_SESSION['log']=='1';
  6. $_SESSION['login']==$login;
  7. if(($l=="download")&&(md5($h)==$wzor)){
  8. $_SESSION['heade'] = header('location: download.php');
  9. }
  10. ?>
  11. <link rel="Stylesheet" type="text/css" href="1.css">
  12. <title>Download</title>
  13. <center><br><br>
  14. <form method="POST" action="login.php">
  15. <b>Login:</b> <input type="text" name="login"><br>
  16. <b>Hasło:</b> <input type="password" name="haslo"><br>
  17. <input type="submit" value="Wyslij" name="wyslij">
  18. </form></center>

download.php
  1. <?php
  2. if ($_SESSION['log']!='1')
  3. {
  4. header('location: login.php');
  5. }
  6. ?>
  7. <html>
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-2">
  10. <link rel="Stylesheet" type="text/css" href="2.css">
  11. </head>
  12. <body>
  13. <center>
  14. Nowa wersja utworu Lush Layer!<br><br><br>
  15. Jeśli chcesz ściągnąć, kliknij <a href="http://avigraf.krakow.pl/icegust/lush_layer3.mp3"><b>tutaj</b></a>
  16. </center>
  17. </body>
  18. </html>

jakby ktoś chciał sprawdzić to na servie to wygląda tak: http://avigraf.krakow.pl/wzawislak/download.php
login: download
hasło: access
Chelo
a spróbuj:


  1. <?php
  2. $l=$_POST['login'];
  3. $h=$_POST['haslo'];
  4. $wzor="9df3b01c60df20d13843841ff0d4482c";
  5. $_SESSION['log']=='1';
  6. $_SESSION['login']==$login;
  7. if($l=="download" && md5($h) ==$wzor) {
  8. $_SESSION['heade'] = header('location: download.php');
  9. }
  10. ?>
  11. <link rel="Stylesheet" type="text/css" href="1.css">
  12. <title>Download</title>
  13. <center><br><br>
  14. <form method="POST" action="login.php">
  15. <b>Login:</b> <input type="text" name="login"><br>
  16. <b>Hasło:</b> <input type="password" name="haslo"><br>
  17. <input type="submit" value="Wyslij" name="wyslij">
  18. </form></center>
Ice_Gust_PL
niestety to nie to...
MateuszS
nie

#
$_SESSION['log']=='1';
#
$_SESSION['login']==$login;



tylko


#
$_SESSION['log']='1';
#
$_SESSION['login']=$login;
cojack
I po header daje się exit, żeby reszta kodu się nie wykonała w razie w.
Ice_Gust_PL
Dzięki, już wszystko działa!
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.