quinhosp Postado Janeiro 26, 2010 Denunciar Share Postado Janeiro 26, 2010 gente não consigo arrumar solucionar o erro que aparece **** Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by ****será que alguém pode me ajudar?<?php//lista de usuários e suas respectivas senhas$usuarios = array( 'silvio' => 'adm', 'helena' => 'adm2',);//verificação de login e senhaif (isset($_POST['login']) && isset($_POST['senha'])) { if (array_key_exists($_POST['login'], $usuarios)) { if ($usuarios[$_POST['login']] == $_POST['senha']) { session_start(); $_SESSION['s_login'] = $_POST['login']; header('location: sistema/form_noticias.php'); } else { $erro = 'Senha incorreta.'; } } else { $erro = 'Login inválido.'; }}?> arquivo que vai para as páginas restritas<?//verifica se o usuário está logadosession_start();if (!isset($_SESSION['s_login'])) { header('location: login.php'); die; }?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ursolouco Postado Janeiro 26, 2010 Denunciar Share Postado Janeiro 26, 2010 Salve,Você esta iniciando a session após o envio de alguma saida (informação) ao browser do seu usuário.Experimente iniciar a session antes do envio do cookie em seu script.abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quinhosp Postado Janeiro 26, 2010 Autor Denunciar Share Postado Janeiro 26, 2010 como assim?onde no código mostra que estou enviando essas informações??como altero o código? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Janeiro 26, 2010 Denunciar Share Postado Janeiro 26, 2010 Tente colocoar logo após <?faça assim:<?session_start();//e remova ele do meio do codigoonde esta:session_start();$_SESSION['s_login'] = $_POST['login'];Fica :$_SESSION['s_login'] = $_POST['login']; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quinhosp Postado Janeiro 27, 2010 Autor Denunciar Share Postado Janeiro 27, 2010 Então Jissa, eu mudei como você me falou porém continua o erroWarning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/www/teste/login.php:7) in /home/www/teste/login.php on line 14ainda não deu certo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Janeiro 27, 2010 Denunciar Share Postado Janeiro 27, 2010 olhe o inicio de seu login.php veja se tem alguma coisa que esteja escrevendo antes de colocar o session_startSempre coloque session_start antes de qualquer coisa, não pode escrever nada antes deleinicie sempre com<?session_start();//... restante do script?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quinhosp Postado Janeiro 27, 2010 Autor Denunciar Share Postado Janeiro 27, 2010 então...depois do </head> tem o <?phpsession_start();?>ai vem o resto do código, olha só<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="description" content="Teste" /><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><meta name="language" content="pt-br" /><meta name="autor" content="Teste" /><link rel="stylesheet" type="text/css" href="css.css" media="all" /><title>Teste</title></head><body><?phpsession_start();?><div id="centro1"><?php//lista de usuários e suas respectivas senhas$usuarios = array( 'helena' => 'adm', 'silvio' => 'adm',);//verificação de login e senhaif (isset($_POST['login']) && isset($_POST['senha'])) { if (array_key_exists($_POST['login'], $usuarios)) { if ($usuarios[$_POST['login']] == $_POST['senha']) { $_SESSION['s_login'] = $_POST['login']; header('location: sistema/form_noticias.php'); } else { $erro = 'Senha incorreta.'; } } else { $erro = 'Login inválido.'; }}?> <form name"login" id="login" method="post"><fieldset id="login"><legend> Logar ao Sistema </legend><div> <label for="nome"> Usuário:</label> <label for="email">Senha:</label></div> <div> <input type="text" name="login" id="login" /> <input type="password" name="senha" id="senha" /> </div><input type="submit" value="Enviar" id="enviar" /></fieldset><? if (isset($erro)) { echo $erro; } ?></form></div></body></html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Janeiro 27, 2010 Denunciar Share Postado Janeiro 27, 2010 tem dois session_start remova o do meio<body><?phpsession_start(); <--- tire este daqui, deixe somente o do inicio?><div id="centro1"> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quinhosp Postado Janeiro 27, 2010 Autor Denunciar Share Postado Janeiro 27, 2010 aora apareceu este erroWarning: Cannot modify header information - headers already sent by (output started at /home/www/teste/login.php:10) in /home/www/teste/login.php on line 36 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quinhosp Postado Janeiro 27, 2010 Autor Denunciar Share Postado Janeiro 27, 2010 jissa, obrigado!Agora funcionou.....coloquei assim<?phpob_start(); session_start();?> e depois resto do código.muito grato. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
quinhosp
gente não consigo arrumar solucionar o erro que aparece
**** Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by ****
será que alguém pode me ajudar?
<?php
//lista de usuários e suas respectivas senhas
$usuarios = array(
'silvio' => 'adm',
'helena' => 'adm2',
);
//verificação de login e senha
if (isset($_POST['login']) && isset($_POST['senha']))
{
if (array_key_exists($_POST['login'], $usuarios))
{
if ($usuarios[$_POST['login']] == $_POST['senha'])
{
session_start();
$_SESSION['s_login'] = $_POST['login'];
header('location: sistema/form_noticias.php');
}
else
{
$erro = 'Senha incorreta.';
}
}
else
{
$erro = 'Login inválido.';
}
}
?>
arquivo que vai para as páginas restritas
<?
//verifica se o usuário está logado
session_start();
if (!isset($_SESSION['s_login'])) { header('location: login.php'); die; }
?>
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.