Ir para conteúdo
Fórum Script Brasil
  • 0

Login.php


Uzumaki Gabriel

Pergunta

Olá pessoal, esse é meu segundo tópico, e estou iniciando em PHP, eu estou como colunista em um site, e o quero ajudar muito, agora estou me responsabilizando por montar um sistema de cadastro em php..

Eu estou com um erro... E se alguém puder me ajudar eu agradeço muito!

Começando:

login.php:

<?php
$login = $_POST["login"];
$senha = $_POST["senha"];

$cn = mysql_connect("localhost", "usuario", "senha");
mysql_select_db("(mostro só para um mod, desculpe)");

$resultado = mysql_query("select * from usuarios where login = '$login'");
$linhas = mysql_num_rows($resultado);
if ($linhas ==0)
{
echo "Usuário não encontrado";
echo "<a href=login.htm>logar</a>";
} else {
if ($senha != mysql_result($resultado, 0, "senha"))
{
echo "Usuário não encontrado";
echo "<a href=login.htm>logar</a>";
}else{//usuario correto.. vamos criar os cookies com sessions...
session_start();
$_SESSION["login_usuario"] = $login;
$_SESSION["senha_usuario"] = $senha;

header("Location: index.html");
}
}
mysql_close($cn);
?>[/codebox]

Eu consigui me registrar tudo na boa, agora na hora de logar dá um erro:

[code]Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/tecnoftp/public_html/site/login.php on line 9 Usuário não encontradologar[/code]

OBS.: Eu coloquei usuario, senha e tirei algumas partes, mas se um mod quiser me ajudar, eu mando por PM mesmo!

Mas obrigado mesmo assim!! ^^.

____________________________________

E outra coisa também...

Tem como adicionar um sistema de login na página principal (em HTML) redirecionando as informações para o login.php?

Se podessem me ajudar nas duas dúvidas eu agradeceria muito!

//Obrigado

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

O erro está nessa linha:

$resultado = mysql_query("select * from usuarios where login = '$login'");

Como a sintaxe está correta os possíveis erros são:

- tabela (usuarios) errada

- nome da coluna (login) errada

- o banco de dados selecionado não tem a tabela referenciada, ou a tabela não tem a coluna...

Link para o comentário
Compartilhar em outros sites

  • 0

Antes faça com mysql_select_db() o mesmo que fiz com mysql_query() (colocar or die (mysql_error())), para ver se aparece algum erro.

Não adianta eu pegar o código e arrumar, pois o banco de dados está em seu computador. Em último caso você posta a estrutura das tabelas.

Link para o comentário
Compartilhar em outros sites

  • 0

Já te mandei por PM!!

Olhe lá e espero que possa me ajudar!!

falou.Vlw!

Up, me ajudem!!

Edit:

Atualizando o tópico:

Achei um outro script melhor, só que agora está dando outro erro...! O.ó!

<?
include "config.php";

if ( $acao == "logout" ) {
setcookie("login","",time()-3600);
setcookie("senha","",time()-3600);
}

if ( $acao == "logar" ) {
$conexao = mysql_connect($host, $login_db, $senha_db) or die (mysql_error());
$bd = mysql_select_db($database) or die (mysql_error());

$confirmacao = mysql_query("SELECT * FROM `$tabela` WHERE login='$login' AND senha='$senha'") or die (mysql_error());
$contagem = mysql_num_rows($confirmacao) or die (mysql_error());

if ( $contagem == 1 ) {
setcookie ("login", $login, time() + 3600);
setcookie ("senha", $senha, time() + 3600);

echo "Você esta logado. ";
echo "Aguarde...";
echo "<meta http-equiv="refresh" content="5; URL=http://www.tecnomagazine.lusopt.info/index.html">";
} else {
echo "Login ou senha inválidos. <a href=java script:history.go(-1)>Clique aqui para voltar.</a>";
}
}
?>
<?
if ( $acao == "") {
?>
<form name="login" method="post" action="?acao=logar">
<table width="480" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="150"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Login:</font></td>
<td width="250"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<input name="login" type="text" id="login">
</font></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Senha:</font></td>
<td><input name="senha" type="password" id="senha"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></td>
</tr>
<tr>
<td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<input name="entrar" type="submit" id="entrar" value="Entrar">
</font></div></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="?acao=senha">Esqueceu
a senha?</a> <a href="?acao=cadastrar">Cadastre-se</a> <a href="?acao=alterar">Alterar Dados</a></font></td>
</tr>
</table>
</form>
<? } ?>

<? if ( $acao == "logout" ) {
echo "Logout efetuado com sucesso!<br><br>Transferindo para a Página Principal."; ?>
<meta http-equiv="refresh" content="3; URL=index.php">
<? } ?>

<? if ( $acao == "senha" ) { ?>
<form name="senha" method="post" action="login.php?acao=enviarsenha">
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="150"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Login:</font></td>
<td width="250"><input name="login" type="text" id="login"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Email:</font></td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input name="enviar" type="submit" id="enviar" value="Enviar minha Senha">
</div></td>
</tr>
</table>
</form>
<? } ?>

