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

[Ajuda] script de login/registo em php


dark_skulll

Pergunta

  • Respostas 55
  • Created
  • Última resposta

Top Posters For This Question

Posts Recomendados

  • 0
Poste o código, vendo pela url ele tenta acessar

$_SERVER['php_self'] ?>

Tem algo de muito errado ai...

aqui esta:

codigo registo.php

<?php

include("config.php");

if (isset($_POST['login'])){

//pega a sessão id do usuario

session_start();

$sessao = session_id();

$login = $_POST['login'];

$senha = $_POST['senha'];

$email = $_POST['email'];

$sql_busca = "SELECT * FROM user WHERE login = '$login'";

$exe_busca = mysql_query($sql_busca) or die (mysql_error());

$num_busca = mysql_num_rows($exe_busca);

$sql_busca2 = "SELECT * FROM user WHERE email = '$email'";

$exe_busca2 = mysql_query($sql_busca2) or die (mysql_error());

$num_busca2 = mysql_num_rows($exe_busca2);

//Verifica se os campos estão preenchidos

if ($_POST['login'] == "" || $_POST['senha'] == "" || $_POST['senha2'] == "" || $_POST['email'] == ""){

$ac[] = "Por favou preencha todos os campos corretamente.";

}

//Verifica se já existe o login

if ($num_busca > 0){

$ac[] = "Esse login já esta sendo usado por outro usuario.";

}

//Verifica se já existe o e-mail

if ($num_busca2 > 0){

$ac[] = "Esse e-mail já esta sendo usado por outro usuario.";

}

//Verifica se o e-mail esta correto

if (!ereg("@.", $_POST['email'])){

$ac[] = "E-mail invalido.";

}

//Verifica se as duas senha são diferente

if ($_POST['senha'] != $_POST['senha2']){

$ac[] = "Verifique se as duas senha estão correta.";

}

//Verifica se todas estão corretas

if (!isset($ac)){

//Inclui o cadastro no mysql

$sql_inclu = "INSERT INTO user(login, senha, email, sessao) VALUES

('$login', '$senha', '$email', '$sessao')";

$exe_inclu = mysql_query($sql_inclu) or die (mysql_error());

$tópico = "Cadastro $nome_site";

$mensagem = "<html>";

$mensagem .= "<body>";

$mensagem .= "Olá $login\r\n";

$mensagem .= "<br>Você efetuou um cadastro no $nome_site.</br>";

$mensagem .= "<br>Login: $login";

$mensagem .= "<br>Senha: $senha";

$mensagem .= "<br>Ativar conta <a href=$site/active.php?ac=$sessao'>$site/active.php?ac=$sessao</a></br>";

$mensagem .= "</body>";

$mensagem .= "</html>";

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

$headers .= "From: $nome_site <$email>\r\n";

$ac[] = "Cadastro efetuado com sucesso, verifique seu e-mail para ativa a conta.";

//enviar para o email o login, senha e o codigo de ativação

mail($email, $tópico, $mensagem, $headers);

}

}

?>

<!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=iso-8859-1" />

<title>Document sans titre</title>

<style type="text/css">

<!--

.Style2 {font-size: 13px}

-->

</style>

</head>

<body>

<?php

if (isset($ac)){

for($i=0;$i<count($ac);$i++){

echo "<li>".$ac[$i];

}

}

?>

<form id="form1" name="form1" method="post" action="<? $_SERVER['PHP_SELF]?>">

<table width="100%" border="0">

<tr>

<td colspan="2"><div align="center"><strong>Cadastro</strong></div></td>

</tr>

<tr>

<td width="13%"><span class="Style2">Login:</span></td>

<td width="87%"><span class="Style2">

<label>

<input name="login" type="text" id="login" />

</label>

</span></td>

</tr>

<tr>

<td><span class="Style2">Senha:</span></td>

<td><span class="Style2">

<label>

<input name="senha" type="password" id="senha" />

</label>

</span></td>

</tr>

<tr>

<td><span class="Style2">Repetir senha: </span></td>

<td><span class="Style2">

<label>

<input name="senha2" type="password" id="senha2" />

</label>

</span></td>

</tr>

<tr>

<td><span class="Style2">E-mail:</span></td>

<td><span class="Style2">

<label>

<input name="email" type="text" id="email" />

</label>

</span></td>

</tr>

<tr>

<td>&nbsp;</td>

<td><span class="Style2">

