PF2G Posted August 9, 2012 at 11:55 AM Report Share #471819 Posted August 9, 2012 at 11:55 AM Boas, Eu estou a ter problemas com o $_SESSION, pq quando faço login no index, é suposto aparecer o nome do user. O que estou a fazer mal? login_code.php <?php include 'require/db_connect.php'; if (isset($_POST['login'])){ $username=$_POST['username']; $password=$_POST['password']; $sql="SELECT * FROM civil_users WHERE nif_user='$username' and password_user='$password'"; $result=mysql_query($sql, $connect) or die(mysql_error()); $count=mysql_num_rows($result); if($count==1){ $_SESSION['user']=$username; header("location:index.php"); } else { echo "Wrong Username or Password"; } } ?> index.php <?php echo $_SESSION['user']; die; if (isset($_SESSION['user'])){ //select NIF $select_nif="SELECT * WHERE nif_user='".$_SESSION['user']."'"; $query_nif=mysql_query($select_nif, $connect) or die(mysql_error()); $nif=mysql_fetch_assoc($query_nif); //end select NIF ?> <div id="id_number"> <div id="id_txt"> ID: </div> <div id="numbers"> <?php echo $nif['nif_user']; ?> </div> </div> <?php } else{ echo 'NAO FUNCIONA BITHC<BR/>DAMN IT'; } ?> Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 12:00 PM Report Share #471820 Posted August 9, 2012 at 12:00 PM não vejo a chamada à função session_start em nenhum dos ficheiros ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
PF2G Posted August 9, 2012 at 12:46 PM Author Report Share #471822 Posted August 9, 2012 at 12:46 PM Exato, distracção minha... Agora dá-me este erro: Notice: Undefined index: user in C:\wamp\www\infocar\index.php on line 23 Link to comment Share on other sites More sharing options...
pikax Posted August 9, 2012 at 01:11 PM Report Share #471824 Posted August 9, 2012 at 01:11 PM tens primeiro que atribuir um valor ao array antes de tentar aceder Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 01:14 PM Report Share #471826 Posted August 9, 2012 at 01:14 PM tinhas o código correto mas o que fizeste para testar é que tem erro echo $_SESSION['user']; die; if (isset($_SESSION['user'])){ // <- só aqui é que estás a verificar a existência do elemento do array IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
PF2G Posted August 9, 2012 at 01:14 PM Author Report Share #471827 Posted August 9, 2012 at 01:14 PM tens primeiro que atribuir um valor ao array antes de tentar aceder Desta maneira: <?php (...) if($count==1){ $username=$_SESSION['user']; header("location:index.php"); } else { echo "Wrong Username or Password"; } } ?> Link to comment Share on other sites More sharing options...
PF2G Posted August 9, 2012 at 01:52 PM Author Report Share #471838 Posted August 9, 2012 at 01:52 PM tinhas o código correto mas o que fizeste para testar é que tem erro echo $_SESSION['user']; die; if (isset($_SESSION['user'])){ // <- só aqui é que estás a verificar a existência do elemento do array Como faço entao, Hippy? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 01:53 PM Report Share #471839 Posted August 9, 2012 at 01:53 PM tira as primeiras duas linhas que não fazem nada IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
PF2G Posted August 9, 2012 at 01:57 PM Author Report Share #471841 Posted August 9, 2012 at 01:57 PM Este é o codigo alterado: <?php if (isset($_SESSION['username'])){ ?> <div id="top_spliter_div"> <div id="id_number"> <div id="id_txt"> ID: </div> <div id="numbers"> 123456789 </div> </div> <!--#### botao logout ####--> <div id="button_div"> <div id="button_logout"> <div id="button_text"> <a href="#">Logout</a> </div> </div> </div> <!-- ####################--> </div> <?php } else{ echo 'NAO ENTREI'; } ?> E ele dá-me: NAO ENTREI Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 02:02 PM Report Share #471845 Posted August 9, 2012 at 02:02 PM tens o session_start nesse script também ?? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
PF2G Posted August 9, 2012 at 02:04 PM Author Report Share #471847 Posted August 9, 2012 at 02:04 PM Sim, tenho: <?php include 'require/db_connect.php'; session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>infoCAR</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div id="header"> <div id="header_container"> <?php if (isset($_SESSION['username'])){ ?> (...) Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 02:12 PM Report Share #471850 Posted August 9, 2012 at 02:12 PM 1º - este é o teu código onde gravas o id do utilizador autenticado $_SESSION['user']=$username; e este é o código de verificação se o utilizador se encontra autenticado if (isset($_SESSION['username'])){ 2º - a chamada à função session_start() deverá sempre a primeira coisa que fazes, eu não faço ideia e o script "require/db_connect.php" está a fazer algum output invalidando a chamada. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
PF2G Posted August 9, 2012 at 02:22 PM Author Report Share #471855 Posted August 9, 2012 at 02:22 PM Os scripts ja alterei, e acontece a mesma coisa. Não percebi a parte do include("require/db_connect.php")... Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 02:29 PM Report Share #471860 Posted August 9, 2012 at 02:29 PM Os scripts ja alterei, e acontece a mesma coisa. como alteraste o script ? meteste rodinhas de lado para ver se não cai ? espera, acho que isso é noutro brinquedo ... Não percebi a parte do include("require/db_connect.php")... como diz na documentação, a chamada session_start deverá ser efetuada antes de qualquer output do PHP, isto porque necessita de alterar o header da resposta. se por alguma razão existir esse output, a chamada da função session_start falha IRC : sim, é algo que ainda existe >> #p@p Portugol Plus 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