Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z sesjami i cookies
Otto
post 15.09.2010, 21:20:48
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 7
Dołączył: 22.03.2010

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


Witam mam drobny problem z systemem logowania mianowicie gdy skrypt przechodzi przez sprawdzanie poprawnosci danych i ustawia sesje wszystko jest dobrze dopiero gdy ma pokazac czy jestem zalogowany czy nie pokazuje ze nie jestem mimo iz sesja zostala ustawiona

plik login.php
  1. <?php
  2. include('config.php');
  3. ?>
  4. <html>
  5. <head>
  6. <link rel="stylesheet" type="text/css" href="style.css" />
  7. </head>
  8. <body>
  9. <div class="panel_top">Panel Użytkownika</div>
  10. <div class="panel_body">
  11. <div style="padding: 5px 15px 5px 15px;">
  12. <?php
  13. if ($_SESSION['logged'] != '1' || $_COOKIES['logged'] != '1') {
  14.  
  15. if (isset($_GET['error']) && $_GET['error'] == '1') {
  16. echo "<span style='color: #cc0000;'>Zła nazwa użytkownika lub hasło!<br><br></span>";
  17. }
  18. ?>
  19. Nazwa użytkownika:
  20. <form action="trans.php" method="post">
  21. <input class="input_login" type="text" name="username">
  22. Hasło:
  23. <input class="input_login" type="password" name="password">
  24. <input type="checkbox" name="remember"><span style="text-decoration: underline; font-size: 12px; color: #76b013;">Zapamiętaj mnie</span>
  25. <center><input class="submit_login" type="submit" name="zaloguj" value=""></center>
  26. </form>
  27. <span style="font-size: 11px; color: #76b013;">Nie masz konta?</span><br>
  28. <a href="#">Załóż konto</a>
  29. <?php
  30. } else {
  31. ?>
  32. Witaj!
  33. <?php
  34. }
  35. ?>
  36. </div>
  37. </div>
  38. <div class="panel_down"></div>
  39. </body>
  40. </html>


a oto plik przetwazajacy skrypt

trans.php
  1. // Logowanie
  2.  
  3. if (isset($_POST['zaloguj'])) {
  4. $login = $_POST['username'];
  5. $haslo = md5($_POST['password']);
  6. $remember = $_POST['remember'];
  7.  
  8. $q = "SELECT * FROM user WHERE login = '".$login."' AND pass = '".$haslo."' LIMIT 1";
  9. $s = mysql_query($q) or die(mysql_error());
  10. $n = mysql_num_rows($s);
  11.  
  12. if ($n > 0) {
  13. if ($remember = 'on') {
  14. while ($r = mysql_fetch_array($s)) {
  15. $_COOKIES['password'] = $r['pass'];
  16. $_COOKIES['logged'] = '1';
  17. $_COOKIES['login'] = $r['login'];
  18. $_COOKIES['mail'] = $r['mail'];
  19. $_COOKIES['type'] = $r['type'];
  20. $_COOKIES['id'] = $r['id'];
  21. }
  22. } else {
  23. while ($r = mysql_fetch_array($s)) {
  24. $_SESSION['logged'] = '1';
  25. $_SESSION['login'] = $r['login'];
  26. $_SESSION['mail'] = $r['mail'];
  27. $_SESSION['type'] = $r['type'];
  28. $_SESSION['id'] = $r['id'];
  29. }
  30. }
  31. header('location:login.php?zalogowano=tak');
  32. } else {
  33. $error = '1';
  34. header('location:login.php?error='.$error.'');
  35. }
  36. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
bastard13
post 15.09.2010, 21:27:06
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


session_start(); musi być na początku każdego pliku korzystającego z sesji


--------------------
Go to the top of the page
+Quote Post
Otto
post 15.09.2010, 21:30:08
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 7
Dołączył: 22.03.2010

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


Problem naprawiony.

Ten post edytował Otto 15.09.2010, 22:59:37
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 15:39