psan7os Posted January 31, 2013 at 11:16 AM Report #493693 Posted January 31, 2013 at 11:16 AM (edited) Boas pessoal preciso da vossa ajuda, estou a desenvolver um site, onde para aceder a certas áreas temos que ter registo, e temos que aceder através do login, a minha preocupação é que se o utilizador digitar a diretoria da parte do site que supostamente tem que ser protegida ele consegue entrar preciso mesmo da vossa ajuda, já me fartei de procurar mas encontro coisas diferentes em todo o lado e nada do que eu quero. Deixo-vos o meu sistema de login/registo para verem o que se pode fazer. <?php $ligacao = mysql_connect("localhost","root") or die ("Problemas na ligação ao MySql"); mysql_select_db("bdteste1",$ligacao); session_start(); session_name("login"); $nome1=10; $password1=11; $nome100="$_POST[username]"; $password100="$_POST[password]"; $seleccionar = "SELECT username, password FROM registo"; $nome = mysql_query ($seleccionar,$ligacao) or die ("Problemas a seleccionar"); $_SESSION['username']="$_POST[username]"; $_SESSION['password']="$_POST[password]"; while ($registo = mysql_fetch_row($nome)){ IF ($nome100==$registo[0]){ $nome1=$nome1+2; IF ($password100==$registo[1]){ $password1=$password1+1; } } } IF ($nome1==$password1){ header("location: /site/php/home.php"); } else echo ("<SCRIPT LANGUAGE='Javascript'> window.alert('Os dados introduzidos estão incorrectos, tente novamente.') window.location.href='../site/home.php'; </SCRIPT>"); mysql_close($ligacao); ?> <?php session_start(); $username = $_POST ["username"]; $password = $_POST["password"]; $nome = $_POST ["nome"]; $email = $_POST ["email"]; $morada = $_POST ["morada"]; $tlm = $_POST ["tlm"]; $newsletter = $_POST ["newsletter"]; $_SESSION['nome']="$_POST[nome]"; $conexao = mysql_connect("localhost","root"); if (!$conexao) die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error()); $banco = mysql_select_db("bdteste1",$conexao); if (!$banco) die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error()); $query = "INSERT INTO `registo` ( `username` , `password` , `nome` , `email` , `morada` , `tlm` , `newsletter`) VALUES ('$username', '$password', '$nome', '$email', '$morada', '$tlm', '$newsletter')"; mysql_query($query,$conexao); header("location: /site/home.php"); ?> Agradeço toda a ajuda 😉 Edited January 31, 2013 at 12:02 PM by yoda
HappyHippyHippo Posted January 31, 2013 at 12:26 PM Report #493701 Posted January 31, 2013 at 12:26 PM guardas em sessão um valor identificativo de quem se encontra autenticado, que ao sair é removido dessa forma consegues verificar em qualquer altura se existe alguém autenticado e quem. se não existir ninguém autenticado ou se não tiver permissão, fazes o que tens a fazer para prevenir o acesso aos dados IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
psan7os Posted January 31, 2013 at 02:28 PM Author Report #493714 Posted January 31, 2013 at 02:28 PM Guardo por exemplo o username e passo para a outra página? Depois faço um if de verificação? Se sim, o que é que verifico?
yoda Posted January 31, 2013 at 05:02 PM Report #493738 Posted January 31, 2013 at 05:02 PM Tens criado o $_SESSION['username'] que podes usar para verificar se o utilizador está logado ou não if (array_key_exists('username', $_SESSION) && $_SESSION['username'] != '') { echo 'user logado'; } else { echo 'sem sessão iniciada'; } before you post, what have you tried? - http://filipematias.info sense, purpose, direction
panickz Posted January 31, 2013 at 05:54 PM Report #493747 Posted January 31, 2013 at 05:54 PM Podes meter no $_POST["username"] e na password desta forma para prevenires SQL Injection vai funcionar igual é apenas mais uma segurança. $nome100=mysql_real_escape_string($_POST["username"]); Podes tambem contar com mysql_num_rows as linhas que existem
psan7os Posted February 1, 2013 at 07:05 PM Author Report #493854 Posted February 1, 2013 at 07:05 PM Obrigado pessoal, já consegui por o if a funcionar. Quanto à segurança, ao usar isto mysql_real_escape_string preciso de proteger a password também?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now