Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z sesia
InosU31
post
Post #1





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Witam
Korzystajac z TEJ STRONY napisalem cos takiego :

  1. <?php
  2.  
  3.    session_start();
  4.    //session_register('zalogowany');
  5.    
  6. if (!isset($_SESION['zalogowany']))
  7. {
  8.    $_SESION['zalogowany'] = 0;    
  9. }
  10.  
  11.  
  12.    function ShowForm ($komunikat = "")
  13.    {
  14.    echo "$komunikat<br><br>";
  15.    echo "<form action='admin.php' method=post>";
  16.    echo "Login: <input type=text name=login><br>";
  17.    echo "Haslo: <input type=text name=haslo><br>";
  18.    echo "<input type=hidden name=send value='1'>";
  19.    echo "<input type=submit value='Loguj'>";
  20.    echo "</form>";    
  21.    }
  22.  
  23.    
  24.    mysql_connect ("localhost", "root", "") or die("nie mozna sie zalogowac");
  25.    
  26.    mysql_select_db ("rozliczenie_db") or die("nie mozna uzyskac polaczenia z baza");
  27.    
  28.  
  29. if (isset($_POST['login']) && (isset($_POST['haslo'])))
  30.    {
  31.    $_login = $_POST['login'];
  32.    $_passwd = $_POST['haslo'];
  33.    }
  34.    
  35. if ($_SESION['zalogowany'] != 1)
  36. {    
  37.        if (!empty($_login) and (!is_numeric($_login)) && (!empty($_passwd)))
  38.        {
  39.        $sql = mysql_query ("SELECT * FROM users WHERE user_login = '$_login' and user_haslo = '$_passwd'") or die ("nie znaleziono takiego usera");    
  40.        if (mysql_num_rows($sql) != 0)
  41.            {
  42.            echo "ZOSTALES POMYSLNIE ZALOGOWANY<br>";
  43.            $_SESION['zalogowany'] = 1;
  44.            }
  45.            else
  46.            {
  47.            ShowForm("PODALES ZLE DANE!");    
  48.            }
  49.        }
  50.        else if(empty($_login) || (empty($_haslo)))
  51.        {    
  52.        ShowForm("Musza byc wypelnione oba pola !");
  53.        }
  54.    
  55.    else
  56.    {
  57.    ShowForm("Aby wejsc do panelu musisz sie zalogowac...!!!!");
  58.    }
  59. }
  60. else
  61. {
  62.    echo $_SESION['zalogowany'];
  63.    ShowForm("Aby wejsc do panelu musisz sie zalogowac!!");
  64.    echo "Zostales pomyslnie wylogowany ! <a href='admin.pgp?wyloguj=1'>Wyloguj</a>";    
  65. }
  66.  
  67. if ($_SESION['zalogowany'] == 1)
  68. {
  69. //echo "<a href='zalogowany1.php'>wejdz tutaj</a>";    
  70. require_once "zalogowany1.php";
  71. }
  72.  
  73.  
  74.  
  75.  
  76.    mysql_close();
  77.  
  78.  
  79. ?>


nie do konca jest to dobrze napisane no ale dziala.

plik zalogowany1.php :
  1. <?php
  2.    require "check.php";    
  3.    
  4.    
  5.    echo "<center>Podaj liczbe przepracowanych dni w <b>STYCZNIU 2009</b> dla:</center><br><br>";
  6.    
  7. ;
  8. ?>


a to plik check.php:
  1. <?php
  2.  
  3.    session_start ();
  4.    
  5.    if($_SESSION["zalogowany"] != 1)
  6.    {
  7.    echo "nie masz dostępu do tej części witryny. <a href='admin.php'>Zaloguj się</a></body></html>;";
  8.    exit();
  9.    }
  10.    
  11.    
  12.  
  13. ?>


Jesli jestem zalogowany to powinien mi wczytac plik zalogowany1.php i to mi robi ale tez wywala blad . Dlaczego tak sie dzieje?? moze mi ktos to wytlumaczyc?? bo juz nie wiem co robic i nie rozumiem tego ://


to ten blad:

"ZOSTALES POMYSLNIE ZALOGOWANY

Notice: A session had already been started - ignoring session_start() in D:\_www\rozliczenie\luty\check.php on line 4
nie masz dostępu do tej częœci witryny. Zaloguj się;"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Rozpoczęcie sesji tak samo jak wysyłanie nagłówków, cookie musi odbyć się jako pierwsze. Najprawdopodobniej masz plik zakodowany w UTF-8, jeżeli tak usuń z niego BOM
Go to the top of the page
+Quote Post
InosU31
post
Post #3





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Cytat(fifi209 @ 22.03.2009, 22:14:26 ) *
Rozpoczęcie sesji tak samo jak wysyłanie nagłówków, cookie musi odbyć się jako pierwsze. Najprawdopodobniej masz plik zakodowany w UTF-8, jeżeli tak usuń z niego BOM



