Ir para conteúdo

POWERED BY:

Arquivado

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

Robson Barros da Rocha

Problema técnico na linha 7 do sistema de login

Recommended Posts

Olá pessoal!

 

Estou tentando fazer um sistema de Login e senha com cadastro em BD. Estou fazendo isso no Freewebhostarea e funciona perfeitamente, contudo, o que não funcionou corretamente foi o logar.php :(.

 

O que houve?

Eu tentei cadastrar uma conta com o login de Admin, e a senha *********, tudo deu certo, daí eu tentei cadastrar uma nova conta de novo com o mesmo login e o BD me informou que existia. Ou seja, isso quer dizer que o BD se conectou com todos os dados do configurar.php, só que, na hora de logar no login.php eu tive problemas. Quando eu cliquei em Entrar, me aparece a seguinte mensagem:

 

 

Parse error: syntax error, unexpected ')' in /home/vhosts/servicos.xp3.biz/logar.php on line 7

 

Eu acessei a linha sete do logar.php e não entendi o erro, pois abri o arquivo no programa PHP EDITOR e ele não me reportou qualquer problema na linha 7.

 

O código do logar.php:

<?
include "configuracao.php";

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

$resultado = mysql_query("SELECT login, senha FROM `$tabela` WHERE login='$login' AND senha='$senha'", $db);) or print (mysql_error());
while($linha = mysql_fetch_array($resultado)){
 $loginbanco = $linha["login"];
 $senhabanco = $linha["senha"];
}
if($loginbanco == $login AND $senhabanco == $senha){
 session_register(login);
 session_register(senha);
 header("Location: area_vip.php");
}
else{
 echo
	 "
    <META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>
    <script type=\"text/javascript\">
    alert(\"Erro: Usuário ou senha inválidos!\");
    </script>
    ";
}
?>

Alguém que compreende o sistema PHP poderia me informar qual é o problema da linha sete? Eu queria excluir a linha sete e fechar o atributo para que funcione, mas não sei se é recomendável. Preciso de um profissional.

 

Endereço do site teste de cadastro: http://servicos.xp3.biz/

Clique nos links do site.

 

 

Abraços.

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque:


$resultado = mysql_query("SELECT login, senha FROM `$tabela` WHERE login='$login' AND senha='$senha'", $db);) or print (mysql_error());

 

Por:


$resultado = mysql_query("SELECT login, senha FROM `$tabela` WHERE login='$login' AND senha='$senha'", $db) or print (mysql_error());

 

Estava sobreando um ; )


Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo!

 

Obrigado pela sua resposta, contudo ainda houve complicações. Depois da correção, outro problema técnico ocorreu em uma linha que não imaginava que ocorresse algum erro:

 

Fatal error: Call to undefined function session_register() in /home/vhosts/servicos.xp3.biz/logar.php on line 15

 

Essa ligação quer dizer que o código não consegue indentificar o usuário ou que não há ligação com o configurar.php?

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que você tenha copiado o script de algum tutorial bem antigo, session_register não existe mais a um bom tempo. Hoje em dia o correto é usar session_start() para iniciar as sessões e $_SESSION para registar elas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Estranho... Isso realmente é possível? Quer dizer, realmente é possível que o próprio sistema de código padrão se modifique? Nossa, essa eu não sabia. Obrigado amigo.

 

Agora, o correto então é remover o session_start() e colocar o $_

<?
include "configuracao.php";

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

