Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sesion start już obecna...
Forum PHP.pl > Forum > Przedszkole
ReBeLs513
  1. <?php
  2. if(!isSet($_SESSION['user'])){
  3. $_SESSION['komunikat'] = "<font size=\"2\">Aby zobaczyć całą stronę, zaloguj się</font>";
  4. include $_SERVER ['DOCUMENT_ROOT']."/profile/form.php";
  5.  
  6. }
  7. else
  8. {
  9. ?>
  10. <p align="left">Chroniona część</p>
  11. <?php
  12. }
  13. ?>
  14.  
  15. Pozostała część strony


W menu bocznym również zapisałem ten kod, jednak teraz gdy wejdę na stronę, gdzie wymagane jest hasło, jest napisane, że sesja już jest...
Jak zrobić tak, aby w menu bocznym (przez include) skrypt wykrywal użytkownika i goscia ipokazywal odp. opcje? bo 2 x sesja być nie może...

kill15
sesje rozpocząć na początku kodu i zrobić odpowiednie warunki. Nie rozumiem w czym tu problem...
Nie lepiej do zmiennej przypisać że jesteś niezalogowany i jak jesteś niezalogowany to wyświetlić
ReBeLs513
Ale chodzi o to, że menu jest includowane a w nim jest kod, że jeśli zalogowany to to a jak nie to tamto. Ale... W dokumencie chronionym też musi być ten kod i tu zaczyna się problem, bo wtedy są wykryte dwie sesje na stronie
mlawnik
  1. <?php
  2. session_start();// start sesji
  3.  
  4. $_SESSION['sesja_ustawiona'] = 'TRUE';
  5.  
  6. // drugi plik
  7. If(!$_SESSION['sesja_ustawiona']){// jeżeji sesja nieustawiona
  8. }
  9. ?>


Simple?
modern-web
Radzę poczytać jeszcze o bezpieczeństwie sesji. Zbyt często spotykam się z olewaniem tak istotnych spraw przez programistów aplikacji webowych.
Dodałbym czas aktywności sesji, funkcję session_regenerate_id oraz aktywowałbym nie jedną, a dwie sesje `na wszelki wypadek`, gdzie jedna z nich zawierałaby ip użytkownika.
ReBeLs513
eh...;//

Jeśli wpisuję taki kod PHP
  1. <?php
  2. if(!isSet($_SESSION['inolvidables'])){
  3. $_SESSION['komunikat'] = "<font size=\"2\">Dostęp tylko dla członków zespołu</font>";
  4. include $_SERVER ['DOCUMENT_ROOT']."/profile/3/logowanie.php";
  5. exit();
  6. }
  7. ?>
to strona pięknie się ładuje ale...

Jeśli wpisuję taki kod
  1. <?php
  2. if(!isSet($_SESSION['inolvidables'])){
  3. $_SESSION['komunikat'] = "<font size=\"2\">Dostęp tylko dla zespołu</font>";
  4. include $_SERVER ['DOCUMENT_ROOT']."/profile/3/form.php";
  5. }
  6. else
  7. {
  8. ?>
  9. <p>Jakaś treść tylko dla zalogowanych</p>
  10. <?php
  11. }
  12. ?>
(chroni tylko wybraną część tekstu) to wyskakuje to:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/Rebel/domains/elrebel.345.pl/public_html/HTML/1.htm:8) in /home/Rebel/domains/elrebel.345.pl/public_html/grupo/inolvidables.php on line 96

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/Rebel/domains/elrebel.345.pl/public_html/HTML/1.htm:8) in /home/Rebel/domains/elrebel.345.pl/public_html/grupo/inolvidables.php on line 96

Ktoś doradzi?questionmark.gif P.S. Na localhost tego błędu w ogóle nie ma:o A... i jak usuwam plik "/home/Rebel/domains/elrebel.345.pl/public_html/HTML/1.htm:8" to w to miejsce widnieje napis: "/home/Rebel/domains/elrebel.345.pl/public_html/grupo/inolvidables.php:1"...
Spawnm
O "headers already sent" masz pełno informacji na forum i w sieci, poszukaj.
stckydude
Cytat(modern-web @ 26.04.2011, 18:54:32 ) *
Radzę poczytać jeszcze o bezpieczeństwie sesji. Zbyt często spotykam się z olewaniem tak istotnych spraw przez programistów aplikacji webowych.
Dodałbym czas aktywności sesji, funkcję session_regenerate_id oraz aktywowałbym nie jedną, a dwie sesje `na wszelki wypadek`, gdzie jedna z nich zawierałaby ip użytkownika.

a jak zmieniac czas aktywnosci sesji?

i jak dwie sesje naraz wlaczyc?
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.