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
vsemak
post
Post #2





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
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(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

Posty w temacie


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: 10.10.2025 - 03:56