Casty 0 Denunciar post Postado Fevereiro 18, 2011 Faz muuuuuuuito tempo que não mexo fazendo código mesmo, e estou apanhando. É um sistema de login, onde o administrador já estaria pré-determinado no código (só eu que iria cuidar), enquanto os usuários "meros mortais" estaria todos registrados num BD MySQL. Como teria essa diferenciação, eu usei o if para caso fosse um login X e uma senha Y escolhe um dos caminhos (se fosse a salva do administrador, ir para a página do administrador, se fosse de usuário comum fosse para a página de usuário comum). Mas ele tá dando erro bem na linha do if... Agora tô confusa... Segue o código: <?php include("connect.php") if (($login=="admin") and ($senha=="****")) { session_start(); $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; header("Location:admin.php"); } else { $login = $_POST['login']; $senha = $_POST['senha']; /* Verifica se existe usuario, o segredo ta aqui quando ele procupa uma linha q contenha o login e a senha digitada */ $sql_logar = "SELECT * FROM prof WHERE login = '$login' && senha = '$senha'"; $exe_logar = mysql_query($sql_logar) or die (mysql_error()); $fet_logar = mysql_fetch_assoc($exe_logar); $num_logar = mysql_num_rows($exe_logar); //Verifica se n existe uma linha com o login e a senha digitado if ($num_logar == 0){ echo "Login ou senha invalido."; echo "<br><a href='javascript:window.history.go(-1)'>Clique aqui para volta.</a>"; } else{ //Cria a sessão e manda pra pagina principal.php session_start(); $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; header("Location:prof/cadastro.php"); } } ?> Obrigada se alguém me ajudar... Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 18, 2011 if ($login=="admin" && $senha=="****") $sql_logar = "SELECT * FROM `prof` WHERE `login` = '$login' and `senha` = '$senha'"; é as variaveis $login, $senha estão definidas em um ELSE ou seja o administrador tem login em senha como NULL , defina elas acima do script :lol: Compartilhar este post Link para o post Compartilhar em outros sites
Beto A. 0 Denunciar post Postado Fevereiro 18, 2011 Olá: tente fazer a linha do IF assim: <?php $login = "admin"; $senha = "****"; if ($login=="admin" and $senha=="****") { session_start(); $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; header("Location:admin.php"); } Compartilhar este post Link para o post Compartilhar em outros sites
Casty 0 Denunciar post Postado Fevereiro 18, 2011 Ainda continua dando erro... Parse error: syntax error, unexpected T_VARIABLE in C:\Arquivos de programas\EasyPHP-5.3.3.1\www\p_sc\index.php on line 21 essa linha 21 inicia no $login = "admin"; Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 18, 2011 foi oque eu disse , bote o $login que captura o post com os dados em cima do if Compartilhar este post Link para o post Compartilhar em outros sites
Casty 0 Denunciar post Postado Fevereiro 18, 2011 Ainda dando erro: <?php include("connect.php") $login = $_POST['login']; $senha = $_POST['senha']; $sql_logar = "SELECT * FROM prof WHERE 'login' = '$login' and 'senha' = '$senha'"; if ($login=="admin" && $senha=="inuyasha") { session_start(); $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; header("Location:admin.php"); } else { /* Verifica se existe usuario, o segredo ta aqui quando ele procupa uma linha q contenha o login e a senha digitada $sql_logar = "SELECT * FROM prof WHERE 'login' = '$login' and 'senha' = '$senha'";*/ $exe_logar = mysql_query($sql_logar) or die (mysql_error()); $fet_logar = mysql_fetch_assoc($exe_logar); $num_logar = mysql_num_rows($exe_logar); //Cria a sessão e manda pra pagina principal.php session_start(); $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; header("Location:prof/cadastro.php"); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 18, 2011 Qual o erro ?? , você não presisa botar esse SQL Ai em cima (pelomenos por min , eu não botaria) .. :!: Compartilhar este post Link para o post Compartilhar em outros sites
Casty 0 Denunciar post Postado Fevereiro 18, 2011 Parse error: syntax error, unexpected T_VARIABLE in C:\Arquivos de programas\EasyPHP-5.3.3.1\www\p_sc\index.php on line 21 esse erro '-' Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 18, 2011 Simplificando seu codigo .. teste assim (fiz um simples anti_injection) pra evitar ataques ao seu bd <?php include("connect.php") $login = mysql_real_escape_string(strip_tags($_POST['login'])); $senha = mysql_real_escape_string(strip_tags($_POST['senha'])); $sql_logar = "SELECT * FROM `prof` WHERE 'login' = '$login' and 'senha' = '$senha'"; $exe_logar = mysql_query($sql_logar) or die (mysql_error()); $fet_logar = mysql_fetch_assoc($exe_logar); if($fet_logar['login'] == "admin" && $fet_logar['senha'] == "senha") { session_start(); $_SESSION['login'] = $fet_logar['login']; $_SESSION['senha'] = $fet_logar['senha']; } elseif(mysql_num_rows($exe_logar) == 1){ session_start(); $_SESSION['login'] = $fet_logar['login']; $_SESSION['senha'] = $fet_logar['senha']; header("Location: prof/cadastro.php"); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Casty 0 Denunciar post Postado Fevereiro 18, 2011 Ainda dá erro na mesma linha 21: $login = mysql_real_escape_string(strip_tags($_POST['login'])); Código todo (HTMl e PHP): <!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 http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <link rel="stylesheet" type="text/css" href="estilos.css"> <script type="text/javascript"> function vaiform(form) { form.submit(); } </script> </head> <?php include("connect.php") $login = mysql_real_escape_string(strip_tags($_POST['login'])); $senha = mysql_real_escape_string(strip_tags($_POST['senha'])); $sql_logar = "SELECT * FROM `prof` WHERE 'login' = '$login' and 'senha' = '$senha'"; $exe_logar = mysql_query($sql_logar) or die (mysql_error()); $fet_logar = mysql_fetch_assoc($exe_logar); if($fet_logar['login'] == "admin" && $fet_logar['senha'] == "senha") { session_start(); $_SESSION['login'] = $fet_logar['login']; $_SESSION['senha'] = $fet_logar['senha']; } elseif(mysql_num_rows($exe_logar) == 1){ session_start(); $_SESSION['login'] = $fet_logar['login']; $_SESSION['senha'] = $fet_logar['senha']; header("Location: prof/cadastro.php"); } ?> <body> <p> </p> <p> </p> <p> </p> <p> </p> <table width="500" border="0" align="center"> <tr> <td> <form id="form1" name="form1" method="post" action=""> <table width="297" border="0" align="center"> <tr> <td width="56">Login:</td> <td width="148"><label> <input type="text" name="login" id="textfield" /> </label></td> <td width="79"> </td> </tr> <tr> <td>Senha:</td> <td><label> <input type="password" name="senha" id="textfield2" /> </label></td> <td><input type="image" name="imageField" id="imageField" src="img/buttonGo.png" onclick="javascript: form.submit('form');"/></td> </tr> </table> </form> </td> </tr> </table> <p> </p> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 18, 2011 cara , sem você falar o erro fica dificil ajudar .. , qual o erro que apareceu ai Compartilhar este post Link para o post Compartilhar em outros sites
Casty 0 Denunciar post Postado Fevereiro 18, 2011 Exatamente o mesmo: "Parse error: syntax error, unexpected T_VARIABLE in C:\Arquivos de programas\EasyPHP-5.3.3.1\www\p_sc\index.php on line 21" será q talvez nao pode ser tbm o Easy PHP q uso? Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 18, 2011 Tente assim amigo .. <?php include("connect.php") if($_SERVER['REQUEST_METHOD'] == 'POST'){ $login = mysql_real_escape_string(strip_tags($_POST['login'])); $senha = mysql_real_escape_string(strip_tags($_POST['senha'])); $sql_logar = "SELECT * FROM `prof` WHERE 'login' = '$login' and 'senha' = '$senha'"; $exe_logar = mysql_query($sql_logar) or die (mysql_error()); $fet_logar = mysql_fetch_assoc($exe_logar); if($fet_logar['login'] == "admin" && $fet_logar['senha'] == "senha") { session_start(); $_SESSION['login'] = $fet_logar['login']; $_SESSION['senha'] = $fet_logar['senha']; } elseif(mysql_num_rows($exe_logar) == 1){ session_start(); $_SESSION['login'] = $fet_logar['login']; $_SESSION['senha'] = $fet_logar['senha']; header("Location: prof/cadastro.php"); } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Casty 0 Denunciar post Postado Fevereiro 18, 2011 Novo erro: Parse error: syntax error, unexpected T_IF in C:\Arquivos de programas\EasyPHP-5.3.3.1\www\p_sc\index.php on line 22 Linha 22: if($_SERVER['REQUEST_METHOD'] == 'POST'){ Compartilhar este post Link para o post Compartilhar em outros sites
Beto A. 0 Denunciar post Postado Fevereiro 18, 2011 Simples, o form dele tá sem o action... <form id="form1" name="form1" method="post" action=""> defina o action para o arquivo onde está o script Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 18, 2011 você não ta dando ponto e virgula no include .. Correto: <?php include("connect.php"); if($_SERVER['REQUEST_METHOD'] == 'POST'){ $login = mysql_real_escape_string(strip_tags($_POST['login'])); $senha = mysql_real_escape_string(strip_tags($_POST['senha'])); $sql_logar = "SELECT * FROM `prof` WHERE 'login' = '$login' and 'senha' = '$senha'"; $exe_logar = mysql_query($sql_logar) or die (mysql_error()); $fet_logar = mysql_fetch_assoc($exe_logar); if($fet_logar['login'] == "admin" && $fet_logar['senha'] == "senha") { session_start(); $_SESSION['login'] = $fet_logar['login']; $_SESSION['senha'] = $fet_logar['senha']; } elseif(mysql_num_rows($exe_logar) == 1){ session_start(); $_SESSION['login'] = $fet_logar['login']; $_SESSION['senha'] = $fet_logar['senha']; header("Location: prof/cadastro.php"); } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beto A. 0 Denunciar post Postado Fevereiro 18, 2011 Andrey, no caso dele o adm vai ficar embutido no script, então acho que ele tem que verificar antes de fazer a query então, acho que deveria ficar assim <?php $login = $_POST['login']; $senha = $_POST['senha']; if ($login=="admin" and $senha=="****") { session_start(); $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; header("Location:admin.php"); } Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 18, 2011 eu fiz o 'ADM' na query .. ele tambem pode fazer daquela maneira , ja que ele ta usando o banco de dados pra guardar os outros usuarios , mesmo porque iria facilitar mais ele caso presisar de uma alteração , ai não tem que alterar script etc etc .. basta alterar no banco Compartilhar este post Link para o post Compartilhar em outros sites
gbrlsepulveda 0 Denunciar post Postado Fevereiro 19, 2011 Cara não sou expert, mas acho q teria um problema aqui <form id="form1" name="form1" method="post" action=""> Você deveria por no action a pagina para redirecionar, por exemplo <form id="form1" name="form1" method="post" action="login.php"> e esse código que em PHP, você bota nessa pagina "login.php" O código no PHP ta sendo interpretado antes das variaveis receberem o resultado, antes do action do form que vai enviar,os valores, sendo assim, as variaveis $login e $senha ficariam sendo NULL. Tente fazer isso Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 19, 2011 Por isso existe o if do $_SERVER ali , se o Servidor requisitar de um metodo de post naquela pagina o script e executado não faz diferença de onde ele esteja ^_^ Compartilhar este post Link para o post Compartilhar em outros sites