Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Logowanie, sesja i problem :(, komunikat: Cannot send session cookie
Setesh
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


Może ktoś z was mi pomoże - byłbym wdzięczny bo ja nie wiem już co jest źle w tym sad.gif

Mam 3 pliki do zalogowania wyświetlenia strony i wylogowania (Z tej strony podpatrzyłem)

I wszystko było by fajnie gdyby nie to że... jak mam tylko te 3 pliki (login.php, secret.php i logout.php) i nie podłączę je pod inne pliki to wszystko jest ok - podaje usera i hasło i się loguje - wyświetla stronkę i potem klikam aby się wylogować - i tu wszystko ładnie ale...

Chciałem to podłączyć u siebie na stronce (tak dla mnie aby było hasło i login do niektórych stron - np konfiguracja) ale wystąpiły błędy :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\usr\krasnal\www\swebs\index.php:16) in c:\usr\krasnal\www\swebs\root\php\admin.php on line 6Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\usr\krasnal\www\swebs\index.php:16) in c:\usr\krasnal\www\swebs\root\php\admin.php on line 6Warning: Cannot modify header information - headers already sent by (output started at c:\usr\krasnal\www\swebs\index.php:16) in c:\usr\krasnal\www\swebs\root\php\admin.php on line 8" title="Zobacz w manualu PHP" target="_manual

i teraz może trochę kodu i informacji (ja już wszystko przerobiłem i nie mam już sił aby z tym walczyć sad.gif )

Plik login.php :

  1. <?php
  2. if (isset($login) && isset($pass)){
  3. if ($login == "seth" && $pass == "passwd"){
  4. session_register("login");
  5. header("Location: secret.php" . SID);
  6. exit();
  7. } else
  8. $error = "<B>Błędny login lub hasło!</B><BR>";
  9. } else
  10. $error = false;
  11. ?>
  12. <HTML>
  13. <HEAD>
  14. <TITLE>Logowanie</TITLE>
  15. </HEAD>
  16. <BODY>
  17. <?php
  18. echo $error ? $error : "";
  19. ?>
  20. <B>Podaj login i hasło</B>
  21. <FORM method="POST" action="<?php echo $PHP_SELF?>">
  22. Login: <INPUT type="text" name="login"><BR>
  23. Hasło: <INPUT type="password" name="pass"><BR>
  24. <INPUT type="submit" value="Zaloguj się">
  25. </FORM>
  26. </BODY>
  27. </HTML>


plik secret.php :

  1. <?php
  2. if (!isset($_SESSION["login"])){
  3. header("Location: login.php");
  4.  exit();
  5. }
  6. ?>
  7. <HTML>
  8. <HEAD>
  9. <TITLE>Tajne/poufne</TITLE>
  10. </HEAD>
  11. <BODY>
  12. <?php
  13. echo "Witaj " . $_SESSION["login"];
  14. echo " <A href=\"logout.php?\"" . SID . "\">";
  15. echo "[Wyloguj]</A>";
  16. ?>
  17. <BR><B>Ściśle tajne dane.</B>
  18. </BODY>
  19. </HTML>


i ostatni plik : logout.php :

  1. <?php
  2. ?>
  3. <HTML>
  4. <HEAD>
  5. <TITLE>Wylogowanie</TITLE>
  6. </HEAD>
  7. <BODY>
  8. <?php
  9. echo "Użytkownik " . $_SESSION["login"];
  10. echo " został wylogowany.";
  11. ?>
  12. </BODY>
  13. </HTML>


Jak pisałem - te pliki same w sobie działają - człowiek się loguje i wyloguje kiedy chce ale... teraz :

Moja stronka główna (index.php) wykorzystuje includowanie niektórych plików - co też zrobiłem z plikiem login.php - w menu klikamy na link Login (<a href="index.php?page=login") i wtedy na stronie głównej pojawia się okienko logowania - tu jak na razie wszystko ok - wpisujemy login i hasło - klikamy zaloguj i... wywala mi te błędy sad.gif

Pliki trochę zmodyfikowałem aby pasowały do strony :

