PF2G Posted June 28, 2012 at 11:24 PM Report #466314 Posted June 28, 2012 at 11:24 PM (edited) Boa noite, P@P Eu estou a fazer um website onde o utilizador faz login e aparece um 'Bem-Vindo, Nome_User', mas dá-me erro no $_SESSION['login']. index.php: <h2>Login</h2> <form method="POST" action="login.php"> <table> <tr> <td align="right"> Username: </td> <td width="10px"></td> <td> <input type="text" name="username"> </td> </tr> <tr height="10px"></tr> <tr> <td align="right"> Password: </td> <td width="10px"></td> <td> <input type="password" name="password"> </td> </tr> <tr> <td> <input type="submit" name="login" class="login" value="Login"> </td> </tr> </table> </form> login.php <?php if ($_POST['login']) { $username=$_POST['username']; $password=$_POST['password']; $query_user=mysql_query("SELECT * FROM metal_users WHERE username='"$username"'"); $user=mysql_fetch_assoc($query_user); if ($user['username']==$username && $user['password']==$password) { session_start(); $_SESSION["login"] = "YES"; } else { session_start(); $_SESSION["login"] = "NO"; header('Location: login_form.php'); } } ?> topo.php: <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22> <html xmlns="http://www.w3.org/1999/xhtml%22> <head> <title>Rock & Metal Worshipers</title> <meta http-equiv="X-UA-Compatible" content="IE=5, IE=8, IE=9, IE=10" > <meta name="keywords" content="" /> <meta name="description" content="" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="SHORTCUT ICON" href="images/icon.jpg"/> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="page"> <div id="logo"> <center><img src="images/header.jpg"></center> </div> <!---------------------------Menu---------------------------> <div id="menu"> <ul> <li><a href="index.php">Home</a></li> <li><a href="#">Quem Somos</a></li> <?php if ($_SESSION["login"] != "YES") { ?> <li><a href="register.php">Registar</a></li> <?php } else { ?> <li class="has-sub"><a href="#">Perfil</a> <ul> <li><a href="#">Resumo Perfil</a></li> <li><a href="#">Editar Perfil</a></li> <li><a href="#">Mensagens</a></li> </ul> </li> <?php } ?> (...) Aqui no topo, estou a tentar restringir algumas opções do menu, pois ha opções que so o utilizador logado pode aceder. Alguem me pode ajudar, sff? Obrigado, PF2G Edited June 28, 2012 at 11:24 PM by PF2G
Volans Posted June 29, 2012 at 01:29 AM Report #466325 Posted June 29, 2012 at 01:29 AM Estás à espera que adivinhemos em qual dos 3 ficheiros está a dar o erro? if ($user['username']==$username && $user['password']==$password) { session_start(); $_SESSION["login"] = "YES"; } else { session_start(); $_SESSION["login"] = "NO"; header('Location: login_form.php'); } } ?> Tu aqui devias utilizar apenas: If($user['username'] == $username && $user['password'] == $password) { session_start(); $_SESSION['login'] = "yes"; } else { header('Location: login_form.php'); } // Não há necessidade de estares a criar uma sessão para dizer que ele não está logado... isso já se sabe se a $_SESSION['login'] estiver definida. Depois quando fazes a restrição no menu faz, ao invés do que tens: if(isset($_SESSION['login']) && $_SESSION['login'] == 'yes') { // Menú para quem está logado. } else { // Menú para quem não está logado. } Tenta mudar essas coisas que eu disse e vê se dá em alguma coisa, se continuar a dar erro diz que erro é e onde é... Abraço
joaocasta Posted June 29, 2012 at 08:53 AM Report #466340 Posted June 29, 2012 at 08:53 AM (edited) e na pagina login.php tens isto: <?php if ($_POST['login']) { $username=$_POST['username']; $password=$_POST['password']; $query_user=mysql_query("SELECT * FROM metal_users WHERE username='"$username"'"); $user=mysql_fetch_assoc($query_user); if ($user['username']==$username && $user['password']==$password) { session_start(); $_SESSION["login"] = "YES"; } else { session_start(); $_SESSION["login"] = "NO"; header('Location: login_form.php'); } } ?> e devias ter isto: <?php if ($_POST['login']) { $username=$_POST['username']; $password=$_POST['password']; $query_user=mysql_query("SELECT * FROM metal_users WHERE username='".$username."'"); $user=mysql_fetch_assoc($query_user); if ($user['username']==$username && $user['password']==$password) { session_start(); $_SESSION["login"] = "YES"; } else { session_start(); $_SESSION["login"] = "NO"; header('Location: login_form.php'); } } ?> acho que é isto e o que o Volans te disse, pois se não puseres os pontos a dizer que aquilo é uma string(acho que é isto), dá-te este erro: Parse error: syntax error, unexpected '$username' (T_VARIABLE) in Edited June 29, 2012 at 08:56 AM by joaocasta
Etiqueta Posted June 29, 2012 at 08:57 AM Report #466341 Posted June 29, 2012 at 08:57 AM tens k ter algo do genero no topo das páginas para veres se tem a sessão inicializada ou não. <?php session_start(); if(count($_GET)==0){ unset($_SESSION['pesq']);// entrada na pagina pela 1 vez; unset( $_SESSION['nreg']); } ?> Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com
MASNathan Posted June 29, 2012 at 09:08 AM Report #466344 Posted June 29, 2012 at 09:08 AM tens k ter algo do genero no topo das páginas para veres se tem a sessão inicializada ou não. <?php session_start(); if(count($_GET)==0){ unset($_SESSION['pesq']);// entrada na pagina pela 1 vez; unset( $_SESSION['nreg']); } ?> Não estou bem a ver a cena... o $_GET só te vai dar alguma cena se tiveres alguma variável no url certo?
yoda Posted June 29, 2012 at 09:11 AM Report #466345 Posted June 29, 2012 at 09:11 AM Não estou bem a ver a cena... o $_GET só te vai dar alguma cena se tiveres alguma variável no url certo? Sim. Não é preciso usar o count, porém. if ($_GET) { before you post, what have you tried? - http://filipematias.info sense, purpose, direction
joaocasta Posted June 29, 2012 at 09:14 AM Report #466346 Posted June 29, 2012 at 09:14 AM e ele também podia usar switch no menu nao acham?
HappyHippyHippo Posted June 29, 2012 at 09:16 AM Report #466348 Posted June 29, 2012 at 09:16 AM (edited) porque raio todos os teus post são como o texto seguinte: Quero ajuda porque tenho um carro que não arranca. aqui está o carro: - é vermelho - tem 5 portas - um motor - um volante - etc, - etc, - etc, - etc, - etc, - etc, (até ao infinito) !!!! se dá um erro por amor de deus diz qual é !!!!! Edited June 29, 2012 at 09:17 AM by HappyHippyHippo 2 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
joaocasta Posted June 29, 2012 at 09:18 AM Report #466349 Posted June 29, 2012 at 09:18 AM Sem nos dizeres onde fica o erro: $_SESSION['login'], nao conseguimos adivinhar, tenta detalhar os teus problemas...
PF2G Posted June 29, 2012 at 09:56 AM Author Report #466368 Posted June 29, 2012 at 09:56 AM (edited) O erro dá-me no topo.php (onde está o menu) e no index.php () onde está o form de login. PS:Ainda não experimentei nada do que disseram, pq não tenho possibilidade neste momento. Mas quando o fizer deixo o feedback... Edited June 29, 2012 at 09:57 AM by PF2G
HappyHippyHippo Posted June 29, 2012 at 10:03 AM Report #466373 Posted June 29, 2012 at 10:03 AM O erro dá-me no topo.php (onde está o menu) e no index.php () onde está o form de login. PS:Ainda não experimentei nada do que disseram, pq não tenho possibilidade neste momento. Mas quando o fizer deixo o feedback... EM QUE SCRIPT DÁ O ERRO JÁ TU O DISSESTE .... O QUE É NECESSÁRIO DIZER É EM QUE LINHA E QUAL O ERRO !!!! IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
PF2G Posted June 29, 2012 at 10:09 AM Author Report #466376 Posted June 29, 2012 at 10:09 AM Sabes ler moço? o erro é no $_SESSION, ainda agora disse que era no menu(topo.php) e no formulário do login(index.php). QUE QUERES MAIS?
HappyHippyHippo Posted June 29, 2012 at 10:24 AM Report #466382 Posted June 29, 2012 at 10:24 AM será que o bold não é suficiente ?? - número da linha do erro - qual a mensagem de erro duas pequenas coisas, muito simples ... 2 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Volans Posted June 29, 2012 at 11:24 AM Report #466407 Posted June 29, 2012 at 11:24 AM PF2G é tipo isto que tens que nos dizer: Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in C:\xampp\htdocs\exemplo_erro.php on line 3
PF2G Posted June 29, 2012 at 11:29 AM Author Report #466408 Posted June 29, 2012 at 11:29 AM Ya, eu sei. Só que neste momento não tenho o projecto comigo... :S Por isso é que disse que quando tiver oportunidade dava feedback...
Volans Posted June 29, 2012 at 06:01 PM Report #466486 Posted June 29, 2012 at 06:01 PM Então, em vez de nos teres feito a todos perder tempo a procurar uma solução para um erro que nem conhecíamos podias esperar que tivesses o projeto contigo e depois sim, criavas o tópico com a informação exata sobre o erro. Cumprimentos.
PF2G Posted June 29, 2012 at 09:54 PM Author Report #466521 Posted June 29, 2012 at 09:54 PM (edited) Boa noite, já tenho o codigo +/- direito... login.php <?php // Check if username and password are correct if ($_POST['login']) { $username=$_POST['username']; $password=$_POST['password']; $query_user=mysql_query("SELECT * FROM metal_users WHERE username='".$username."'"); $user=mysql_fetch_assoc($query_user); if($user['username'] == $username && $user['password'] == $password) { session_start(); $_SESSION['login'] = "yes"; } else { header('Location: login_form.php'); } } ?> index.php <?php if(isset($_SESSION['login']) && $_SESSION['login'] == 'yes') { $query_username=mysql_query("SELECT * FROM metal_users WHERE id_user='".$_SESSIO['login']."'"); $username=mysql_fetch_assoc($query_username); ?> <h2>Utilizador</h2> <table> <tr> <td align="right"> Bem-Vindo, <?php echo $username['username']; ?> </td> </tr> <tr height="10px"></tr> <tr> <img src="<?php echo $username['avatar']; ?>"> </tr> </table> <?php } else { ?> <h2>Login</h2> <form method="POST" action="login.php"> <table> <tr> <td align="right"> Username: </td> <td width="10px"></td> <td> <input type="text" name="username"> </td> </tr> <tr height="10px"></tr> <tr> <td align="right"> Password: </td> <td width="10px"></td> <td> <input type="password" name="password"> </td> </tr> <tr> <td> <input type="submit" name="login" class="login" value="Login"> </td> </tr> </table> </form> <?php ;} ?> O que me está a acontecer é sempre que faço login ele vai-me para o login_form.php, ou seja assume que o utilizador não existe... Alguem me pode ajudar? Obrigado, PF2G Edited June 29, 2012 at 09:59 PM by PF2G
joaocasta Posted June 29, 2012 at 10:01 PM Report #466524 Posted June 29, 2012 at 10:01 PM tens aqui um erro: <?php if(isset($_SESSION['login']) && $_SESSION['login'] == 'yes') { $query_username=mysql_query("SELECT * FROM metal_users WHERE id_user='".$_SESSIO['login']."'"); $username=mysql_fetch_assoc($query_username); $_SESSIO['login'] ??? nao será $_SESSION?
PF2G Posted June 29, 2012 at 10:07 PM Author Report #466525 Posted June 29, 2012 at 10:07 PM tens aqui um erro: <?php if(isset($_SESSION['login']) && $_SESSION['login'] == 'yes') { $query_username=mysql_query("SELECT * FROM metal_users WHERE id_user='".$_SESSIO['login']."'"); $username=mysql_fetch_assoc($query_username); $_SESSIO['login'] ??? nao será $_SESSION? LOL enganei-me. Mas não resolve o problema xP
joaocasta Posted June 29, 2012 at 11:01 PM Report #466530 Posted June 29, 2012 at 11:01 PM não estou a ver o erro....
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