hmmm ropoczolem sesje na poczatku pliku wiec chyba jest dobrze a jesli chodzi o to zakodowanie to sory ale nie czaje:/

dzieki za zainteresowanie

pozdrawiam
Go to the top of the page
+Quote Post
vsemak
post
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 2
Dołączył: 3.03.2009

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


Zwykłe edytory, posiadające kodowanie UTF-8 (kodowanie znaków w pliku poczytaj na google, popularne iso-8859-2 i windows-1250 oraz UTF-8) dodają na początku pliku niewidoczne znaki, to znaczy, że nawet jak napiszesz

<?php
session_start();
...

i przed <?php nie dasz żadnej spacji i nowej linii to znajdują się tam znaki których nie możesz zobaczyć i które są wysyłane do przeglądarki przed wykonaniem session_start();

Skorzystaj z porady powyżej, zmień kodowanie lub używaj lepszego edytora.
Go to the top of the page
+Quote Post
cojack
post
Post #5





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

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


O czym Wy ludzie gadacie, widzieliście by można było w plikach includowanych czy jakichkolwiek innych startować sesje? Sesje się startuje raz, chyb że później przechodzisz do innego pliku, jeżeli już używasz require lub include innego pliku, to tam sesji już nie rozpoczynasz. Usuń session_start (); w check.php i będzie śmigać.

Ten post edytował cojack 23.03.2009, 00:18:16
Go to the top of the page
+Quote Post
InosU31
post
Post #6





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Cytat(vsemak @ 23.03.2009, 00:12:42 ) *
Zwykłe edytory, posiadające kodowanie UTF-8 (kodowanie znaków w pliku poczytaj na google, popularne iso-8859-2 i windows-1250 oraz UTF-8) dodają na początku pliku niewidoczne znaki, to znaczy, że nawet jak napiszesz

<?php
session_start();
...

i przed <?php nie dasz żadnej spacji i nowej linii to znajdują się tam znaki których nie możesz zobaczyć i które są wysyłane do przeglądarki przed wykonaniem session_start();

Skorzystaj z porady powyżej, zmień kodowanie lub używaj lepszego edytora.


no to teraz juz rozumiem:-) dzieki :-) czyli jak zmienie to kodowanie to zadziala mi ta sesia i po zalogowaniu i zaczytaniu pliku bedzie on wyswietlal mi zawartosc a nie jak dotychczas ze nie jestem zalogowany??

Cytat
O czym Wy ludzie gadacie, widzieliście by można było w plikach includowanych czy jakichkolwiek innych startować sesje? Sesje się startuje raz, chyb że później przechodzisz do innego pliku, jeżeli już używasz require lub include innego pliku, to tam sesji już nie rozpoczynasz. Usuń session_start (); w check.php i będzie śmigać.


to po co w tym kursie do ktorego dalem linka autor usmiescil to session_start() w pliku chceck.php?? mi sie wydawalo ze do wznowienia sesji ale jeszce tego nie analizowalem;-)

pozdrawiam:-)
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
O czym Wy ludzie gadacie, widzieliście by można było w plikach includowanych czy jakichkolwiek innych startować sesje?

Tak, można. Ja widziałem, osobiście stosuję - SOA#1 (Standardowa Odpowiedź Administratora #1: dziwne, u mnie wszystko działa). Pierwszy lepszy framework tak robi. Jedyny warunek - nie może być wcześniej żadnej treści wyplutej do przeglądarki.
Go to the top of the page
+Quote Post
InosU31
post
Post #8





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


kodowanie mam ustawione w ascii i inne pliki mi z sesjami chodza a ten nie chcial :/ No ale mam rozwiazanie < (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif) (IMG:http://forum.php.pl/style_emoticons/default/yahoo.gif)

Panowie zmienna super globalna $_SESSION jest przez dwa "S" w srodku a ja uzywalem z jednym czyli jak sie domyslam zamiast uzywac zmiennej super globalnej uzywalem zwyklej zmmeinnej i pewnie dlatego mi to nie dziallalo bo teraz to nawet funkcja if mi dziala poprawnie - a juz myslalem ze dam sobie z tym spokoj:/

Pozdrawiam:-)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.09.2025 - 03:36