plik admin.php (odpowiednik pliku login.php :
  1. <?php
  2.  $login2 = "seth";
  3.  $pass2 = "passwd"; 
  4. if (isset($login) && isset($pass)){
  5. if ($login == $login2 && $pass == $pass2){
  6. session_register("login");
  7. header("Location: index.php?page=test" . SID); // aby przeszedł na stronkę z działem np moje programy
  8. exit();
  9. } else
  10. $error = "<B>Błędny login lub hasło!</B><BR>";
  11. } else
  12. $error = false;
  13. ?>
  14. <HTML>
  15. <HEAD>
  16. <TITLE>Logowanie</TITLE>
  17. </HEAD>
  18. <BODY>
  19. <?php
  20. echo $error ? $error : "";
  21. ?>
  22. <B>Podaj login i hasło</B>
  23. <br><?php echo "<br>Login : ".$login2."<br>Passwd : ".$pass2."<br><Br>";?> <- abym zapamiętał hasło
  24. <FORM method="POST" action="index.php?page=admin"> <--aby wrócił na stronę logowania w celu ponownego sprawdzenia (czyli na tą)
  25. Login: <INPUT type="text" name="login"><BR>
  26. Hasło: <INPUT type="password" name="pass"><BR>
  27. <INPUT type="submit" value="Zaloguj się">
  28. </FORM>
  29. </BODY>
  30. </HTML>
  31.  
  32. </center>


plik test.php (odpowiednik secret.php) :
  1. <?php
  2. if (!isset($_SESSION["login"])){
  3. header("Location: index.php?page=admin"); // jak nie zalogowany to stronki nie pokazuj i wróć na stronkę logowania
  4.  exit();
  5. }
  6. ?>
  7.  
  8. <?php
  9. echo "Witaj " . $_SESSION["login"];
  10. echo " <A href=\"logout.php?\"" . SID . "\">";
  11. echo "[Wyloguj]</A>";
  12. ?>
  13. <BR><B>Ściśle tajne dane.</B>


plik logout.php (ten został taki sam smile.gif )

  1. <?php
  2. ?>
  3.  
  4.  
  5. <?php
  6. echo "Użytkownik " . $_SESSION["login"];
  7. echo " został wylogowany.";
  8. ?>


I teraz pytanie czemu to nie działa ?

Jeżeli podam złe hasło lub login - wyświetla poprawnie że złe hasło lub zły login ale jak hasło i login są dobre... nie może się zainicjować session_start(); sadsmiley02.gif

Nie chce od nikogo litości tylko trochę pomocy - siedzę nad tym 2 dzień i naprawdę nie mam już pomysłów a problem pewnie jest banalny sad.gif

Podejrzewam że możliwe że to przez adresy - aby były bez zmiennych typu page=admin czy coś w tym stylu ale potrzebuję tego niestety więc wolałbym nie mieć racji że to właśnie to worriedsmiley.gif

Ktoś pomoże ? sadsmiley02.gif

Ten post edytował Setesh 24.09.2007, 23:02:37


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole

Było z 10000 razy.
Google:
http://www.google.pl/search?hl=pl&q=Ca...+Google&lr=

Pozdrawiam


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
Setesh
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


Poprawione smile.gif (chyba sad.gif )

AD. mojego postu... Wszystko fajnie ale porady z google mi nie pomagają - ani przepisanie pliku na nowo, ani żadne spacje itp rzeczy.
No sorki ale zawsze najpierw szukam w google bo na odpowiedź można czekać nawet tygodniami.
Nadal uważam że problem pewnie jest banalny ale sorki nie znam aż tak php mimo iż się uczę sad.gif

Jak na razie pozostało mi jeszcze jakieś 9800 topików bo z 200 to już przeczytałem wczoraj sad.gif

Ten post edytował Setesh 24.09.2007, 23:01:26


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
maziak
post
Post #4





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

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


session_start() musi byc zawsze na SAMYM poczatku pliku, bez zadnych spacji itp., zanim COKOLWIEK zostanie przeslane do przegladarki. Zastosuj sie do tego a powinno ruszyc. Nie przygladalem sie co prawda zbyt doglebnie kodowi.
Go to the top of the page
+Quote Post
Setesh
post
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


dałem na samym początku pliku index.php i... wywala mi już tylko jeden błąd ale nie wiem dalej czemu sad.gif

Warning: Cannot modify header information - headers already sent by (output started at c:\usr\krasnal\www\swebs\index.php:17) in c:\usr\krasnal\www\swebs\root\php\admin.php on line 8" title="Zobacz w manualu PHP" target="_manual

odnosi się do tego :

  1. <?php
  2. header("Location: index.php?page=test".SID);
  3. ?>
- tylko że ja potrzebuję ten link mieć z parametrem aby zaincludować inna stronkę (test.php sad.gif )

Ten post edytował Setesh 24.09.2007, 23:29:57


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
--Zenek--
post
Post #6





Goście







Ja bym tak wywalił cały ten kod z odnośnikami - bez nich działa bez problemu ale jeżeli na serio potrzebujesz takie linki to może skopiuj plik z szablonem (o ile taki masz) i w pliku admin.php wstaw szablon - wtedy bedziesz miał bez problemu logowanie winksmiley.jpg
Go to the top of the page
+Quote Post
Setesh
post
Post #7





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


Taa.... próbowałem różnych już zmian i nic nie idzie sad.gif został mi jeden błąd i za chiny nie mogę się go pozbyć normalnie jakby jakaś klątwa czy coś sad.gif


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
Go to the top of the page
+Quote Post
crafter
post
Post #8





Grupa: Zarejestrowani
Postów: 72
Pomógł: 2
Dołączył: 14.02.2007

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


tam gdzie masz header() na początku skryptu daj ob_start(); a na końcu ob_flush()
Go to the top of the page
+Quote Post
Setesh
post
Post #9





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 2.10.2006
Skąd: Wrocław

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


Pomogło ale od_start(); miałem wpisane a ob_flush(); nie - pewnie dlatego nie działało smile.gif

małe niedopatrzenie a jednak... smile.gif

BIG THX dla wszystkich za OGROMNĄ pomoc smile.gif


--------------------
Znudził Ci się wygląd twojej v39'ki ? Zmień to! :)

| Google | CodeGear | Swiss Delphi Center (ENG) | digitalmars.com | 4programmers.net | dsdt.info | BinBoy | delphi.cartall.com.pl | CPW.net.pl | cyfbar.republika.pl|
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 Aktualny czas: 20.08.2025 - 08:41