Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Zmienne sesji...
Forum PHP.pl > Forum > Przedszkole
hub3rt
Mam strony:

konto.php
  1. <?php
  2. $login = $_POST['login'];
  3. $pass = $_POST['haslo'];
  4. (...)
  5. $HTTP_SESSION_VARS['login'] = $login;
  6. $HTTP_SESSION_VARS['haslo'] = $pass;
  7. ?>


postac.php
  1. <?php session_start();
  2. $login = $HTTP_SESSION_VARS['login']; 
  3. $pass = $HTTP_SESSION_VARS['haslo'];
  4. (...)
  5. ?>


zmienne sesji definiowalem tez w taki sposob: $_SESSION['nazwa_zmiennej']; ale to nic nie zmienia...
O co chodzi - problem w tym, że zmienne wcale się nie przesyłają na drugą stronę. Mam strone "konto.php" i kiedy linkiem przechodze do postac.php to zmienne sie nie przesylaja :/ Co jest nie tak?! Moze ktos pomoc?

Dzieki z gory
nasty
sprawdz czy masz rozpoczeta sessje, jake nie to daj session_start();
dzem
mam identyczny problem to napisze w tym temacie.
Mój skrypt wygląda tak:

index.php (zaraz na początku strony)
  1. <?
  2. include_once('./source/config.php');
  3. if($login1 == $_POST['login2'] AND $haslo1 == $_POST['haslo2']){
  4. $_SESSION['przysucha'] = $_POST['login2'].' '.$_POST['haslo2'];
  5. }
  6. if($acase == "0"){
  7.  session_destroy('przysucha');
  8. }
  9.  
  10.  
  11. ?>


includowane do index.php:
  1. <?
  2. include_once('./config.php');
  3. $haslo3=$_POST['haslo2'];
  4. $login3=$_POST['login2'];
  5. $sesja = session_id('przysucha');
  6. $ses = $login1.' '.$haslo1;
  7.  
  8. if (!isset($_SESSION['przysucha']) AND $login2 == "" AND $haslo2 == "" AND $acase !== "0") { 
  9. $maininfologin = "Proszę podać login oraz hasło.";
  10. include('./source/admin_login.php'); }
  11.  
  12. elseif(isset($_SESSION['przysucha']) AND $acase !== "0") {
  13. if($_SESSION['przysucha'] == $ses){
  14. /*** $maininfologin = 'zalogowany:<br>ID SESSJI:<br>'.$sesja.'<BR>PODANE:'.$login3.' '.$haslo3.'<BR>TRUE:'.$login1.' '.$haslo1.' <a href="./index.php?id=0&acase=0">Wyloguj</a>'; ***/
  15. include('./source/admin_tablee.php'); }
  16. else{
  17. $maininfologin = 'Wystąpił błąd. Proszę zalogować się ponownie. (włściwie to nie wiem jakim sposobem to się może pokazać:P)';
  18. include('./source/admin_login.php');
  19.  } }
  20. elseif($acase == "0"){
  21. $maininfologin = "Zostałeś wylogowany.";
  22. include('./source/admin_login.php'); }
  23. else{
  24. $maininfologin = "Podane zostało złe hasło lub login.";
  25. include('./source/admin_login.php'); }
  26.  
  27.  
  28. ?>


w tych includach są tylko formularze. sessje w żaden sposób nie przedostają się na nastepny link, wisi mi już czy id bedzie w cookie czy w linku ale troche się nad tym męczyłem i pomysly mi sie koncza, rady, pomysły mile widziane. testowałem na dwóch serwerach i to samo, sesja znika.

pozdrawiam

edit: whoops, nie zauwazyłem daty tego tematu, znalazłem go poprzez dobrze znaną opcje szukaj tongue.gif. oczekuje na odpowiedz smile.gif
rojmarek
Cytat(dzem @ 4.04.2007, 14:30:36 ) *
  1. <?php
  2. if($login1 == $_POST['login2'] AND $haslo1 == $_POST['haslo2']){
  3. ?>

sprawdź może czy ten warunek kiedykolwiek zachodzi... a jak nie, to powstawiaj nawiasy w odpowiednie miejsca...
dzem
ten warunek zachodzi po wysłaniu formularza, poprawnie. wtedy tworzy się sesja, zrobiłem echo jej ID po zalogowaniu. Wnioskuje, że problem jest z odczytem sesji.

Nie jestem pewny tylko co do tego, aczkolwiek nie odrzucam, że błąd jest w innym miejscu:
  1. <?php
  2. if($_SESSION['przysucha'] == $login1.' '.$haslo1){ echo 'strona'; else{ echo'nie autoryzowana próba dostępu'; }
  3. ?>


jeśli ten warunek jest poprawny, to nie wiem gdzie jest problem. sesja tak-jakby nie znika, bo dopiero po włączeniu od nowa przeglądarki jest inne id, nawet jak się loguje kilkakrotnie(bez wyłącznia przeglądarki) id jest to samo. imo problem jest z jej odczytem sesji tyko nie wiem jaki?!

przecież po zalogowaniu skrypt przechodzi przez ten warunek co podałem poprawnie. np. po po nownym klinięciu na link do administracji trzeba się logować od nowa. ?!?!?! proszę o pomoc, nawet jak najmniejszą.


pozdrawiam

tzw. "bump", proszę o pomoc sad.gif
uli
  1. <?php
  2. $haslo3=$_POST['haslo2'];
  3. $login3=$_POST['login2'];
  4. $sesja = session_id('przysucha');
  5. $ses = $login1.' '.$haslo1;
  6. ?>


Oświeć mnie gdzie tu masz $login1 i $haslo1 questionmark.gif
dzem
zmienne te includuje z pliku config.php, starałem się zamieścić jak najmniej niepotrzebnych informacji. mam rozpoczeta sesje. proszę o pomoc sad.gif chyba, że w pliku który includuje musze zamieścić rozpoczęcie sesji również, ale nie wydaje mi się.

Zmieniłem warunki, teraz kod jest bardziej przejrzysty. ale dalej dupa i nie działa :S
  1. <?php
  2. if(isset($_SESSION['przysucha'])){
  3. if($_SESSION['przysucha'] == $ses){
  4. include('./source/admin_tablee.php'); //zalogowany
  5.  
  6. }
  7. else{
  8. $maininfologin = 'Wystąpił błąd proszę zalogować się ponownie.';
  9. session_destroy('przysucha');
  10. include('./source/admin_login.php');
  11. } 
  12. }
  13. else{
  14. if($login1 !== $_POST['login2'] OR $haslo1 !== $_POST['haslo2']){
  15. if($_POST['login2'] == '' AND $_POST['haslo2'] == ''){
  16. $maininfologin = "Proszę podać hasło oraz login.";
  17. include('./source/admin_login.php'); }
  18. else{
  19. $maininfologin = "Podano złe hasło lub login.";
  20. include('./source/admin_login.php'); }
  21. } 
  22. }
  23. ?>

Już wiem gdzie jest problem. Sesja jest zapisana w ciasteczku pod nazwą PHPSESSID~~
tylko jeśli zrobie warunek:
  1. <?php
  2. if(isset($_SESSION['przysucha']) or isset($_COOKIE['PHPSESSID'])){
  3. ?>

To warunek następujący po nim jest bezużyteczny czyli:
  1. <?php
  2. if($_SESSION['przysucha'] == $ses){ //sprawdzanie poprawności hasła
  3. ?>

jak można go zastąpić ten warunek, czy jest możliwość manualnie odczytania id z tego cookie i porównać z zawartością przetrzymywaną po stronie servera?
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.