[ mrki @ 16.12.2003. 09:49 ] @
Warning: Cannot send session cache limiter - headers already sent (output started at /usr/local/httpd/htdocs/simin/addentry.php:3) in /usr/local/httpd/htdocs/simin/addentry.php on line 4

Pokrecem script na localnom serveru (apache, mysql).

Script radi kako treba samo se ovo upozorenje pojavljuje kad obnovim session_start()
recimo, editovao sam stranu pa hocu da se ulogujem:
Code:

...
            if($result2) 
                {
                  session_start();
                  $_SESSION['username']=$username;
                    print "<table width='80%' align='center' cellpadding='5'                                           
                                    c ellspacing='1'border='1'><rt><td align='center'>";
                    print "<font>Uspesno ste se prijavili na sistem, vase korisnicko ime 
                                    je:</font>  ";
                echo $_SESSION['username'];
                    print "  <A href='index.php'>Home</a>";
                    print "</td></tr></table>";      
                             }
...
  


Rezultat:
Code:
 
   Warning: Cannot send session cache limiter - headers already sent (output started at  
/usr/local/httpd/htdocs/simin/addentry.php:3) in /usr/local/httpd/htdocs/simin/addentry.php on line 4


Uspesno ste se prijavili na sistem, vase korisnicko ime je: djole


[ broker @ 16.12.2003. 10:00 ] @
Proveri kod. Imas negde neku komandu koja ispise u dokument nesto pre nego sto bude poslato zaglavlje dokumenta a sesija mora d abude upisan u zaglavlje.

Potrazi bilo kakav echo ili print koji se izvrsi pre nego sto sesija bude kreirana.

U tvom slucaju cini mi se da si ti kod za kreiranje sesiaj tavio u sred HTML strane. To ne moze. Moras taj kod staviti na sam pocetak dokumenta, cak i pre <HTML> oznake i dobro proveri da nemas neki prazan red ispred php bloka.
[ BATE @ 16.12.2003. 10:12 ] @
U php.ini setuje session_autostart da bude ukljucen i ovo ti se vise nikada u zivotu nece dogoditi :)
[ NetworkAdmin @ 16.12.2003. 10:18 ] @
pazi ovo:
Code:
<?

$foo=23456;

#
# WARNING :
# Please ensure that you have no whitespaces / empty lines below this message.
# Adding a whitespace or an empty line below this line will cause a PHP error.
#
?>



Ako bi gornji kod bio u fajlu poslije kojeg se salje header bi napravio error jer ima prazna linija iza ?>
[ ddz @ 16.12.2003. 12:45 ] @
Ma samo stavi u php.ini Output_buffering na On i neces vise morati da razmisljas kad saljes koji heder.
[ mrki @ 17.12.2003. 00:12 ] @
Svaka cast, brzi ste od munje

Ovako:

Citat:

U tvom slucaju cini mi se da si ti kod za kreiranje sesiaj tavio u sred HTML strane.
To ne moze. Moras taj kod staviti na sam pocetak dokumenta, cak i pre <HTML> oznake i dobro
proveri da nemas neki prazan red ispred php bloka.


Pa i stavio sam je na pocetak:
Code:

<?
session_start(); 
include "connect.php";
include "header.php"; 
print "<br><br>"; 
...
?>


Koliko sam ja iz php manual-a razumeo session_start() sluzi za kreiranje nove sesije i obnavljanje stare.
Ustvari ovo je jedna login.php scripta u kojoj je dalje:
Code:

...
if($result2) //ako je korisnik registrovan izvrsi iskaz 
                { 
                 session_start(); 
                $_SESSION['username']=$username; 
                        print "<table width='80%' align='center' cellpadding='5' 
                                cellspacing='1'border='1'><rt><td align='center'>"; 
                                print "<font>Uspesno ste se prijavili na sistem, vase korisnicko ime 
je:</font>  "; 
                                 echo $_SESSION['username']; 
                      print "  <A href='index.php'>Home</a>"; 
                     print "</td></tr></table>";       
                }
...


Proverava se dali je korisnik registrovan pa ako jeste kreiraj novu sesiju. Mozda sam trebao da ispred ove session_start(); stavim session_destroy() da ubijem trenutnu sesiju. ? A mozda to i nije dobra varijanta?

Citat:

U php.ini setuje session_autostart da bude ukljucen i ovo ti se vise nikada u zivotu nece
dogoditi


Ovo mi je pomoglo, pretpostavlajo sam da se nesto moze uraditi pomocu php.ini. Mada
mozda na ovaj nacin samo mogu da pobegnem od problema a nikako da ga shvatim odnosno resim.

to -> NetworkAdmin
Citat:

<?

$foo=23456;

/*
#
# WARNING :
# Please ensure that you have no whitespaces / empty lines below this message.
# Adding a whitespace or an empty line below this line will cause a PHP error.
#
ja ipak koristim c++ stil za komentare pa nisam iamo problema*/
?>





[ NetworkAdmin @ 17.12.2003. 08:45 ] @
Cuj druze na serveru koji zakupis ili produk prodas svome kupcu tesko da ces imati dostup do php.ini fajla.

Output buffering naravno da ce biti off jer tako i treba.

Ja ni u C++ ne koristim /* ovakav stil komentara */ zovi me paranoicnim ako hoces ali // tako ti je to drug moj.

Smisao poruke one gore je da iza ?>_ ne snije biti white space new line niti bilo sta.

Isto se odnosi na <? ispred ne smije biti nista
_
<?
session_start();