Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Zmienne sesji...
hub3rt
post 27.06.2006, 13:43:18
Post #1





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 19.09.2003
Skąd: Białystok

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
nasty
post 27.06.2006, 13:47:16
Post #2





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


sprawdz czy masz rozpoczeta sessje, jake nie to daj session_start();

Ten post edytował nasty_psycho 27.06.2006, 13:47:26
Go to the top of the page
+Quote Post
dzem
post 4.04.2007, 15:30:36
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 4.04.2007

Ostrzeżenie: (0%)
-----


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

Ten post edytował dzem 4.04.2007, 15:37:32
Go to the top of the page
+Quote Post
rojmarek
post 4.04.2007, 17:29:29
Post #4





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 10.09.2005

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
dzem
post 6.04.2007, 09:17:00
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 4.04.2007

Ostrzeżenie: (0%)
-----


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

Ten post edytował dzem 4.04.2007, 20:16:40
Go to the top of the page
+Quote Post
uli
post 6.04.2007, 10:07:29
Post #6





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

Ostrzeżenie: (0%)
-----


  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


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
dzem
post 8.04.2007, 10:34:54
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 4.04.2007

Ostrzeżenie: (0%)
-----


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?

Ten post edytował dzem 8.04.2007, 10:54:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 22:45