Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Casty

Login e Senha com if

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.