Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][mysl] wygaśnięcie sesji po kliknięciu Wstecz w IE
Forum PHP.pl > Forum > Przedszkole
majorsk8
Witam,
Mam 3 strony, gdzie
1. index.html -> logowanie do strony, login i haslo metodą POST
2. index2.php -> rozpoczęcie sesji session_start(), odczytanie wartości login i haslo z index.html, zapisanie ich do zmiennej sesji, nawiązanie połączenia z bazą
3. edit.php -> odczytanie zmiennych sesji, ponowne połączenie z bazą (nie wiem czy dobrze..)

Wszystko jest ok w Mozilli, sesja jest aktywna ale problem tkwi w IE. Po zalogowaniu przechodze do index2.php i wyświetla mi sie lista zamówień, klikam na zamówienie i przechodze do edit.php, następnie jak klikam Wstecz w IE aby przejść znowu do listy zamówień to wyskakuje błąd strony.
Nie wiem czy to pomoże ale załączam kod:
INDEX2.PHP
Kod
<?php
if (($_POST['login']!=NULL) and ($_POST['haslo'])!=NULL)
  {
    session_start();
    $login=(trim($_POST['login']));
    $haslo=(trim($_POST['haslo']));
    
    $_SESSION['login']= $_POST['login'];
    $_SESSION['haslo']= $_POST['haslo'];

    $connect = mysql_connect("", $login, $haslo)
    or die('Niepoprawny login lub hasło. Proszę poprawnie wpisać login i hasło. <a href="index.html">Powrót</a> na strone logowania.');
    mysql_set_charset('latin2',$connect);
    $_SESSION['connect']= $connect;
    
    $db = mysql_select_db('sezam',$connect)
    or die('Nie udało się połączyć z bazą danych. Proszę skontaktować się z administratorem.');
    $_SESSION['db']= $db;

    echo '<html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
          </head>
          </html>';

    include 'userinfo.php';  //info usera
    include 'moduly.php';  //tutaj wyciąga liste zamówień z bazy i po kliknięciu na dane zamówienie przechodzi do edit.php

  }

else
{
    echo "Nie wpisano loginu lub hasła. Proszę wrocić na <a href=index.html>stronę logowania</a>.";
}
?>


EDIT.PHP
Kod
<?php
session_start();
$connect = mysql_connect("", $_SESSION['login'], $_SESSION['haslo']);
$db = mysql_select_db('sezam');
if(isset($_POST['edytuj'])) {
echo "edycja zamowienia";
}
else echo "jakiś error";
?>
Olimpia_ona
Spróbuj w pliku index2.php funkcję session_start(); umieścić na samym początku tego pliku a nie w warunku, który sprawdza, czy istnieją zmienne POST.
majorsk8
Nic nie daje. Może problem tkwi w samej przeglądarce?
Olimpia_ona
Cytat(majorsk8 @ 6.11.2008, 11:09:06 ) *
Nic nie daje. Może problem tkwi w samej przeglądarce?


Ja bym tu nie zrzucała od razu winy na przeglądarkę. Generalnie masz zamieszany kod.

1. $_SESSION['login']= $_POST['login']; zakładasz już w chwili, gdy ktoś poda login i hasło, a powinienieś moim zdaniem wstrzymać się z tym do chwili, gdy sprawdzisz, że ten login i hasło występuje w bazie np.
  1. <?php
  2. if ($_POST['login'] and $_POST['haslo'])
  3. {
  4.       $sql = "SELECT * FROM klienci WHERE login = '$_POST[login]';";
  5.                $wynik = mysql_query ($sql) or die ("Błąd w zapytaniu");
  6.                $rekord = mysql_fetch_assoc($wynik);
  7.                $haslo=$rekord[haslo];
  8.    if (($haslo==(MD5($_POST[haslo]))) and ($_POST[haslo]<>'')) //sprawdzam, czy podane hasło jest takie samo jak hasło w bazie dla danego loginu
  9.                {
  10.               $_SESSION["zmiennalog"]=$_POST[login];
  11.                                                $ok=0;
  12.                                                ...
  13.                }
  14.                ...
  15. }
  16.  
  17. if (!$_SESSION["zmiennalog"])
  18. {
  19.  $ok=1; //print "Nie zalogowany";
  20. }
  21. else
  22. {
  23.  $ok=0; //print "Zalogowany";
  24. }
  25. ?>
majorsk8
Nie o to chodziło ale tak czy siak dzięki za podpowiedź. Pomoże mi ktoś z ta SESJĄ?
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.