Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z sesia
Forum PHP.pl > Forum > Przedszkole
InosU31
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ę;"
Fifi209
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
InosU31
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
vsemak
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.
cojack
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ć.
InosU31
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:-)
erix
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.
InosU31
kodowanie mam ustawione w ascii i inne pliki mi z sesjami chodza a ten nie chcial :/ No ale mam rozwiazanie < guitar.gif 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:-)
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.