<label>

<input type="submit" name="Submit" value="Enviar" />

</label>

</span></td>

</tr>

</table>

<p>&nbsp;</p>

</form>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

  • 0

Bem, em qual parte está dando o erro? não analizei tudo, mais vi o erro do php_self

Seria:

<?php
if (isset($ac)){
for($i=0;$i<count($ac);$i++){
echo "<li>".$ac[$i];
}
}
?>
<form id="form1" name="form1" method="post" action="<? $_SERVER['PHP_SELF']?>">
O Form está fora da tag PHP, então o $_server não vai funcionar, vi que você coloco <? porem, o ?> está junto com o php_self, então ele não le isso como php, e sim em html Coloque
action="<?php echo $_SERVER['PHP_SELF']; ?>"

Não tenho certeza se o echo é necessario, mais, se não for, vai dar na mesma

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

  • 0
Bem, em qual parte está dando o erro? não analizei tudo, mais vi o erro do php_self

Seria:

<?php
if (isset($ac)){
for($i=0;$i<count($ac);$i++){
echo "<li>".$ac[$i];
}
}
?>
<form id="form1" name="form1" method="post" action="<? $_SERVER['PHP_SELF']?>">
O Form está fora da tag PHP, então o $_server não vai funcionar, vi que você coloco <? porem, o ?> está junto com o php_self, então ele não le isso como php, e sim em html Coloque
action="<?php echo $_SERVER['PHP_SELF']; ?>"

Não tenho certeza se o echo é necessario, mais, se não for, vai dar na mesma

Funcionou certinho era esse o problema

so que agora estou com outro problema ele registou na base de dados mas não recebi o email para activar a conta

Link para o comentário
Compartilhar em outros sites

  • 0

Bem, sobre o email eu não sei, da algum erro? já verificou o lixo?

agora, sobre aparecer o nome, você pode fazer o seguinte, quando ele logar, colocar

$_SESSION['nome'] = $login;

Não esqueça do

session_start();

Assim sempre que você precisar do nome dele (SE, o nome dele for o login) é só usar $_SESSION['nome']

Link para o comentário
Compartilhar em outros sites

  • 0

Aqui fica:

logar.php

<?php

include("config.php");

$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 user 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=java script:window.history.go(-1)'>Clique aqui para volta.</a>";

}

elseif($fet_logar['activo] == "N"){

echo "Usuario não ativado, verifique seu e-mail para ativa a conta.";

echo "<br><a href='java script: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:principal.php");

}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

teoricamente, se quando você diz que quer o nome dele, estiver falando no login, isso já é feito na seguinte parte:

//Cria a sessão e manda pra pagina principal.php
session_start();
$_SESSION['login'] = $login;
$_SESSION['senha'] = $senha;
header("Location:principal.php");
}
?>
Assim, para exibir o login, só é preciso digitar:
echo $_SESSION['login'];
Agora vamso supor, que no cadastro, ele cadastrou um nome, ai você teria que fazer o seguinte, como ele já fez a consulta no mysql (verificou se o usuario e senha existem e são iguais) você precisaria fazer isso:
while ($dados = mysql_fetch_assoc($sql_logar)){

echo $dados['nome'];
echo $dados['email'];
echo $dados['sobrenome'];

}
nesse caso, ele exibe o valor que existe no Nome no seu banco de dados (no caso, o que ele cadstrou) mude para o nome que tiver (Ex: Em vez de nome ele registrou para "nick"), você pode por isso antes do ?> agora, você tambem pode criar sessões, assim você pode usar elas em qualquer lugar, enquanto ele tiver logado;
while ($dados = mysql_fetch_assoc($sql_logar)){

$_SESSION['nome'] = $dados['nome'];
$_SESSION['email']echo $dados['email'];
$_SESSION['sobrenome']echo $dados['sobrenome'];

}
E então, quando precisar do nome, email ou sobrenome, só é necessario escrever: echo $_SESSION['nome']; Entendeu? Agora sua pagina de login, você poderia fazer assim:
<?php

echo 'Bem vindo ' . $_SESSION['nome'] . '!';
echo '<br>Seu email é ' . $_SESSION['email'] . '.';
echo '<br>Seu sobrenome é ' . $_SESSION['sobrenome'] . '.';
echo '<br>Seu login é ' . $_SESSION['login'] . '.';

?>

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

  • 0

ok aqui vai o codigo:

logar.php

