MadPatryk 0 Denunciar post Postado Janeiro 14, 2005 tipo galera, eu to com um script de login aki... mas tipo, na hora da verificação com o bd, eu to com problemas... eh ki na hora de validar, eu soh to conseguindo validar ou se o usuário existe ou nao na table, ou se a senha pro user eh valida... eu ja tentei de tudo!!! to kebrando o coco aki!!! segue ai o script... quem puder me ajudar!!! index.php PHP [/tr][tr]<? ob_start(); session_start("iLogin"); include "config.php"; if ($id == "login") { if ($_POST[login] == "" or $_POST[senha] == "") { header("location:$PHP_SELF?id=blank_fields"); } else { $con=pg_pconnect("host=$hostdb dbname=$banco user=$userdb"); $sql="select * from $table WHERE login='$login' and senha='$senha'"; $result=pg_query($sql); $linhas=pg_num_rows($result); for($x=0;$x<$linhas;$x++) { $id=pg_fetch_result($result,$x,0); $login_bd=pg_fetch_result($result,$x,1); $senha_bd=pg_fetch_result($result,$x,2); $acc_type=pg_fetch_result($result,$x,3); if ($login==$login_bd AND $senha==$senha_bd) { session_name(); session_destroy(); session_register("login","senha","acc_type"); //Registra as variáveis na sessão header("Location:$pagina"); //Redireciono para a página principal exit; } } } if ($linhas != 0) { if ($_POST[senha] != $senha_bd) header("location:$PHP_SELF?id=pass_error"); } else { header("location:$PHP_SELF?id=login_error"); } } // Switch com as variaveis pros links $id... switch ($id) { case"login_error": echo "<center><b>Usuário Inválido!</b></center>"; break; case"pass_error": echo "<center><b>Senha Inválida!</b></center>"; break; case"full_error": // esse case aki echo "<center><b>Usuário e Senha Inválidos!</b></center>"; // eu nao to usando break; // mas acho ki pretendo usar... :P case"blank_fields": echo "<center><b>Ambos os campos são obrigatórios por favor preenche-os</b></center>"; break; case"logout": session_destroy(); print <<<HTML <center>Sessão Finalizada<p> <a href="#" onClick="location='index.php'" style="text-decoration:none">Voltar</a> </center> HTML; exit; break; } if(!(session_is_registered("login") AND session_is_registered("senha"))) { print <<<HTML <br> <center> Preencha os campos abaixo: <FORM ACTION="$PHP_SELF?id=login" method=post> Login: <INPUT TYPE=text NAME=login value=""><br> Senha: <INPUT TYPE=password NAME=senha value=""><br><br> <input type=submit value="Ingressar"> </FORM> </center> HTML; exit; } else { header("Location:$pagina"); } ob_end_flush(); ?> [/tr] valeus! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 15, 2005 Ola amigo, eu dei umas dicas pra você nesse script tenta fazer caso nao consiga ou der erro posta ai ob_start(); //use session_start() session_start("iLogin"); //nao inclua a conexao assim abra uma conexao com o banco de dados só na hora de usar e feche em seguida include "config.php"; // de onde vem essa $id ? use $_GET["id"] e você primeiro tem que testar se existe ela com isset() if ($id == "login") { //aqui você esqueceu das aspas $_POST["login"] e $_POST["senha"] if ($_POST[login] == "" or $_POST[senha] == "") { //aqui você esta usando uma variavel que ficou obsoleta use no lugar a $_SERVER["PHP_SELF"] header("location:$PHP_SELF?id=blank_fields"); } else { $con = pg_pconnect("host=$hostdb dbname=$banco user=$userdb"); // aqui esta sem segurança nenhuma só usar um sql injection que qualquer um entra no seu site //procure filtrar os dados e passar por parametros,e criptografar a senha com md5 //e use esse tipo de busca ela é mais rapida nesse caso e o mais correto veja: $re = pg_query("select count(*) as total from $table WHERE login='$login' and senha='$senha'"); $linhas = pg_fetch_result($re, 0, "total"); if ($total != 0) { //aqui use as variaveis de sessao aquelas que você tava usando estao obsoletas $_SESSION["login"] = $login; $_SESSION["senha"] = $senha; //daonde esta vindo a $pagina? pegue ela com $_POST ou $_GET se for get header("Location:$pagina"); exit; } } } if ($linhas == 0) { //aspas $_POST["senha"] e use $_SERVER["PHP_SELF"]// aqui prefira destruir a sessao em vez de setar o id if ($_POST[senha] != $senha_bd) header("location:$PHP_SELF?id=pass_error"); } else { //use $_SERVER["PHP_SELF"] e nao sete o id assim e redirecione pra uma pagina apropriada header("location:$PHP_SELF?id=login_error"); } } //aqui pega o $id com $_GET["id"] switch ($id) { case"login_error": echo " Usuário Inválido!";break; case"pass_error": echo " Senha Inválida!";break; case"full_error": // esse case aki echo " Usuário e Senha Inválidos!"; // eu nao to usandobreak; // mas acho ki pretendo usar... case"blank_fields": echo " Ambos os campos são obrigatórios por favor preenche-os";break; case"logout": session_destroy(); print Sessão Finalizada Voltar HTML; exit; break; } //nao use essas variaveis use $_SESSION["login"] if(!(session_is_registered("login") AND session_is_registered("senha"))) { print Preencha os campos abaixo: Login: Senha: HTML; exit; } else { header("Location:$pagina"); } ob_end_flush(); ?> Compartilhar este post Link para o post Compartilhar em outros sites
MadPatryk 0 Denunciar post Postado Janeiro 15, 2005 po, valeu fabyo!vo testar aki tio!!!braça! Compartilhar este post Link para o post Compartilhar em outros sites
MadPatryk 0 Denunciar post Postado Janeiro 15, 2005 eu fiz uq c disse... mas num funfou... :( !!!! deu a mesma coisa... ve ai como ficou: PHP [/tr][tr]<? ob_start(); session_start("iLogin"); include "config.php"; if ($_GET["id"] == "login") { if ($_POST["login"] == "" or $_POST["senha"] == "") { header("location:$_SERVER[php_SELF]?id=blank_fields"); } else { $con=pg_pconnect("host=$hostdb dbname=$banco user=$userdb"); $re = pg_query("select count(*) as total from $table WHERE login='$login' and senha='$senha'"); $linhas = pg_fetch_result($re, 0, "total"); if ($total != 0) { //aqui use as variaveis de sessao aquelas que você tava usando estao obsoletas $_SESSION["login"] = $login; $_SESSION["senha"] = $senha; //daonde esta vindo a $pagina? pegue ela com $_POST ou $_GET se for get header("Location:$pagina"); exit; } } } if ($linhas == 0) { //aspas $_POST["senha"] e use $_SERVER["PHP_SELF"]// aqui prefira destruir a sessao em vez de setar o id if ($_POST["senha"] != $senha_bd) header("location:$_SERVER[php_SELF]?id=pass_error"); } else { //use $_SERVER["PHP_SELF"] e nao sete o id assim e redirecione pra uma pagina apropriada header("location:$_SERVER[php_SELF]?id=login_error"); } // Switch com as variaveis pros links $id... switch ($_GET["id"]) { case"login_error": echo "<center><b>Usuário Inválido!</b></center>"; break; case"pass_error": echo "<center><b>Senha Inválida!</b></center>"; break; case"full_error": // esse case aki echo "<center><b>Usuário e Senha Inválidos!</b></center>"; // eu nao to usando break; // mas acho ki pretendo usar... :P case"blank_fields": echo "<center><b>Ambos os campos são obrigatórios por favor preenche-os</b></center>"; break; case"logout": session_destroy(); print <<<HTML <center>Sessão Finalizada<p> <a href="#" onClick="location='index.php'" style="text-decoration:none">Voltar</a> </center> HTML; exit; break; } if(!($_SESSION["login"] AND $_SESSION["senha"])) { print <<<HTML <br> <center> Preencha os campos abaixo: <FORM ACTION="$_SERVER[php_SELF]?id=login" method=post> Login: <INPUT TYPE=text NAME=login value=""><br> Senha: <INPUT TYPE=password NAME=senha value=""><br><br> <input type=submit value="Ingressar"> </FORM> </center> HTML; exit; } else { header("Location:$pagina"); } ob_end_flush(); ?> [/tr] valeus! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 15, 2005 vamos por partes pega todas variaveis primeiro exemplo: $pagina = $_POST["pagina"];$login = $_POST["login"]; $senha = $_POST["senha"]; e nessa parte faz assim: header("location: ".$_SERVER["PHP_SELF"]."?id=blank_fields"); Compartilhar este post Link para o post Compartilhar em outros sites
MadPatryk 0 Denunciar post Postado Janeiro 15, 2005 ok! ;-) tipo, eu entendi mais ou menos... ve ai como ficou... PHP [/tr][tr]<? ob_start(); session_start("iLogin"); include "config.php"; $id = $_GET["id"]; $login = $_POST["login"]; $senha = $_POST["senha"]; $self = $_SERVER["PHP_SELF"]; if ($id == "login") { if ($login == "" or $senha == "") { header("location:".$_SERVER["PHP_SELF"]."??id=blank_fields"); } else { $con=pg_pconnect("host=$hostdb dbname=$banco user=$userdb"); $re = pg_query("select count(*) as total from $table WHERE login='$login' and senha='$senha'"); $linhas = pg_fetch_result($re, 0, "total"); if ($total != 0) { //aqui use as variaveis de sessao aquelas que você tava usando estao obsoletas $_SESSION["login"] = $login_bd; $_SESSION["senha"] = $senha_bd; //daonde esta vindo a $pagina? pegue ela com $_POST ou $_GET se for get header("Location:$pagina"); exit; } } } if ($linhas == 0) { //aspas $_POST["senha"] e use $_SERVER["PHP_SELF"]// aqui prefira destruir a sessao em vez de setar o id if ($_POST["senha"] != $senha_bd) header("location:".$_SERVER["PHP_SELF"]."?id=pass_error"); } else { //use $_SERVER["PHP_SELF"] e nao sete o id assim e redirecione pra uma pagina apropriada header("location:".$_SERVER["PHP_SELF"]."?id=login_error"); } // Switch com as variaveis pros links $id... switch ($id) { case"login_error": echo "<center><b>Usuário Inválido!</b></center>"; break; case"pass_error": echo "<center><b>Senha Inválida!</b></center>"; break; case"full_error": // esse case aki echo "<center><b>Usuário e Senha Inválidos!</b></center>"; // eu nao to usando break; // mas acho ki pretendo usar... :P case"blank_fields": echo "<center><b>Ambos os campos são obrigatórios por favor preenche-os</b></center>"; break; case"logout": session_destroy(); print <<<HTML <center>Sessão Finalizada<p> <a href="#" onClick="location='index.php'" style="text-decoration:none">Voltar</a> </center> HTML; exit; break; } if(!($_SESSION["login"] AND $_SESSION["senha"])) { print <<<HTML <br> <center> Preencha os campos abaixo: <FORM ACTION="$self?id=login" method=post> Login: <INPUT TYPE=text NAME=login value=""><br> Senha: <INPUT TYPE=password NAME=senha value=""><br><br> <input type=submit value="Ingressar"> </FORM> </center> HTML; exit; } else { header("Location:$pagina"); } ob_end_flush(); ?> [/tr] tipo, o $pagina eu nao acho ki seja necessario mexer, pois eu nao to tendo problemas com ele... mas ele eh _POST... valeus! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 16, 2005 você deve estar usando register_globals = on mas use ele em off é melhor pra segurança e dai pegue a $pagina tbm com $_GET["pagina"] agora me fala que erro que ta dando? Compartilhar este post Link para o post Compartilhar em outros sites
MadPatryk 0 Denunciar post Postado Janeiro 16, 2005 putz... agora, além de continuar com o erro, ele nao deixa logar nem com o user certo e a senha certa... acho ki essa segurança do script ficou forte demais!!! hauhauhau heheheagora serio...poutz kra... ta sinistro!!!tipo, te falar... c(ou o pessoal ai!) nao conhece(m) um exemplo simples, de um script ja pronto nao?valeus! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 16, 2005 Amigo o que ta acontecendo é que você nao ta entendendo como fazer isso mas eu fiz um script e ve se você consegue entender eu testei com o mysql, mas só você mudar pro postgre index.html <script language="javascript"> function checa_formulario(login){ if (login.nome.value == ""){ alert("Nao deixe o nome em branco"); login.nome.focus(); return (false); } if (login.senha.value == ""){ alert("Nao deixe a senha em branco!!!"); login.senha.focus(); return (false); } } .campo { width:240px; border:1px solid #036; padding:0; /* Eliminar espaçamento no Firefox */ } .formulario{ position: relative; font-family: Arial, Helvetica, sans-serif; font-size:12px; color:#036; } .news { font-family: Arial, Helvetica, sans-serif; font-size:12px; color:white; padding:2px 5px; font-weight:bold; letter-spacing:5px; text-align:center; background-color:red; border:1px solid #036; } .botao { font-family: Arial, Helvetica, sans-serif; font-size:12px; color:#fff; font-weight:bold; background-color:red; margin:20px 0 5px 5px; cursor: pointer ; } Login Nome: Senha: login.php: session_start(); if(isset($_POST)){ $nome = strip_tags($_POST["nome"]); $senha = strip_tags($_POST["senha"]); } //conexao com seu banco; $re = mysql_query("select count(*) as total from tabela where nome = '$nome' and senha = md5('$senha')"); $total = mysql_result($re, 0, "total"); if ($total == 0) { echo "Usuario nao cadastrado"; exit; } else{ $_SESSION['nome'] = $nome; $_SESSION['senha'] = $senha; header("Location: principal.php"); } ?> principal.php: session_start(); //verifica se a sessao foi criada if(isset($_SESSION)){ $nome = $_SESSION["nome"]; $senha = $_SESSION["senha"]; } else{ //senao ele volta pra pagina de login header("Location: index.html"); exit; } //conexao com seu banco; $re = mysql_query("select count(*) as total from tabela where nome = '$nome' and senha = md5('$senha')"); $total = mysql_result($re, 0, "total"); //se o usuario nao esta no banco volta pra pagina de login if ($total == 0) { header("Location: index.html"); exit; } //se esta tudo certo abre a pagina else{ echo "Bem-vindo"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
MadPatryk 0 Denunciar post Postado Janeiro 17, 2005 valeus vou testar aki ;-) Compartilhar este post Link para o post Compartilhar em outros sites
MadPatryk 0 Denunciar post Postado Janeiro 17, 2005 kra... incrivel mas... seu script deu o mesmo erro ki o meu ta dando!!!nussta sinistro... vo continuar kebrando o coco aki...valeus! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 17, 2005 mas é só achar o erro e arrumar, que erro que da? Compartilhar este post Link para o post Compartilhar em outros sites
MadPatryk 0 Denunciar post Postado Janeiro 17, 2005 mesma coisa ki o meu erro... na hora de validar, eu soh to conseguindo validar ou se o usuário existe ou nao na table, ou se a senha pro user eh valida... valeus! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 17, 2005 se ta usando o exemplo acima com senha md5()? se tiver a senha no banco tbm tem que ta com md5 Compartilhar este post Link para o post Compartilhar em outros sites
MadPatryk 0 Denunciar post Postado Janeiro 17, 2005 ela ta encriptada com o encrypt do mysql...mas tipo... nada haver(por partes)... prq se fosse assim, o script nao retornaria dizendo ki o usuário nao existe, sendo ki ele existe...sacou?dai ki ta f******!!! hehehevaleus! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 18, 2005 Amigo esse sistema é muito simples mas primeiro você precisa entender como ele funciona por exemplo quando você digita no form nome e senha e clica em enviar os dados vao pra outra pagina dai você pega os dados com $_POST dai só fazer um select simples SELECT * FROM tabela WHERE nome = '$nome' and senha = '$senha' traduzindo: SELECIONE TUDO da tabela aonde nome = $nome e senha = $senha se a pessoa digitou certo vai dar certo agora o que você precisa fazer é prender a testar seu codigo teste os dados vindos do post verifique se esta pegando certo entre no administrador de banco e faça um select por la pra testar e por ai vai ate você descobrir aonde esta o erro Compartilhar este post Link para o post Compartilhar em outros sites