$resultado = mysql_query("SELECT login, senha FROM `$tabela` WHERE login='$login' AND senha='$senha'", $db) or print (mysql_error());
while($linha = mysql_fetch_array($resultado)){
 $loginbanco = $linha["login"];
 $senhabanco = $linha["senha"];
}
if($loginbanco == $login AND $senhabanco == $senha){
 $_SESSION_register(login);
  $_SESSION_register(senha);
 header("Location: area_vip.php");
}
else{
 echo
	 "
    <META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>
    <script type=\"text/javascript\">
    alert(\"Erro: Usuário ou senha inválidos!\");
    </script>
    ";
}
?>

 

Novamente, obrigado amigo Edgar.

 

Abraços.

:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Robson, antes de mais nada, aprenda a usar o manual:

http://php.net/session_register

This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.

 

Ele mesmo avisa as funções depreciadas e removidas.

 

Também é importante tentar prestar muita atenção no que se lê, em nenhum lugar disse para você remover o session_start(), disse sim para você adicionar ele e também o seu modo de usar o $_SESSION está totalmente errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo jeito você não entende muito de PHP. O que o ESerra te passou é que a função session_register() está obsoleta, descontinuada, não existe mais no interpretador PHP.

 

Quando se trabalha com sessões, "sempre" utiliza-se a função

 

session_start();

Função responsável por iniciar uma sessão no navegador/aplicação.

 

$_SESSION

Essa te serve para gerar uma nomenclatura para o seu propósito, exemplo:

 

$_SESSION['NOME'] = 'Aprendendo Sessão';

Se você der um:

 

print $_SESSION['NOME'];

 

A saída será: Aprendendo Sessão Considerando o session_start(); no início da aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Acho que compreendi. Contudo, meu conhecimento é básico e as apostilas na qual eu obtive uma leitura são das antigas. Peguei esse código para tentar e ver se aprendi mesmo, mas não estou tendo sucesso aqui.

 

Gabriel sua explicação me deixou muito confuso, apesar de parecer bem esclarecedora, :) por mais testes que eu efetuei pela tarde inteira aplicando as instruções indicadas eu não obtive nada. Ao colocar o session_start(); entre as chaves {} ainda promove o erro fatal, não me ajudando a conectar.

 

if($loginbanco == $login AND $senhabanco == $senha){
session_start();
$_SESSION['$login'] = 'login';
$_SESSION['$senha'] = 'senha';
 header("Location: area_vip.php");
}

Mesmo informando ao código para iniciar uma seção a partir do Login e senha, eu ainda tenho problemas com tal código. O SESSION_START inicia a seção e o que é colocado dentro dos parênteses é o valor da seção? Eu compreendi dessa forma.

 

Abraços e obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha o que eu disse no último parágrafo...

 

Você deve colocar o session_start() no início do seu documento PHP, no início de tudo, acima de qualquer código.

 

Poste aqui o seu script por completo, deixa eu ver como está.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui está:

<?
include "configuracao.php";

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

