MROverclock Posted January 11, 2008 at 04:06 AM Report Share #159208 Posted January 11, 2008 at 04:06 AM O warning é este: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent O que poderá estar a provocar este warning? Se eu tirar o Session_start() do inicio do ficheiro que se está a queixar, ele deixa de se queixar. Mas o Login deixa de funcionar 😛 Link to comment Share on other sites More sharing options...
pedrotuga Posted January 11, 2008 at 05:02 AM Report Share #159209 Posted January 11, 2008 at 05:02 AM pois. Tens que colocar o session_start antes de enviar o que quer que seja para o output. Link to comment Share on other sites More sharing options...
MROverclock Posted January 11, 2008 at 03:59 PM Author Report Share #159247 Posted January 11, 2008 at 03:59 PM O estranho é que no servidor wamp que eu tenho aqui no pc a página não apresenta qualquer warning nesta parte. Mas online aparece! 😛 O servidor parece que teve alguns problemas e até esteve offline uns dias. Agora voltou e aparece-me este warning Link to comment Share on other sites More sharing options...
pedrotuga Posted January 11, 2008 at 04:07 PM Report Share #159249 Posted January 11, 2008 at 04:07 PM Não é nada estranho, isso depende das definições das mensagens de erros e avisos. Mas a sessão tem que ser utilizada antes de enviar o que quer que seja para o output. Verificações de autenticidade, guardar variaveis de sessão, etc. tudo isso tem que ser feito antes de começares a mostrar a pagina. Link to comment Share on other sites More sharing options...
MROverclock Posted January 11, 2008 at 04:09 PM Author Report Share #159250 Posted January 11, 2008 at 04:09 PM é estranho porque eu julgo que não estou a enviar nada disso ? Link to comment Share on other sites More sharing options...
MROverclock Posted January 11, 2008 at 04:13 PM Author Report Share #159251 Posted January 11, 2008 at 04:13 PM é muito estranho, ja fui confirmar e de facto não tenho qualquer código php antes desse session_start(), tenho apenas HTML, depois faço um include para o ficheiro onde a 1ª linha é o session_start() Link to comment Share on other sites More sharing options...
fil79 Posted January 11, 2008 at 04:32 PM Report Share #159256 Posted January 11, 2008 at 04:32 PM só o facto de teres html pode originar isso, tens de ter o session_start logo no inicio da página: <?php $session_start(); ?> e a partir daqui podes fazer o código à vontade Nota: As mesmas definições aplicam-se para os headers e para os cookies MCITP-MCTS-MCP Link to comment Share on other sites More sharing options...
djthyrax Posted January 11, 2008 at 11:41 PM Report Share #159350 Posted January 11, 2008 at 11:41 PM Nota: As mesmas definições aplicam-se para os headers e para os cookies Este warning relativo às sessões são porque as sessões funcionam à base de cookies que por sua vez são headers 🙂 Ou seja, tu fazeres, header("Set-Cookie: PHPSESSID=blabla"); ou setcookie("PHPSESSID", "blabla"); ou session_start();, o warning vai ser sempre esse do "headers already sent", uma vez que o session_start() vai chamar o setcookie() que vai chamar o header() 😄 Confuso? 🙂 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
fil79 Posted January 12, 2008 at 12:36 AM Report Share #159374 Posted January 12, 2008 at 12:36 AM bastante....🙂 MCITP-MCTS-MCP Link to comment Share on other sites More sharing options...
djthyrax Posted January 12, 2008 at 12:52 AM Report Share #159380 Posted January 12, 2008 at 12:52 AM É o mesmo que teres isto: function session_start(){ setcookie("PHPSESSID", "blabla"); } function setcookie($x, $y){ header("Set-Cookie: {$x}={$y}"); } function header($x){ if($headersEnviados) mandar_o_warning(); else $variavelComOoutputDoScript.=$x."\r\n"; } // defini just in case xD session_start(); Ou seja, chamares header("Set-Cookie: PHPSESSID=blabla"); ou setcookie("PHPSESSID", "blabla"); ou session_start();, a m*rda é a mesma, quem lança o warning é o header() 🙂 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
MROverclock Posted January 12, 2008 at 01:10 AM Author Report Share #159385 Posted January 12, 2008 at 01:10 AM Tirei o session_start() de onde ele estava e meti-o no inicio da página principal ( a pagina onde depois aparecem as outras todas incluidas, consoante os links onde se vai carregando) Desapareceu o warning de facto, mas deixei de conseguir fazer o login na página 🙂 Eu acho que vou mandar um mail para os gajos do alojamento a pedir para "desligarem" as mensagens de erro/warings, porque funciona tudo bem. O unico problema que sempre tive é quando não faço logout e o tempo expira, tenho que fazer o login duas vezes para entrar 😄 Mas isso é outro problema que tenho que investigar mais tarde 😄 Mas de qualquer maneira um grande obrigado a quem tentou ajudar 🙂 Link to comment Share on other sites More sharing options...
djthyrax Posted January 12, 2008 at 01:45 AM Report Share #159388 Posted January 12, 2008 at 01:45 AM Eu acho que vou mandar um mail para os gajos do alojamento a pedir para "desligarem" as mensagens de erro/warings, porque funciona tudo bem. O unico problema que sempre tive é quando não faço logout e o tempo expira, tenho que fazer o login duas vezes para entrar 🙂 Mas isso é outro problema que tenho que investigar mais tarde 🙂 Esse problema advém do warning que recebes uma vez que estás a mandar output para o cliente antes do session_start() Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
MROverclock Posted January 12, 2008 at 09:07 PM Author Report Share #159479 Posted January 12, 2008 at 09:07 PM Bem, não cheguei a mandar mail nenhum, mas recebi um mail a dizer que a migração do servidor estava completa e tal. Entretanto o warning desapareceu! Quando eu voltar a ter tempo, abro um novo tópico para ver se consigo resolver o problema do "duplo" login, mas antes disso ainda vou ler uns tópicos por aí que falam sobre autenticação! Um abraço e obrigado por toda a ajuda! Link to comment Share on other sites More sharing options...
djthyrax Posted January 12, 2008 at 11:02 PM Report Share #159497 Posted January 12, 2008 at 11:02 PM Já te expliquei que o output do warning não tem nada a ver com o estar a funcionar. Eu posso estar a fazer m*rda aos potes mas se fizer error_reporting(); ele não manda nenhum warning ou erro para o cliente. Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
fil79 Posted January 13, 2008 at 03:37 PM Report Share #159598 Posted January 13, 2008 at 03:37 PM É o mesmo que teres isto: function session_start(){ setcookie("PHPSESSID", "blabla"); } function setcookie($x, $y){ header("Set-Cookie: {$x}={$y}"); } function header($x){ if($headersEnviados) mandar_o_warning(); else $variavelComOoutputDoScript.=$x."\r\n"; } // defini just in case xD session_start(); Ou seja, chamares header("Set-Cookie: PHPSESSID=blabla"); ou setcookie("PHPSESSID", "blabla"); ou session_start();, a m*rda é a mesma, quem lança o warning é o header() 🙂 já percebi a explicação...gracias!!!! MCITP-MCTS-MCP Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now