<?php

include("config.php");

$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 user 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=java script:window.history.go(-1)'>Clique aqui para volta.</a>";

}

elseif($fet_logar['activo] == "N"){

echo "Usuario não ativado, verifique seu e-mail para ativa a conta.";

echo "<br><a href='java script: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:principal.php");

}

?>

e aqui vai a pagina que quero que apresente o nome depois de logado:

principal.php

<?php

include("config.php");

include("restrito.php");

$sql_busca = "SELECT * FROM user WHERE login = '$login_usuario'";

$exe_busca = mysql_query($sql_busca) or die (mysql_error());

$fet_busca = mysql_fetch_assoc($exe_busca);

?>

<!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=iso-8859-1" />

<title>Document sans titre</title>

</head>

<body>

<!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>Mostra</title>

<meta name="keywords" content="Game Website Template, free templates, website templates, CSS, XHTML" />

<meta name="description" content="Game Website Template - download free XHTML/CSS files from templatemo.com" />

<link href="templatemo_style.css" rel="stylesheet" type="text/css" />

<style type="text/css">

<!--

#templatemo_wrapper_outer #templatemo_wrapper_inner #templatemo_content_wrapper .templatemo_side_bar.margin_right_10 .header_01 form {

font-family: Arial, Helvetica, sans-serif;

}

#apDiv2 {

position:absolute;

left:44px;

top:837px;

width:168px;

height:155px;

z-index:2;

}

-->

</style>

</head>

<body>

<div id="templatemo_wrapper_outer">

<div id="templatemo_wrapper_inner">

<div id="templatemo_banner"></div> <!-- end of banner -->

<div id="templatemo_menu">

<ul>

<li><a href="index.php" class="current">Home</a></li>

<li><a href="#">Sobre</a></li>

<li><a href="#">Upload</a></li>

<li><a href="#">Download</a></li>

<li><a href="contacto.php">Contactos</a></li>

</ul>

</div> <!-- end of menu -->

<div id="templatemo_content_wrapper">

<div class="templatemo_side_bar margin_right_10">

<p>&nbsp;</p>

<p><img src="images/user-online.png" width="16" height="16" align="texttop" /> Dark Skulll</p>

<p>&nbsp;</p>

<p>Classe: <img src="images/administradortit.gif" width="84" height="7" /></p>

<p>&nbsp;</p>

<p><a href="logout.php">Fazer Logout</a> </p>

<div class="margin_bottom_20 horizontal_divider">

<p>&nbsp;</p>

</div>

<p><br />

</p>

<div class="header_01">

<p>Categorias</p>

</div>

<ul>

<li><a href="#">Documentarios</a></li>

<li><a href="#">Filmes</a></li>

<li><a href="../categoria/software.php">Software</a></li>

<li><a href="#">Sistemas operativos</a></li>

<li><a href="#">XXX</a></li>

<li><a href="#">Musica</a></li>

<li><a href="#">Series</a></li>

<li><a href="#">Antivirus</a></li>

</ul>

<div class="margin_bottom_20 horizontal_divider">

<p>&nbsp;</p>

</div>

<div class="margin_bottom_20">

<p>&nbsp;</p>

<p>&nbsp;</p>

</div>

<div class="header_01">

<p>&nbsp;</p>

<div id="apDiv2"><img src="images/widgetbg.gif" alt="" width="168" height="37" />

<table width="168" border="1">

<tr>

<td width="87"><img src="images/administradortit.gif" alt="" width="84" height="7" /></td>

<td width="65">1</td>

</tr>

</table>

<table width="168" border="1">

<tr>

<td width="87"><img src="images/supervisortit.gif" alt="" width="68" height="7" /></td>

<td width="65">0</td>

</tr>

</table>

<table width="168" border="1">

<tr>

<td width="87" height="22"><img src="images/moderadortit.gif" alt="" width="64" height="7" /></td>

<td width="65">0</td>

</tr>

</table>

<table width="168" border="1">

<tr>

<td width="87" height="22"><img src="images/goldmembertit.gif" alt="" width="74" height="7" /></td>

<td width="65">0</td>

</tr>

</table>

<table width="168" border="1">

<tr>

<td width="87" height="22"><img src="images/viptit.gif" alt="" width="18" height="7" /></td>

<td width="65">0</td>

</tr>

</table>

<table width="168" border="1">

<tr>

<td width="87" height="22"><img src="images/uploadertit.gif" alt="" width="56" height="7" /></td>

