Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V  < 1 2 3 >  
Reply to this topicStart new topic
> $_SESSION
nospor
post 23.05.2005, 09:34:25
Post #21





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Po raz drugi: używaj bbcode.

POzatym co ztergo ze ty robosz !isset skoro resztę i tak wywalasz poza warunkiem. powinno raczej byc tak:
  1. <?php
  2. if (!isset($_SESSION['user']))
  3. header (&#092;"Location : logowanie.html\");
  4. else
  5. {
  6.  print &#092;"udało się\";
  7.  echo '<CENTER>Zalogowany' .$_SESSION['user']. '</CENTER>';
  8. }
  9. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 09:51:06
Post #22





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Niewiele to zmienia, bo dla mnie ważny jest jeden warunek. Proste, jeżeli coś nie jest spełnione to wykonaj (w tym przypadku wyjdź do innego pliku) Więc nie ma szans, aby przeszedł dalej w tym kodzie. Jeżeli warunek spełniony, to tak jakby nie był sprawdzany. Poza tym jeżeli zrobiłem tak jak mówisz (else i w klamry) to nie wywala żadnego błędu. Po prostu nie spełnia to żadnego warunku.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 09:54:47
Post #23





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Poza tym jeżeli zrobiłem tak jak mówisz (else i w klamry) to nie wywala żadnego błędu. Po prostu nie spełnia to żadnego warunku.
A wlasnie ze spelnia: a konkretnie !isset i wkoncu masz ok main.php bo się nie wykrzacza.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 10:02:30
Post #24





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Nie spełnia, ponieważ nie wykonuje kodu po if, ani nie wykonuje kodu po else. Po prostu omija te linie i idzie dalej
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 10:09:00
Post #25





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jeżeli masz if i else do if'a do któryś z tych kawalkow będzie zawsze wykonany. Daj se echo przed header (tylko w klamry weź) i zobaczysz ze wchodzi do tego if'a


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 10:41:07
Post #26





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Zgadza się. Dlaczego więc po pierwsze, jeżeli już to nie wykonuje instrukcji header, a po drugie dlaczego stwierdza, że sesja nie istnieje?
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 10:45:00
Post #27





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




daj exit; po header

A do main.php przekierowuje cie automatycznie po zalogowaniu?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 10:54:42
Post #28





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Jeżeli nazwa użytkownika i hasło zgadzają się to tak. Wpisanie exit; nie rajcuje, ponieważ potrzebuję powrotu do strony logowanie.html, a nie zatrzymania kodu.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 10:56:54
Post #29





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no i tak bedzie bedzie. Wysle naglowek poprzez header, a exit spowoduje, zeby w tym pliku nic wiecej sie wykonalo co moze nabruździć. jak nie wierzysz to se manuala przeczytaj


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 11:07:17
Post #30





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


No dobrze. Więc jak zrobić, żeby w przypadku nieistnienia sesji następowało przekierowanie. A tak w ogóle, to dlaczego ta sesja nie jest przekazywana?
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 11:09:58
Post #31





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




chyba napisalem. daj exit;
  1. <?php
  2. if (!isset($_SESSION['user']))
  3. {
  4. header (&#092;"Location : logowanie.html\");
  5. exit;//to powinno pomóc :)
  6. }
  7. else
  8. {
  9.  print &#092;"udało się\";
  10.  echo '<CENTER>Zalogowany' .$_SESSION['user']. '</CENTER>';
  11. }
  12. ?>


a czemu nie przekazywana? a session ID (SID) przekazujesz?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 11:15:48
Post #32





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Niestety, exit; nie pomaga. Nie następuje przekierowanie, lecz zatrzymanie w tym punkcie na tej stronie. Sesja jest przekazywana, ale tutaj już jest zgubiona. Nie wiem dlaczego.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 11:30:32
Post #33





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




co do header to masz blad. dwuktopek dales za daleko. powinno byc:
header ("Location: logowanie.html");


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 11:41:47
Post #34





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


To prawda. Dzięki, jeden błąd wykryty. Teraz pozostał problem z przekazaniem SID do następnej strony. Co zrobić?
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 11:43:28
Post #35





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale w jaki sposób ty ten sid przekazujesz? przez url? nie zauewazylem abys gdzies mial cos takiego ...?SID=...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 11:46:21
Post #36





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Proszę więc o radę jak to przekazać, żeby działało. Jak wpisałem tak jak pytałeś, to SID nie zgadzał się z aktualnym na nowej stronie. Podaj fragment kodu, jak to przekazać.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 11:58:47
Post #37





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a masz w php.ini taki wpis: session.use_cookies = 1. Jak nie to ustaw i miej wlaczone ciastka (tylko serwer zrestartuj po zmianach). POwinnno dzialac. testowalem teraz u siebie i dziala


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 12:42:51
Post #38





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Wszystko jest tak jak piszes, jedynie nie działa. Dlaczego?
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 12:47:15
Post #39





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No dobra. A spróbuj tak:
plik loguj.php:
  1. <?php
  2.  
  3. session_name('sid');
  4. $name=$_POST['LOGIN'];
  5. $pass=$_POST['PASS'];
  6. if ($name==&#092;"\") $name=\"zzzz\";
  7. $nazwa=$name.&#092;"t\".$pass.\"t\";
  8. $file=fread(fopen(&#092;"users.dat\", \"rb\"),999);
  9. if (!$file)
  10. {
  11. echo 'brak pliku';
  12. }
  13. if (strstr($file, $nazwa))
  14. {
  15. if ($name==&#092;"Administrat\")
  16. $name=$name.&#092;"super\";
  17. $_SESSION['user']=$name;
  18. header ('Location: main.php?sid='.session_id());
  19. }
  20. else
  21. {
  22. print &#092;"<B><CENTER>Logowanie nie powiodło się</CENTER></B><BR><BR><BR>\";
  23. print &#092;"<A HREF=logowanie.html>POWRÓT</A>\";
  24. }
  25.  
  26. ?>


plik main.php:
  1. <?php
  2.  
  3. session_name('sid');
  4. if (!isset($_SESSION['user']))
  5. {
  6. header (&#092;"Location: logowanie.html\");
  7. exit;//to powinno pomóc :)
  8. }
  9. else
  10. {
  11.  print &#092;"udało się\";
  12.  echo '<CENTER>Zalogowany' .$_SESSION['user']. '</CENTER>';
  13. }
  14.  
  15. ?>


Wklej do obu plików dokladnie jak napisalem. Wejdź na strone logowania i się zaloguj. Jak to nie pomoże to wymiekam sad.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 13:24:12
Post #40





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Wielkie dzięki. To działa.
Go to the top of the page
+Quote Post

3 Stron V  < 1 2 3 >
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: 15.08.2025 - 01:53