[ nordica @ 21.03.2007. 17:45 ] @
Imam kod kojim koristim za proveru logovanja korisnika, medjutim ne kreira mi se sesija iz prvog puta i nije mi jasno zasto. Verovatno je previd ili sam negde nesto bas zeznuo. Code: <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Administracija</title> </head> <body> <?php function prikaziFormu() { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="logForm"> <table width="300px"> <tr> <td>Korisničko ime:</td> <td><input name="username" type="text" class="textbox" id="username"></td> </tr> <tr> <td>Šifra:</td> <td><input name="pass" type="password" class="textbox" id="pass"></td> </tr> <tr> <td colspan="2"> <INPUT TYPE="HIDDEN" NAME="akcija" VALUE="login"> <input name="Submit" type="submit" value="prijavi se" class="button"> </td> </tr> </table> </form><?php }//end prikaziFormu function provera() { $username = $_POST['username']; $pass = $_POST['pass']; //povezivanje na bazu $result = mysql_query("SELECT userpass FROM user WHERE username='$username'",$conn); if (!$result) die ("Došlo je do greške."); $query_data = mysql_fetch_row($result); if ($query_data[0]==$pass){//ako uneshena sifra odgovara sifri u bazi $_SESSION['username'] = $_POST['username']; return 1; }//end if else{ return 2; } }//kraj funckije provera() ?> <div id="wrapper"> <div id="header"> <div id="topmenu"><h1>Administracija</h1></div> </div> <div id="body2"> <div id="innerbody"> <div id="leftcol"><?php if (isset($_POST['akcija']) && $_POST['akcija']=="login") { $_SESSION['ulogovan'] = provera(); } if (isset($_SESSION['ulogovan']) && $_SESSION['ulogovan']==1){ include ('menu.php'); } ?> </div><!--end leftcol--> <div id="centercol"> <div id="centercontent2"><?php if (isset($_SESSION['ulogovan']) && $_SESSION['ulogovan']==1){ echo '<p>Izaberite opciju iz menija sa leve strane.</p>'; } else { prikaziFormu(); if (isset($_SESSION['ulogovan']) && $_SESSION['ulogovan']==2) echo "<p>Greška prilikom pokušaja pristupa. Molimo Vas da ponovite proceduru.</p>"; } ?> </div><!--end centercontent2--> </div><!--end centercol--> <div class="clear"></div> </div><?php //kraj innerbody ?> </div><!--end body2--> </div> </body> </html> Naime sta se desava. Proveri mi user i pass i ako je ok, on mi prikazi meni i poruku da izaberem iz menija sta zelim. medjutim, ako kliknem na bilo koji link i udjem na stranu gde se provera vrednost $_SESSION['ulogovan'] da li je 1 dobijam poruku da nisam ulogovan. proveravajuci ustanovio sam da sesija nije ni kreirana. ako se onda ulogujem ponovo onda je sve u redu. znaci, svaki put moram da se logujem 2 puta. sta gresim??? |