<td width="65">0</td>

</tr>

</table>

<table width="168" border="1">

<tr>

<td width="87" height="22"><img src="images/powerusertit.gif" alt="" width="68" height="7" /></td>

<td width="65">0</td>

</tr>

</table>

<table width="168" border="1">

<tr>

<td width="87" height="22"><img src="images/utilizadortit.gif" alt="" width="62" height="7" /></td>

<td width="65">0</td>

</tr>

</table>

<p>&nbsp;</p>

</div>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<div class="margin_bottom_20 horizontal_divider">

<p>&nbsp;</p>

</div>

<p>&nbsp;</p>

<p>Procurar </p>

</div>

<form action="" method="post">

<input type="text" id="search_field" />

<input type="submit" value="" id="search_button" />

</form>

<div class="margin_bottom_20"></div>

</div> <!-- end of left side bar -->

<div class="templatemo_content margin_right_10">

<div class="content_section">

<div class="header_02">

<p>Noticias</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

</div>

<form action="enviar.php" method="POST">

<!-- e-mail do destinatario -->

<center>

</center>

</form>

<div class="margin_bottom_20"></div>

<div class="rc_btn_01 fl"></div>

<div class="cleaner"></div>

</div>

<div class="margin_bottom_20 horizontal_divider"></div>

<div class="margin_bottom_20"></div>

<div class="content_section">

<div class="header_02"></div>

<p>&nbsp;</p>

<div class="margin_bottom_20"></div>

<div class="rc_btn_01 fl"></div>

<div class="cleaner"></div>

</div>

<div class="margin_bottom_40"></div>

</div>

<div class="templatemo_side_bar">

<div class="header_01">Top Parceiros</div>

<div class="latest_news border_bottom">

<div class="header_03">

<p><a href="http://www.piratatuga.net/">Pirata Tuga</a> </p>

</div>

<p><a href="http://evopt.org/login.php?returnto=%2F">Evopt</a> </p>

</div>

<div class="latest_news border_bottom">

<div class="header_03">

<p><a href="http://radioportal.50webs.com/">Radio Portal</a></p>

</div>

<p><a href="http://www.baixeja.com/">Baixeja</a></p>

</div>

<div class="margin_bottom_20 horizontal_divider"></div>

<div class="margin_bottom_20"></div>

<div class="header_01">Publicidade</div>

<div class="latest_news">

<p><img src="images/imgad.jpg" width="178" height="578" alt="Publicidade" /></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

</div>

<div class="margin_bottom_10"></div>

</div> <!-- end of right side bar -->

<div class="cleaner"></div>

</div> <!-- end of content wrapper -->

</div>

</div>

<div id="templatemo_footer">

Copyright © 2024 <a href="#">DarkSoft</a> | Designed by Cesar <a href="#" target="_parent">Corporation</a>

</div> <!-- end of footer -->

<div class="margin_bottom_10"></div>

<div class="content_section">

<center>

<a href="http://validator.w3.org/check?uri=referer"><img style="border:0;width:88px;height:31px" src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Transitional" width="88" height="31" vspace="8" border="0" /></a>

<a href="http://jigsaw.w3.org/css-validator/check/referer"><img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS!" vspace="8" border="0" /></a>

</center>

<div class="margin_bottom_10"></div>

</div>

</body>

</html>

<? echo $fet_busca['login];?>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

  • 0

faz uma alteração no principal.php adicione o que esta em negrito

Voce faz um sql para o login_usuario mas não pega ele de nenhum lugar..

o echo é só para mostrar o login

<?php

session_start();

include("config.php");

include("restrito.php");

$login_usuario = $_SESSION["login"];

echo "<br><b><i>Login atual : $login_usuario</i></b>";

$sql_busca = "SELECT * FROM user WHERE login = '$login_usuario'";

Link para o comentário
Compartilhar em outros sites

  • 0
faz uma alteração no principal.php adicione o que esta em negrito

Voce faz um sql para o login_usuario mas não pega ele de nenhum lugar..

o echo é só para mostrar o login

<?php

session_start();

include("config.php");

include("restrito.php");

$login_usuario = $_SESSION["login"];

echo "<br><b><i>Login atual : $login_usuario</i></b>";

$sql_busca = "SELECT * FROM user WHERE login = '$login_usuario'";

Funcionou bem era mesmo isso

obrigado

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
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...