Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z sesjami i cookies
Forum PHP.pl > Forum > Przedszkole
Otto
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. }
bastard13
session_start(); musi być na początku każdego pliku korzystającego z sesji
Otto
Problem naprawiony.
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.