Ir para conteúdo

POWERED BY:

Arquivado

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

felipeaqueiroz

Problema com login em PHP

Recommended Posts

Boa tarde a todos.

Esse é o meu primeiro tópico aqui.

Sou iniciante em PHP e não quero ficar somente nas apostilas, quero tentar e aprender com meus erros. Pois bem, estou com um.

Segui um tutorial de login que achei por aqui mesmo ( se quiserem ver como está, acessem felipeaqueiroz.eu5.org/login.php)

 

meus srquivos são

 

login.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" />

<style type="text/css">
<!--
.style1 {font-family: Arial, Helvetica, sans-serif; color:#666666}
-->
</style>
<title>Bem vindo ao Administrador!</title><center><h1 class="style1">ADMINISTRAÇÃO  </h1>
</center>
</head>

<form action="http://felipeaqueiroz.eu5.org/autenticar.php" method="post">

<table width="300px" border="0" align="center" cellpadding="3" cellspacing="3">
  <tr>
    <td width="84">Login:</td>
    <td width="395"><label>
      <input type="text" name="login" id="login">
    </label></td>
  </tr>
  <tr>
    <td>Senha:</td>
    <td><label>
      <input type="password" name="senha" id="senha">
    </label></td>
  </tr>
  <tr>
    <td> </td>
    <td><label>
      <input type="submit" name="button" id="button" value="Logar">
    </label></td>
  </tr>
</table>

</form>

connect.php

<?php
$host = "localhost";
$user = "24884";
$user = "m9j4d5";
$dbname = "24884";
mysql_connect($host, $user, $password) or die("Erro ao tentar se conectar!");
mysql_select_db($dbname)or die("Erro ao selecionar o banco!");
?>

autenticar.php

<?php
include("http://felipaqueiroz.eu5.org/connect.php");
 
//Recebendo os dados do formulário
$login = addslashes($_POST["login"]);
$senha = addslashes($_POST["senha"]);
 
$sql = "SELECT * FROM usuario WHERE login = '$login' AND senha = '$senha'";
$rs = mysql_query($sql);
 
if(mysql_num_rows($rs) == 1) {
	$user = mysql_fetch_array($rs);
	//conferindo o login e senha para segurança
	if($login == $user['login']){
		//se entrou, entao o login é igual
		if($senha == $user['senha']){
			//se entrou, então a senha também é igual
			$logado = "1";
			$id_user = $user['id'];
 
			//criando a sessão
			session_start();
			$_SESSION["id_user"] = $id_user;
			$_SESSION["logado"] = $logado;
 
			//depois que criarmos a sessão, 
                        //vamos redirecionar para a página privada
			header("Location: http://felipeaqueiroz.eu5.org/cadastro.php");
		} else {
			echo "A senha não confere!";
 
		}
	} else {
		echo "O usuário não confere!";
	}
}else {
	echo "Usuário ou senha inválidos. Tente novamente.";
}
?>

cadastro.php

<?php
//Iniciando a sessão
session_start();
include("http://felipeaqueiroz.eu5.org/connect.php");
if($_SESSION['logado'] == 1){
	$sql = "SELECT * FROM usuario WHERE id = ".$_SESSION['id_user'];
	$rs = mysql_query($sql);
	if(mysql_num_rows($rs)) {
		$user = mysql_fetch_array($rs);
		echo "<strong> Olá ".$user['nome']."!</strong> ";
		echo "<a href="http://felipeaqueiroz.eu5.org/logout.php">Sair</a>";
		echo "Esta é sua página privada. 
                Nos próximos tutoriais continuaremos com esta página.";
	}
}else {
	echo "Você não está logado. Tudo está oculto para você!";
}
?>

e logout.php

<?php
//Iniciando a sessão
session_start();
//destruindo a sessão
session_destroy();
 
Header("Location: http://felipeaqueiroz.eu5.org/login.php");
?>

O meu banco está assim:

id nome login senha

1 Felipe Queiroz felipeaqueiroz m9j4d5

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde a todos.

Esse é o meu primeiro tópico.

Sou iniciante em PHP e outras linguagens Web e não quero ficar apenas nas apostilas, quero aprender com meus erros e estou com um.

Segui um tutorial que achei por aqui, se não me engano, exceto a tela login.php, mas fiz as devidas alterações (acho)

Se quiserem acessar como está a página entrem em felipeaqueiroz.eu5.org/login.php

 

 

Eu tenho os arquivos:

 

 

login.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" />

<style type="text/css">
<!--
.style1 {font-family: Arial, Helvetica, sans-serif; color:#666666}
-->
</style>
<title>Bem vindo ao Administrador!</title><center><h1 class="style1">ADMINISTRAÇÃO  </h1>
</center>
</head>

<form action="http://felipeaqueiroz.eu5.org/autenticar.php" method="post">

<table width="300px" border="0" align="center" cellpadding="3" cellspacing="3">
  <tr>
    <td width="84">Login:</td>
    <td width="395"><label>
      <input type="text" name="login" id="login">
    </label></td>
  </tr>
  <tr>
    <td>Senha:</td>
    <td><label>
      <input type="password" name="senha" id="senha">
    </label></td>
  </tr>
  <tr>
    <td> </td>
    <td><label>
      <input type="submit" name="button" id="button" value="Logar">
    </label></td>
  </tr>
</table>

</form>


 

connect.php

<?php
$host = "localhost";
$user = "24884";
$user = "m9j4d5";
$dbname = "24884";
mysql_connect($host, $user, $password) or die("Erro ao tentar se conectar!");
mysql_select_db($dbname)or die("Erro ao selecionar o banco!");
?>

 

autenticar.php

<?php
include("http://felipaqueiroz.eu5.org/connect.php");
 
//Recebendo os dados do formulário
$login = addslashes($_POST["login"]);
$senha = addslashes($_POST["senha"]);
 
$sql = "SELECT * FROM usuario WHERE login = '$login' AND senha = '$senha'";
$rs = mysql_query($sql);
 
if(mysql_num_rows($rs) == 1) {
	$user = mysql_fetch_array($rs);
	//conferindo o login e senha para segurança
	if($login == $user['login']){
		//se entrou, entao o login é igual
		if($senha == $user['senha']){
			//se entrou, então a senha também é igual
			$logado = "1";
			$id_user = $user['id'];
 
			//criando a sessão
			session_start();
			$_SESSION["id_user"] = $id_user;
			$_SESSION["logado"] = $logado;
 
			//depois que criarmos a sessão, 
                        //vamos redirecionar para a página privada
			header("Location: http://felipeaqueiroz.eu5.org/cadastro.php");
		} else {
			echo "A senha não confere!";
 
		}
	} else {
		echo "O usuário não confere!";
	}
}else {
	echo "Usuário ou senha inválidos. Tente novamente.";
}
?>

cadastro.php

 

<?php
//Iniciando a sessão
session_start();
include("http://felipeaqueiroz.eu5.org/connect.php");
if($_SESSION['logado'] == 1){
	$sql = "SELECT * FROM usuario WHERE id = ".$_SESSION['id_user'];
	$rs = mysql_query($sql);
	if(mysql_num_rows($rs)) {
		$user = mysql_fetch_array($rs);
		echo "<strong> Olá ".$user['nome']."!</strong> ";
		echo "<a href="http://felipeaqueiroz.eu5.org/logout.php">Sair</a>";
		echo "Esta é sua página privada. 
                Nos próximos tutoriais continuaremos com esta página.";
	}
}else {
	echo "Você não está logado. Tudo está oculto para você!";
}
?>

 

logout.php

 

<?php
//Iniciando a sessão
session_start();
//destruindo a sessão
session_destroy();
 
Header("Location: http://felipeaqueiroz.eu5.org/login.php");
?>

 

e o meu banco está assim

 

id nome login senha

1 Felipe Queiroz felipeaqueiroz m9j4d5

 

 

 

 

O problema é que, ao entrar, ele entra na página autenticar.php e me retorna "Usuário ou senha inválidos. Tente novamente." como se o problema fosse no código SQL.

Não sei muito SQL, vou aprendendo vendo códigos e traduzindo-os

 

Agradeço aos que ajudarem

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta adaptar este codigo para o seu script so pra testar.

ta todo comentado da pra intender

 

<?php
require_once('../conexao/conexao.php');
//define a página para redirecionamento se o login for efetuado com sucesso
$pagina_restrita = "admin.php";

if($_SERVER['REQUEST_METHOD'] == "POST"){ //verifica se as informações estão vindo pelo metodo POST

			//verifica se o login e a senha foram informados
			if(isset($_POST['login']) && isset($_POST['senha'])){
				$login=$_POST['login'];
                $senha = $_POST['senha'];
				//verifica se o login e senha são equivalentes a uma linha no banco, ou seja, estão cadastrados
                $query = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha'") or die(mysql_error());
                // pega o número de linhas retornados pela consulta anterior
				$pega_linha = mysql_num_rows($query);
				// pega a linha e passa os campos para a variavel $row como um array
				$row = mysql_fetch_assoc($query);
               // verifica se foi encontrado o valor pesquisado na query de consulta $query
                if($pega_linha > '0'){
					//se foi encontrado o usuário, inicia a sessão
                        session_start();
						//registra as variaveis login e senha na sessão iniciada
                        @session_register('login');
                        @session_register('senha');
						//atribui os valores de login e senha encontrados no banco
                        $_SESSION['login'] = $row['login'];
                        $_SESSION['senha'] = $row['senha'];
						//redireciona o usuário para a página restrita
                        echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $pagina_restrita . "\">";
                } else {
					
					echo "Error";
               
                }
               
        }

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

altera este script o seu ta $user $user

 

<?php
$host = "localhost";
$user = "24884";
$password = "m9j4d5";
$dbname = "24884";
mysql_connect($host, $user, $password) or die("Erro ao tentar se conectar!");
mysql_select_db($dbname)or die("Erro ao selecionar o banco!");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta adaptar este codigo para o seu script so pra testar.

 

Oi, eu não sei se adaptei direito, mas coloquei assim:

<?php
require_once('felipeaqueiroz.eu5.org/connect.php'); //<----- ISSO EU ALTEREI
//define a página para redirecionamento se o login for efetuado com sucesso
$pagina_restrita = "restrito.php"; // <----- ESSA AINDA SERÁ CRIADA

if($_SERVER['REQUEST_METHOD'] == "POST"){ //verifica se as informações estão vindo pelo metodo POST

 //verifica se o login e a senha foram informados
 if(isset($_POST['login']) && isset($_POST['senha'])){
 $login=$_POST['login'];
 $senha = $_POST['senha'];
 //verifica se o login e senha são equivalentes a uma linha no banco, ou seja, estão cadastrados
 $query = mysql_query("SELECT * FROM usuario WHERE login='$login' AND senha='$senha'") or die(mysql_error());
 // pega o número de linhas retornados pela consulta anterior
 $pega_linha = mysql_num_rows($query);
 // pega a linha e passa os campos para a variavel $row como um array
 $row = mysql_fetch_assoc($query);
 // verifica se foi encontrado o valor pesquisado na query de consulta $query
 if($pega_linha > '0'){
 //se foi encontrado o usuário, inicia a sessão
 session_start();
 //registra as variaveis login e senha na sessão iniciada
 @session_register('login');
 @session_register('senha');
 //atribui os valores de login e senha encontrados no banco
 $_SESSION['login'] = $row['login'];
 $_SESSION['senha'] = $row['senha'];
 //redireciona o usuário para a página restrita
 echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $pagina_restrita . "\">";
 } else {
 
 echo "Error";
 
 }
 
 }

}

E ele me respondeu:

Fatal error: require_once() [function.require]: Failed opening required 'felipeaqueiroz.eu5.org/connect.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/vhosts/felipeaqueiroz.eu5.org/autenticar.php on line 2

 

altera este script o seu ta $user $user

 

Como assim, tá $user $user?

Compartilhar este post


Link para o post
Compartilhar em outros sites

altera este script o seu ta $user $user

 

Já alterei, mesmo assim ele dá a mensagem de erro

Fatal error: require_once() [function.require]: Failed opening required 'felipeaqueiroz.eu5.org/connect.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/vhosts/felipeaqueiroz.eu5.org/autenticar.php on line 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte, volta o seu script normal mesmo, e no script connect.php altera a linha que eu falei.

 

<?php
$host = "localhost";
$user = "24884";
$password = "m9j4d5"; >>>>>> alterei aqui
$dbname = "24884";
mysql_connect($host, $user, $password) or die("Erro ao tentar se conectar!");
mysql_select_db($dbname)or die("Erro ao selecionar o banco!");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema sumiu (ótimo!!!) mas agora ele me responde

Access denied for user 'apache'@'localhost' (using password: NO)

É como se a senha estivesse errada, ou se ele não estivesse pegando os campos que eu coloco em login.php e usando eles. Já tentei colocar logins e senhas erradas, uma a uma e as duas erradas juntas

Compartilhar este post


Link para o post
Compartilhar em outros sites

no $host tenta colocar o caminho do servidor do eu5 algo como: $host = "felipeaqueiroz.eu5.org"

 

<?php
$host = "localhost";
$user = "24884";
$password = "m9j4d5";
$dbname = "24884";
mysql_connect($host, $user, $password) or die("Erro ao tentar se conectar!");
mysql_select_db($dbname)or die("Erro ao selecionar o banco!");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo o erro que está dando é um erro de conexão com a base de dados, veja se os dados do seu arquivo de configuração estão corretos e coloque o include que tem no arquivo aytenticar.php assim

include "connect.php";
não precisa você colocar o endereço completo
include("http://felipaqueiroz.eu5.org/connect.php");

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei

<?php
$host = "felipeaqueiroz.eu5.org";
$user = "24884";
$password = "m9j4d5";
$dbname = "24884";
mysql_connect($host, $user, $password) or die("Erro ao tentar se conectar!");
mysql_select_db($dbname)or die("Erro ao selecionar o banco!");
?>

 

mas, ele ainda me responde:

Access denied for user 'apache'@'localhost' (using password: NO)

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum... eu tenho quase certeza que o erro esta no $host

tenta verificar como ele deve ser realmente, algum suporte desse provedor ai, eu sinceramente nunca utilizei servidores para hospedagens. então nem sei como essa linha ai deve ser.

Se descobrir me avisa, vai me ajudar tmb ^^

 

mas certeza que o problema esta no $host.

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.