PF2G Posted June 28, 2012 at 11:24 PM Report Share #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 Link to comment Share on other sites More sharing options...
Volans Posted June 29, 2012 at 01:29 AM Report Share #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 Link to comment Share on other sites More sharing options...
joaocasta Posted June 29, 2012 at 08:53 AM Report Share #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 Link to comment Share on other sites More sharing options...
Etiqueta Posted June 29, 2012 at 08:57 AM Report Share #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 Link to comment Share on other sites More sharing options...
MASNathan Posted June 29, 2012 at 09:08 AM Report Share #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? Link to comment Share on other sites More sharing options...
yoda Posted June 29, 2012 at 09:11 AM Report Share #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 Link to comment Share on other sites More sharing options...
joaocasta Posted June 29, 2012 at 09:14 AM Report Share #466346 Posted June 29, 2012 at 09:14 AM e ele também podia usar switch no menu nao acham? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 29, 2012 at 09:16 AM Report Share #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 Link to comment Share on other sites More sharing options...
joaocasta Posted June 29, 2012 at 09:18 AM Report Share #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... Link to comment Share on other sites More sharing options...
PF2G Posted June 29, 2012 at 09:56 AM Author Report Share #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 Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 29, 2012 at 10:03 AM Report Share #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 Link to comment Share on other sites More sharing options...
PF2G Posted June 29, 2012 at 10:09 AM Author Report Share #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? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 29, 2012 at 10:24 AM Report Share #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 Link to comment Share on other sites More sharing options...
Volans Posted June 29, 2012 at 11:24 AM Report Share #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 Link to comment Share on other sites More sharing options...
PF2G Posted June 29, 2012 at 11:29 AM Author Report Share #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... Link to comment Share on other sites More sharing options...
Volans Posted June 29, 2012 at 06:01 PM Report Share #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. Link to comment Share on other sites More sharing options...
PF2G Posted June 29, 2012 at 09:54 PM Author Report Share #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 Link to comment Share on other sites More sharing options...
joaocasta Posted June 29, 2012 at 10:01 PM Report Share #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? Link to comment Share on other sites More sharing options...
PF2G Posted June 29, 2012 at 10:07 PM Author Report Share #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 Link to comment Share on other sites More sharing options...
joaocasta Posted June 29, 2012 at 11:01 PM Report Share #466530 Posted June 29, 2012 at 11:01 PM não estou a ver o erro.... Link to comment Share on other sites More sharing options...
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