Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]sesja - w includowanym pliku
Forum PHP.pl > Forum > Przedszkole
Larges
Witam, powraca sprawa sesji.

Mam przykładowy skrypcik, który wykorzystuje includowanie plików "naglowek.php" i "stopka.php". - są to wspólne pliki dla wszystkich podstron.

W nagłowek daję następujący kod (żeby go nie powtarzać):

Kod
$zapytanie = mysql_query("SELECT * FROM cms_rejestracja WHERE `login` = '".$_POST['login']."' AND `haslo` =  '".$_POST['haslo']."'");
while($row = mysql_fetch_array($zapytanie)){
if($row['login'] == $_POST['login'] && $row['haslo'] == $_POST['haslo']){
$_SESSION['zalogowany'] = true;
$_SESSION['zalogowany'] = 1;
$_SESSION['login'] = $row['login'];
$imie = $row['imie'];


jak odwołać się do tej sesji w pliku, żeby osobom zarejestrowanym przedstawić bogatszą zawartość strony?

Kod
session_start();
if (isset($_SESSION['zalogowany']) && $_SESSION['zalogowany'] == 1) {................... treść strony }
else {treść dla niezalogowanych}?


To co zlepiłem niebardzo działa...

2 sprawa: mój sposób sprawia, że w plikach jest 2* więcej kodu - dla zalogowanych i niezalogowanych. Jak myślicie - bardzo to opóźni ładowanie się strony?


Proszę o pomoc i z góry za nią dziękuję.
Wodzu
Witam,
Cytat(Larges @ 26.05.2008, 12:25:01 ) *
(...)
Kod
$zapytanie = mysql_query("SELECT * FROM cms_rejestracja WHERE `login` = '".$_POST['login']."' AND `haslo` =  '".$_POST['haslo']."'");
while($row = mysql_fetch_array($zapytanie)){
if($row['login'] == $_POST['login'] && $row['haslo'] == $_POST['haslo']){
$_SESSION['zalogowany'] = true;
$_SESSION['zalogowany'] = 1;
$_SESSION['login'] = $row['login'];
$imie = $row['imie'];


jak odwołać się do tej sesji w pliku, żeby osobom zarejestrowanym przedstawić bogatszą zawartość strony?

Kod
session_start();
if (isset($_SESSION['zalogowany']) && $_SESSION['zalogowany'] == 1) {................... treść strony }
else {treść dla niezalogowanych}?


To co zlepiłem niebardzo działa...

Otóż z tego co widzę za każdym razem pobierasz z bazy login i hasło i porównujesz je z tym, co użytkownik przesłał ($_POST), nawet jak nie przesłał nic. Spróbuj tak:
Kod
session_start();
if (isset($_POST['login']) && isset($_POST['haslo'])) {
   $zapytanie = mysql_query("SELECT * FROM cms_rejestracja WHERE `login` = '".$_POST['login']."' AND `haslo` =  '".$_POST['haslo']."'");
   while($row = mysql_fetch_array($zapytanie)){
   if($row['login'] == $_POST['login'] && $row['haslo'] == $_POST['haslo']){
   $_SESSION['zalogowany'] = 1; // albo true, albo 1!
   $_SESSION['login'] = $row['login'];
   $imie = $row['imie'];
  }

Druga część wygląda OK, więc powinno zadziałać.
Cytat(Larges @ 26.05.2008, 12:25:01 ) *
2 sprawa: mój sposób sprawia, że w plikach jest 2* więcej kodu - dla zalogowanych i niezalogowanych. Jak myślicie - bardzo to opóźni ładowanie się strony?
(...)

Niee... 2 razy tyle kodu masz w pliku PHP, a ładujesz tylko część - albo tę dla zalogowanych, albo tę dla niezalogowanych!
Pozdr. :-)
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.