$resultado = mysql_query("SELECT login, senha FROM `$tabela` WHERE login='$login' AND senha='$senha'", $db) or print (mysql_error());
while($linha = mysql_fetch_array($resultado)){
 $loginbanco = $linha["login"];
 $senhabanco = $linha["senha"];
}
if($_SESSION_loginbanco == login AND $senhabanco == $senha){
 $_SESSION_register(login);
  $_SESSION_register(senha);
 header("Location: area_vip.php");
}
else{
 echo
	 "
    <META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>
    <script type=\"text/javascript\">
    alert(\"Erro: Usuário ou senha inválidos!\");
    </script>
    ";
}
?>

Esse é o que uso no FTP neste momento, contudo, não compreendo esse pequeno erro. Se ao colocar o session_start() lá em cima, devo deixar as opções do _register normais?

 

Até mais e obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem muita coisa errada aí, percebi que você não tem "noção" de PHP... não existe $_SESSION_register...

 

veja aqui o script como deveria ficar, supondo que você tem um formulário configurado corretamente e com os campos de nome login e senha.




<?php
session_start();

include "configuracao.php";

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



$login = isset($_POST['login']) ? $_POST['login'] : die('Sem campo login');
$senha = isset($_POST['senha']) ? $_POST['senha'] : die('Sem campo senha');

$resultado = mysql_query("SELECT login, senha FROM `$tabela` WHERE login='$login' AND senha='$senha'", $db) or die (mysql_error());

while($linha = mysql_fetch_array($resultado)){

$loginbanco = $linha["login"];
$senhabanco = $linha["senha"];

}

if($loginbanco == $login AND $senhabanco == $senha){

$_SESSION['login'] = $loginbanco;
$_SESSION['senha'] = $senhabanco;

header("Location: area_vip.php");
}
else{
echo
"
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>
<script type=\"text/javascript\">
alert(\"Erro: Usuário ou senha inválidos!\");
</script>
";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

meu conhecimento é básico e as apostilas na qual eu obtive uma leitura são das antigas. Peguei esse código para tentar e ver se aprendi mesmo, mas não estou tendo sucesso aqui.

 

Só um ponto, ser iniciante não é desculpa para fazer besteira no código. Uma dica para quem está começando é: nunca veja apostilas antigas, elas são defasadas e o conteúdo é de baixíssima qualidade, teve dúvidas sobre uma função? procure sempre no PHP.net, a documentação oficial e atualizada da linguagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Tem muita coisa errada aí, percebi que você não tem "noção" de PHP... não existe $_SESSION_register...

 

veja aqui o script como deveria ficar, supondo que você tem um formulário configurado corretamente e com os campos de nome login e senha.




<?php
session_start();

include "configuracao.php";

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



$login = isset($_POST['login']) ? $_POST['login'] : die('Sem campo login');
$senha = isset($_POST['senha']) ? $_POST['senha'] : die('Sem campo senha');

$resultado = mysql_query("SELECT login, senha FROM `$tabela` WHERE login='$login' AND senha='$senha'", $db) or die (mysql_error());

while($linha = mysql_fetch_array($resultado)){

$loginbanco = $linha["login"];
$senhabanco = $linha["senha"];

}

if($loginbanco == $login AND $senhabanco == $senha){

$_SESSION['login'] = $loginbanco;
$_SESSION['senha'] = $senhabanco;

header("Location: area_vip.php");
}
else{
echo
"
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>
<script type=\"text/javascript\">
alert(\"Erro: Usuário ou senha inválidos!\");
</script>
";
}
?>

 

Obrigado amigo Gabriel. Você saberia me informar algum site que tem um sistema de "Login e cadastro" com o PHP atual?

Só um ponto, ser iniciante não é desculpa para fazer besteira no código. Uma dica para quem está começando é: nunca veja apostilas antigas, elas são defasadas e o conteúdo é de baixíssima qualidade, teve dúvidas sobre uma função? procure sempre no PHP.net, a documentação oficial e atualizada da linguagem.

Obrigado, e desculpe pelo transtorno.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O fórum é aberto à todos, sempre para discussões e ajuda.

 

Se você realmente quer começar a programar, esqueça de ficar pegando script para tudo que é lado. Aprenda lógica de programação e depois o PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O fórum é aberto à todos, sempre para discussões e ajuda.

 

Se você realmente quer começar a programar, esqueça de ficar pegando script para tudo que é lado. Aprenda lógica de programação e depois o PHP.

 

:yes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado amigo Gabriel. Você saberia me informar algum site que tem um sistema de "Login e cadastro" com o PHP atual?

 

Olha cara, eu também nunca entendi muito de $_SESSION e quando tive a necessidade de usar um sistema de login e senha eu encontrei um super simples e com nível de usuário, é só o sistema de login e é algo muito bom mesmo, a parte de cadastro é mais fácil de fazer e acredito que você não terá dificuldade. Depois de você analisar o código de login e entender como ele funciona saberá até mesmo a alterá-lo de acordo com o que precisa e acrescentar novas funcionalidades. Recomendo muito pra você. :)

 

Como criar um Sistema de Login com Níveis de Permissão (autor Thiago Belem)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi. Eu apliquei o código que o amigo Gabriel informou, contudo, quando eu fiz o login não funcinou. Mas, obrigado, daqui para frente vou me virar pra aprender. Obrigado a todos!

 

Att,

ROCHA

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.