<?
if ( $acao == "enviarsenha" ) {

include "config.php";

$db = mysql_connect ($host, $login_db, $senha_db); //conecta ao mysql
$basedados = mysql_select_db($database); //conecta a base de dados

$confirmacao = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login' AND email = '$email'", $db); //verifica se o login e a email conferem
while ($row = mysql_fetch_array($confirmacao)) {
$login = $row["login"];
$senha = $row["senha"];
$email = $row["email"];
}

$contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima

if ( $contagem == 1 ) {
$msg = "Recuperação de senha" . chr(13) . chr(10);
$msg .= "Senha enviada em " . date("d/m/Y") . ", os dados seguem abaixo: " . chr(13) . chr(10) . chr(10);
$msg .= "Login : " . $login . chr(13) . chr(10);
$msg .= "Email : " . $email . chr(13) . chr(10);
$msg .= "Senha : " . $senha . chr(13) . chr(10);

$Remetente = "Senha@scripts.kom.pt";

mail($email, "Recuperação de Senha",$msg,"From: $Remetente\n"); //campos do email na ordem, email destinho (não deve ser alterada), assunto, conteudo (não deve ser alterado), remetente (também não altere)

echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Sua senha foi enviada com sucesso para o email: $email.</font></div>"; //resposta se o email foi enviado com sucesso
} else {
echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Seu login ou email está incorreto.</font></div>"; //resposta se não foi possivel enviar o email
}
}
?>

<?
if ( $acao == "cadastrar" ) {
?>
<form name="cadastrar" method="post" action="login.php?acao=enviarcadastro">
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="150"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nome:</font></td>
<td width="250"><input name="nome" type="text" id="nome" maxlength="75"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Login:</font></td>
<td><input name="login" type="text" id="login" maxlength="30"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Senha:</font></td>
<td><input name="senha" type="password" id="senha" maxlength="30"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Repetir
Senha:</font></td>
<td><input name="senha2" type="password" id="senha2" maxlength="30"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Email:</font></td>
<td><input name="email" type="text" id="email" maxlength="50"></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input name="enviar" type="submit" id="enviar" value="Enviar Cadastro">
<input name="limpar" type="reset" id="limpar" value="Limpar Dados">
</div></td>
</tr>
</table>
</form>
<?
}
?>

