Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]jak skonfigurowac sesje w php 5.3
Forum PHP.pl > Forum > Przedszkole
mziobro
Witam i od razu przejdę do tematu. Powiem może że ostatnio pisałem coś w php 4. Zacząłem pisać ostatnio skrypt logowania na stronie z wykorzystaniem sesji. Mam zainstalowany webserv 2.1 z php 5.3. Mój problem polega na tym że po włączeniu sesji przez session_start() zmienne sesyjne są zapisywane jednak po skorzystaniu z przycisku w znacznikach <form> strona się przeładowuje i to powoduje efekt jak by zmienne sesyjne były wyczyszczone.

kod pliku logowania:

  1.  
  2.  
  3.  
  4.  
  5.  
  6. require('configuracja.php'); // plik z konfiguracją
  7.  
  8.  
  9. // jesli istnieje $_post['login'] to wtedy przypisanie zmniennych sesyjnych
  10. if (isset($_POST['login'])) {
  11. $_SESSION['login2'] = $_POST['login'];
  12. $_SESSION['password2'] = md5($_POST['password']);
  13. }
  14.  
  15.  
  16.  
  17. if (empty($_SESSION['login2']) || empty($_SESSION['password2']))
  18.  
  19. {
  20. // tutaj html z <form> panelem logowania
  21.  
  22. }
  23.  
  24. else {
  25.  
  26.  
  27. // tutaj kodem html i php strony z zapytaniem do bazy i instrukcją if z warunkiem sprawdzającym zgodność login2 i password2 z wartościami z bazy danych
  28.  
  29.  
  30.  
  31. }
  32.  


powinno działać według mnie a za każdym razem jak użyję przycisku wyślij czy innego elementu formularza w znacznikach <form> efekt jest taki jak by zmienne sesyjne traciły wartości a chyba nie powinno tak być .

Bardzo proszę o pomoc i naprowadzeniu mnie co mam tu źle.

Pozdrawiam





lobopol
no i gdzie tu masz session_start?
hondek
Przepraszam, a gdzie session_start() ?biggrin.gif
mziobro
wrzuciłem session_start(); po ob_start(); i w dalszym ciągu jest to samo sad.gif
CuteOne
Rozumiesz co robi ten kawałek kodu?
  1. if (isset($_POST['login'])) {
  2. $_SESSION['login2'] = $_POST['login'];
  3. $_SESSION['password2'] = md5($_POST['password']);
  4. }
mziobro
Tak, Rozumiem.

Najpierw sprawdza czy istnieje zmienna $_post['login']

Jeśli istnieje to przypisuje zmienne POST do zmiennych sesyjnych. Hmm użycie przycisku w formularzu czy naciśniecie enter w polu tekstowym
<input> objętym w znacznik <form> powoduje przeładowanie strony i przypisanie zmiennym sesyjnym nowej czyli pustej wartości hmm i ładuje się częśc strony z formularzem logowania. hmm zły warunek wstawiłem.


ehhhh, nie wiem co źle robię ale cały czas mam problem z utrzymaniem statusu zalogowanego. Wystarczy że użyję <a href="index.php">Cokolwiek</a> i to powoduje że po przeładowaniu strony jak by zniknęły zmienne sesyjne. Konfigurowałem sesje pod php ale to było dawno jeszcze pod php 4 i pamiętam że zawsze pojawiał się wtedy w adresie strony zaszyfrowany w md5 chyba ciąg znaków dotyczący zmiennych sesyjnych teraz tego nie mam. Może mi ktoś pomóc w skonfigurowaniu php i sesji tak żeby uruchomienie przycisku czy linka i przeładowanie strony nie powodowało utraty zmiennych sesyjnych.
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.