Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sesje
Forum PHP.pl > Forum > Przedszkole
Zawiej
Witam, mam problem z sesjami mianowicie gdy się loguję dane są porównywane wszystko ok jest aż do momentu gdzie zostają przesyłane sesje chodzi mi o to aby z pliku login.php sesja przeszła do main.php.

index.php
  1. <?php
  2. if(isSet($_SESSION['komunikat'])){
  3.    echo $_SESSION['komunikat'];
  4. }
  5. else{
  6.    echo "WprowadĽ nazwę i hasło użytkownika";
  7. }
  8. ?>
  9. <form method="post" action="loguj.php">
  10. <b>Login:</b> <input type="text" name="nick">
  11. <br /><b>Hasło:</b> <input type="password" name="pass">    <br>
  12. <input type="submit" name="ok" value="Zaloguj">
  13. </form>


loguj.php
  1. <?php
  2.  
  3. function checkPass($user, $haslo){
  4.  
  5. // sprawdzenie długości loginu i hasła
  6.    $userNameLength = strlen($user);
  7.    $userPassLength = strlen($haslo);
  8.    
  9.    if($userNameLength < 3  || $userPassLength < 3){
  10.        return 2;
  11.    }
  12.  
  13. // połączenie z bazą danych
  14. include('baza.php');
  15.  
  16.    
  17. // zapytanie potwierdzające poprawność użytkownika
  18.    $query = "SELECT COUNT(*) FROM users WHERE user='$user' ";
  19.    $query .= "AND haslo='$haslo' ";
  20.    
  21.    if(!$result = mysql_query($query)){
  22.        @mysql_close();
  23.        return 1;
  24.    }
  25.    
  26. // sprawdzenie użytkownika
  27.    if(!$row = mysql_fetch_row($result)){
  28.        @mysql_close();
  29.        return 1;
  30.    }
  31.    else{
  32.        if($row[0] <> 1){
  33.            @mysql_close();
  34.            return 2;
  35.        }
  36.        else{
  37.            @mysql_close();
  38.            return 0;
  39.        }
  40.    }
  41. }
  42.  
  43. // rozpoczęcie sesji odpowiedzialnej za logowanie
  44.  
  45. if(isSet($_SESSION['zalogowany'])){
  46.    header("Location: main.php");
  47. }
  48. else if(!isSet($_POST['pass']) || !isSet($_POST['nick'])){
  49.    $_SESSION['komunikat'] = "Wpisz nazwę i hasło użytkownika";
  50.    include('index.php');
  51. }
  52. else{
  53.  
  54.    $user = $_POST["nick"];
  55.    $haslo = md5($_POST["pass"]);
  56.    
  57.    $val = checkPass($user, $haslo);
  58.    
  59.    if($val == 0){
  60.        $_SESSION['zalogowany'] = $_POST['user'];
  61.        header("Location: main.php");
  62.    }
  63.    else if($val == 1){
  64.        $_SESSION['komunikat'] = "Błąd serwera. Zalogowanie się nie było możliwe. Spróbój ponownie póĽniej";
  65.        include('index.php');
  66.    }
  67.    else if($val == 2){
  68.        $_SESSION['komunikat'] = "Zły login lub hasło";
  69.        include('index.php');
  70.    }
  71.    else{
  72.        $_SESSION['komunikat'] = "Gra chwilowo nieczynna z przyczyn technicznych. Spróbuj ponownie póĽniej";
  73.        include('index.php');
  74.    }
  75. }
  76.    
  77. ?>


main.php

  1. <?php
  2. if(!isSet($_SESSION['zalogowany'])){
  3.  $_SESSION['komunikat'] = "Brak autoryzacji!";
  4.  include('index.php');
  5.  exit();
  6. }
  7. ?>
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  9. <html>
  10. <head>
  11.  <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  12.  
  13.  <title>Race</title>
  14.  
  15.  <link rel="stylesheet" href="style_main.css" type="text/css">
  16. </head>
  17. <body>
  18. <?php
  19. include('baza.php');
  20. include('header.php');
  21. ?>
  22. <table cellspacing="0" cellpadding="0" border="0" width="980">
  23.    <tr>
  24.        <td class="pad" bgcolor="#ffffff" rowspan="3" valign="top" width="196"><?php include('lmenu.php'); ?></td>
  25.        <td class="g">&nbsp;</td>
  26.        <td class="pad" bgcolor="#ffffff" rowspan="3" valign="top" width="582">


Co jest źle w tym skrypcie questionmark.gif
p.s wiem że skrypt jest podatny na ataki i jest napisały łopatologicznie ale dopiero się uczę winksmiley.jpg
Fifi209
Jeżeli w jakimś pliku (login.php) używasz sesji to najpierw je wystartuj...
Zawiej
Już to zrobiłem ale dalej nic :/ Sesja nie może zostać wysłana z pliku login.php do gora.php to nic nie wysyła sesja jest pusta.

autostart sesji mam na 0 w php.ini

Mógłby mi ktoś pokazać jakiś przykład??
erix
A masz wszędzie taki sam SID?
Fifi209
Powtarzam w pliku loguj.php nie wystartowałeś sesji.
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.