TMD Postado Maio 22, 2007 Denunciar Share Postado Maio 22, 2007 ai galeraeu antes de postar fiz ai uma pesquisa pelo forum e eu encontrei um tópico que diz que o if se faz desta maneira:if (alguma coisa) { faz alguma coisa }elseif (outra coisa) { faz outra coisa }else { faz a ultima coisa }até aqui tudo bem...mas em meu caso é um pouco diferente... // Caso o usuário tenha digitado um login válido, o número de linhas será 1..if($total) { // Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão $dados = @mysql_fetch_array($result_id); // Agora verifica a senha if(!strcmp($password, $dados["password"])) { // TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário $_SESSION["id_utilizador"] = $dados["id"]; $_SESSION["nome_utilizador"] = stripslashes($dados["nome"]); $_SESSION["nivel"] = $dados["nivel"]; $session = ''. $_SESSION['nivel'] .''; elseif ($session == '3') { //O PROBLEMA É NESTE ELSEIF header("Location: admin/sumario.php"); } else { header("Location: principal.php"); // ATÉ AQUI } exit; } // Senha inválida else { echo "Password Incorrecta!"; exit; } }// Login inválidoelse { echo "O login fornecido por você é inexistente!"; exit;}De resto todo o código funciona direito até porque ele dantes estava assim.....if($total) { // Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão $dados = @mysql_fetch_array($result_id); // Agora verifica a senha if(!strcmp($password, $dados["password"])) { // TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário $_SESSION["id_utilizador"] = $dados["id"]; $_SESSION["nome_utilizador"] = stripslashes($dados["nome"]); $_SESSION["nivel"] = $dados["nivel"]; header("Location: principal.php"); exit; } // Senha inválida else { echo "Password Incorrecta!"; exit; } }// Login inválidoelse { echo "O login fornecido por você é inexistente!"; exit;}e funcionava....mas neste caso não verifica o nivel do usuárioPeço desculpa por não colocar o código em CODEBOX mas tá dando erro :o vlw []'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Maio 22, 2007 Denunciar Share Postado Maio 22, 2007 $_SESSION["nivel"] = $dados["nivel"];$session = ''. $_SESSION['nivel'] .'';elseif ($session == '3') { //O PROBLEMA É NESTE ELSEIFVoce não pode usar uma sessão na mesma tela que cria, a sessão só vai ser bálida em outro scriptneste caso ai pode usar :($dados["nivel"] == '3') Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 TMD Postado Maio 22, 2007 Autor Denunciar Share Postado Maio 22, 2007 voce tinha razao ai no código...estava errado mas ele continua dando erro no mesmo sitio...devo ter o elseif mal implementado :SParse error: syntax error, unexpected T_ELSEIF in C:\Programas\.....\verificar.php on line 31if(!strcmp($password, $dados["password"])) { // TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário $_SESSION["id_utilizador"] = $dados["id"]; $_SESSION["nome_utilizador"] = stripslashes($dados["nome"]); $_SESSION["nivel"] = $dados["nivel"]; elseif ($dados["nivel"] == '3') { <<-- aqui o erro line 31 :( :( header("Location: admin/sumario.php"); } else { header("Location: principal.php"); } exit; } // Senha inválida else { echo "Password Incorrecta!"; exit; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Maio 22, 2007 Denunciar Share Postado Maio 22, 2007 voce tem dois else depois deste elseif o problema é nelesestas estruturas confundem mesmoeu sempre uso o switch no lugar de if/else/elseif da menos margem de erros :)da uma olhada:http://www.php.net/switch Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest DarKesT Postado Maio 22, 2007 Denunciar Share Postado Maio 22, 2007 Tem mais script aí, não tem? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
TMD
ai galera
eu antes de postar fiz ai uma pesquisa pelo forum e eu encontrei um tópico que diz que o if se faz desta maneira:
if (alguma coisa) {
faz alguma coisa }
elseif (outra coisa) {
faz outra coisa }
else { faz a ultima coisa }
até aqui tudo bem...mas em meu caso é um pouco diferente...
// Caso o usuário tenha digitado um login válido, o número de linhas será 1..
if($total) {
// Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão
$dados = @mysql_fetch_array($result_id);
// Agora verifica a senha
if(!strcmp($password, $dados["password"]))
{
// TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário
$_SESSION["id_utilizador"] = $dados["id"];
$_SESSION["nome_utilizador"] = stripslashes($dados["nome"]);
$_SESSION["nivel"] = $dados["nivel"];
$session = ''. $_SESSION['nivel'] .'';
elseif ($session == '3') { //O PROBLEMA É NESTE ELSEIF
header("Location: admin/sumario.php"); }
else {
header("Location: principal.php"); // ATÉ AQUI
}
exit; }
// Senha inválida
else {
echo "Password Incorrecta!";
exit;
}
}
// Login inválido
else {
echo "O login fornecido por você é inexistente!";
exit;
}
De resto todo o código funciona direito até porque ele dantes estava assim.....
if($total) {
// Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão
$dados = @mysql_fetch_array($result_id);
// Agora verifica a senha
if(!strcmp($password, $dados["password"]))
{
// TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário
$_SESSION["id_utilizador"] = $dados["id"];
$_SESSION["nome_utilizador"] = stripslashes($dados["nome"]);
$_SESSION["nivel"] = $dados["nivel"];
header("Location: principal.php");
exit; }
// Senha inválida
else {
echo "Password Incorrecta!";
exit;
}
}
// Login inválido
else {
echo "O login fornecido por você é inexistente!";
exit;
}
e funcionava....mas neste caso não verifica o nivel do usuário
Peço desculpa por não colocar o código em CODEBOX mas tá dando erro :o
vlw []'s
Link para o comentário
Compartilhar em outros sites
4 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.