<?
if ( $acao == "enviarcadastro" ) {

include "config.php";

$db = mysql_connect ($host, $login_db, $senha_db); //conectamos ao mysql
$basedados = mysql_select_db($database); //selecionamos o database escolhido

$pesquisar = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login'", $db); //conferimos se o login escolhido já não foi cadastrado
$contagem = mysql_num_rows($pesquisar); //traz o resultado da consulta acima

$login=$_POST["login"];
$senha=$_POST["senha"];
$senha2=$_POST["senha2"];

if ( $contagem == 1 ) {
$errors .= "Login escolhido já cadastrado.<br>"; //se o login já existir, ele adiciona o erro
}

if ( $login == "" ) {
$errors .= "Você não digitou um login<br>"; //confere se o campo login não ficou vazio
}

if ( $senha == "" ) {
$errors .= "Você não digitou uma senha<br>"; //confere se o campo senha não ficou vazio
}

if ( $senha != $senha2 ) {
$errors .= "Você digitou 2 senhas diferentes.<br>"; //adiciona o erro caso o usuário digitou 2 senhas diferentes
}

if ( $errors == "" ) { //checa se houve ou não erros no cadastro

$cadastrar = mysql_query("INSERT INTO `$tabela` (nome, login, senha, email)
VALUES ('$nome','$login','$senha','$email')", $db); //insere os campos na tabela

if ( $cadastrar == 1 ) {
echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif><br>Cadastro efectuado com sucesso.<br><br>AGUARDE...</font></div>"; //se cadastrou com sucesso o usuário aparece essa mensagem
echo "<meta http-equiv=\"refresh\" content=\"2;URL={$url}\">";
} else {
echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif><br><br><br>Ocorreu um erro no servidor ao tentar cadastrar.</font></div>"; //caso houver um erro quanto as configurações aparece essa mensagem
}
} else {
echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Ocorreu os seguintes erros ao tentar se cadastrar:<br><br>$errors</font></div>"; //mostra os erros do usuário, caso houver
}
}
?>
<?
if ( $acao == "alterar") {
?>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
include "config.php";

$db = mysql_connect ($host, $login_db, $senha_db);
$basedados = mysql_select_db($database);

$confirmacao = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login' AND email = '$email'", $db);
while ($row = mysql_fetch_array($confirmacao)) {
$codigo = $row["codigo"];
$nome = $row["nome"];
$login = $row["login"];
$senha = $row["senha"];
$email = $row["email"];
}
$contagem = mysql_num_rows($confirmacao);
?>
<form name="cadastrar" method="post" action="?acao=enviaralterar">
<input name="code" type="hidden" id="code" maxlength="75" value="<? echo $codigo ?>">
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="150"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nome:</font></td>
<td width="250"><input name="nome" type="text" id="nome" maxlength="75" value="<? echo $nome ?>"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Senha:</font></td>
<td><input name="senha" type="password" id="senha" maxlength="30"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Repetir
Senha:</font></td>
<td><input name="senha2" type="password" id="senha2" maxlength="30"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Email:</font></td>
<td><input name="email" type="text" id="email" maxlength="50" value="<? echo $email; ?>"></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input name="enviar" type="submit" id="enviar" value="Enviar Cadastro">
<input name="limpar" type="reset" id="limpar" value="Limpar Dados">
</div></td>
</tr>
</table>
</form>
</body>
</html>
<?
}
?>

<?
if ( $acao == "enviaralterar" ) {
?>
<?
include "config.php";

$db = mysql_connect ($host, $login_db, $senha_db);
$basedados = mysql_select_db($database);

if ( $senha == "" ) {
$errors .= "Você não digitou uma senha<br>";
}

if ( $errors == "" ) {

$alterar = mysql_query("UPDATE `$tabela` SET nome = '$nome', senha = '$senha', email = '$email' WHERE codigo = '$code'", $db);

if ( $alterar == 1 ) {
echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif><br>Dados alterados com sucesso.<br><br>AGUARDE...</font></div>";
echo "<meta http-equiv=\"refresh\" content=\"2;URL={$url}/login.php\"/>";
} else {
echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif><br><br><br>Ocorreu um erro no servidor ao tentar alterar seus dados.</font></div>";
}
} else {
echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Ocorreu os seguintes erros ao tentar alterar seus dados:<br><br>$errors</font></div>";
}
?>
<?
}
?>
<?
if ( $acao == "excluir" ) {
?>
<?
include "config.php";
$conexao = mysql_connect($host, $login_db, $senha_db) or die (mysql_error());
$bd = mysql_select_db($database) or die (mysql_error());

$user = mysql_query("SELECT * FROM `$tabela`") or die(mysql_error());
print "<table>";
print "<tr><th> Login </th> <th> Excluir </th></tr>";
while($res=mysql_fetch_array($user)){
print "<tr><td>".$res['login']."</td><td><A href=\"login.php?acao=cexcluir&&codigo=".$res['codigo']."\">Excluir</a></td></tr>";
}
print "</table>";
}
?>
<?
if ( $acao == "cexcluir" ) {
include("config.php");
$conexao = mysql_connect($host, $login_db, $senha_db) or die (mysql_error());
$bd = mysql_select_db($database) or die (mysql_error());
echo (mysql_query("delete from `$tabela` where codigo='".$_GET['codigo']."'")) ? "Usuario Excluido com sucesso" : "Não foi possivel excluiro usuario tente mais tarde";
}
?>
[/codebox]

Agora dá o seguinte erro:

Warning: Cannot modify header information - headers already sent by (output started at /home/tecnoftp/public_html/K-19/config.php:9) in /home/tecnoftp/public_html/K-19/login.php on line 17

Warning: Cannot modify header information - headers already sent by (output started at /home/tecnoftp/public_html/K-19/config.php:9) in /home/tecnoftp/public_html/K-19/login.php on line 18

Uzumaki Gabriel você esta logado.&nbspAguarde...

Editado por Uzumaki Gabriel
Link para o comentário
Compartilhar em outros sites

  • 0

Bom, mexi em algumas coisas e não testei, se quiser depois você testa :P

<? 
session_start();

include "config.php"; //inclui o arquivo de configurações

$login = $_POST["login"];
$senha = $_POST["senha"];

$cn = mysql_connect($host, $login_db, $senha_db) or die(mysql_error());
$basedados = mysql_select_db($database);
$resultado = mysql_query("select * from usuarios where login = '$login' AND senha = '$senha'", $cn) or die(mysql_error());
$linhas = mysql_num_rows($resultado);
$rs = mysql_fetch_array($resultado);
if ( $linhas == 1 ) {
$_SESSION["login"] = $rs['login'];
$_SESSION["senha"] = $rs['senha'];
echo "<script>location.href='index.html'</script>";
echo "Usuário logado."; 
} else {
echo "Senha incorreta!"; 
}
?>
Se você inicia uma sessão, você tem que inicar com session_start(); - Outra, não vi a CONEXÃO com o banco de dados, então coloquei um include e salve a pagina como config.php com esse script abaixo: config.php
<?
$host  = "localhost"; //endereço do seu servidor MySQL
$database = ""; //o database que conterá sua tabela, muitas vezes seu próprio login
$tabela  = ""; //o nome de sua tabela
$login_db = ""; //login usado no MySQL
$senha_db = ""; //senha usado no MySQL
?>

É + - isso aí, vê se vai dar algum erro :rolleyes:

Abraço

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...