groenlid Skrevet 10. juni 2006 Del Skrevet 10. juni 2006 (endret) har prøvd en tid nå å kode et innloggingssystem. har kikket over samtlige tutorials på nettet og lignende, og det meste går greit. Men har et problem. Får ikke sjekket om session er satt eller ikke. Her er en liten del av koden som setter sessionen:login_do.php Skjult tekst: (Marker innholdet i feltet for å se teksten): session_start(); session_register("brukernavn"); session_register("passord"); header("location:enellerannenside.php"); Her er siden som skal vises hvis man er logget inn: Skjult tekst: (Marker innholdet i feltet for å se teksten): <? session_start(); if(!session_is_registered(,brukernavn)){ header("location:login.php"); } <html> <body> blablablasodjaoisjfdoasijoid </body> </html> ?> Endret 11. juni 2006 av groenlid Lenke til kommentar
groenlid Skrevet 10. juni 2006 Forfatter Del Skrevet 10. juni 2006 kan det ha noe med innstillingene på serveren å gjøre eller bare en feil i scriptet?? mest sannsynlig det siste Lenke til kommentar
bragoon Skrevet 10. juni 2006 Del Skrevet 10. juni 2006 er anbefalt å bruke $_SESSION[] - taballen i stedet for session_register: http://no.php.net/manual/en/function.session-register.php Får da: session_start(); $_SESSION['brukernavn'] =$brukernavn; $_SESSION['passord'] =$passord; header("location:enellerannenside.php"); og <? session_start(); if(!$_SESSION['brukernavn']){ header("location:login.php"); } <html> <body> blablablasodjaoisjfdoasijoid </body> </html> ?> Grunnen skal være at session_register krever register_globals on, noe som ikke er anbefalt. Driver og jobber med sessions jeg også nå, og hadde et ganske likt problem. Men når jeg bruker $_SESSION-tabellen har jeg ikke fått noen problem. Har ikke testa koden over, men tror det virker. Lenke til kommentar
ZoRaC Skrevet 10. juni 2006 Del Skrevet 10. juni 2006 Bruker if (session_is_registered("loggedin")) { } i et script jeg har og det funker med register_globals=off... Lenke til kommentar
groenlid Skrevet 10. juni 2006 Forfatter Del Skrevet 10. juni 2006 hmm. funker fortsatt ikke... skjønner ikke hva det kan være? Lenke til kommentar
dabear Skrevet 11. juni 2006 Del Skrevet 11. juni 2006 Gi oss kildekoden til den som du bruker nå. Sørg for å ikke ha noe output til nettleser før du start sesjonen Lenke til kommentar
groenlid Skrevet 11. juni 2006 Forfatter Del Skrevet 11. juni 2006 (endret) har satt session_start(); først. Kildekoder: innlogging.php Skjult tekst: (Marker innholdet i feltet for å se teksten): <table width="300"> <tr> <td height="80"></td> </tr> <tr> <form name="form1" method="post" action="checklogin.php"> <td> <table width="100%"> <tr> <td colspan="3"></td> </tr> <tr> <td width="78"><h6>Brukernavn</h6></td> <td width="6">:</td> <td width="294"><input name="brukernavn" type="text" id="brukernavn"></td> </tr> <tr> <td><h6>Passord</h6></td> <td>:</td> <td><input name="passord" type="password" id="passord"></td> </tr> <tr> <td> </td> <td> </td> <td><input type="submit" name="Submit" value="Login" class="submit"></td> </tr> </table></td> </form> </tr> </table> checklogin.php Skjult tekst: (Marker innholdet i feltet for å se teksten): <?php session_start(); include ("xxx/config.php"); // Connect to server and select databse. mysql_connect("$server", "$brukernavn", "$passord")or die("KAN IKKE KOBLE SEG TIL DATABASE"); mysql_select_db("$database")or die("KAN IKKE VELGE DATABASE"); $brukernavn = $_POST['brukernavn']; $passord = $_POST['passord']; $sql="SELECT * FROM $tabell WHERE navn='$brukernavn' and pass='$passord'"; $result=mysql_query($sql); $count=mysql_num_rows($result); if($count==1){ $_SESSION['brukernavn'] = $brukernavn; $_SESSION['passord'] = $passord; header("location:login_success.php"); } else { echo "<center>Feil Brukernavn eller Passord</center>"; } //ER LITT USIKKER PÅ DENNE: ob_end_flush(); ?> login_success.php Skjult tekst: (Marker innholdet i feltet for å se teksten): <?php session_start(); if(!$_SESSION['brukernavn']){ header("location:innlogging.php"); } ?> <html> <body> Login Successful </body> </html> Endret 11. juni 2006 av groenlid Lenke til kommentar
930A0029225AA4C28B8EF095B679285EAAE27078 Skrevet 11. juni 2006 Del Skrevet 11. juni 2006 (endret) Kildekoder: innlogging.php Skjult tekst: (Marker innholdet i feltet for å se teksten): <table width="300"> <tr> <td height="80"></td> </tr> <tr> <form name="form1" method="post" action="checklogin.php"> <td> <table width="100%"> <tr> <td colspan="3"></td> </tr> <tr> <td width="78"><h6>Brukernavn</h6></td> <td width="6">:</td> <td width="294"><input name="login_username" type="text"></td> </tr> <tr> <td><h6>Passord</h6></td> <td>:</td> <td><input name="login_password" type="password" ></td> </tr> <tr> <td> </td> <td> </td> <td><input type="submit" name="login_do" value="Login" class="submit"></td> </tr> </table></td> </form> </tr> </table> checklogin.php Skjult tekst: (Marker innholdet i feltet for å se teksten): <?php session_start(); include ("xxx/config.php"); // Connect to server and select databse. mysql_connect("$server", "$brukernavn", "$passord") or die("Cannot connect to DB"); mysql_select_db("$database") or die("Cannot select database!"); if(isset($_POST['login_do'])) { $username = $_POST['login_username']; $password = $_POST['login_password']; // securing the username and password for injections $username = mysql_real_escape_string($username); $password = mysql_real_escape_string($password); // Dont use * its slower, select all you need. in this case only the ID (or navn) $sq l= "SELECT navn FROM $tabell WHERE navn='$username' and pass='$password'"; $result = mysql_query($sql); $count=mysql_num_rows($result); if($count==1){ $_SESSION['user']['username'] = $username; $_SESSION['user']['password'] = $password; header("location:login_success.php"); } else { echo "<center>Feil Brukernavn eller Passord</center>"; } } ?> login_success.php Skjult tekst: (Marker innholdet i feltet for å se teksten): <?php session_start(); if(!isset($_SESSION['user'])){ header("location:innlogging.php"); } ?> <html> <body> Login Successful You are:<br /> <?php echo "Username: ".$_SESSION['user']['username'] ?> </body> </html> Endret 11. juni 2006 av ziller Lenke til kommentar
groenlid Skrevet 11. juni 2006 Forfatter Del Skrevet 11. juni 2006 kjempeflott ziller... tnx Lenke til kommentar
groenlid Skrevet 11. juni 2006 Forfatter Del Skrevet 11. juni 2006 (endret) har fortsatt et problem... i login_success.php Skjult tekst: (Marker innholdet i feltet for å se teksten): <?php session_start(); if(!isset($_SESSION['user'])){ include("innlogging.php"); exit(); } ?> <html> <body> <?php echo "Brukernavn: ".$_SESSION['user']['username']; echo "Du er nå logget inn.<a href=profil.php> Klikk for å se din profil.</a>"; ?> </body> </html> og i checklogin.php Skjult tekst: (Marker innholdet i feltet for å se teksten): <?php include ("xxx/config.php"); // Connect to server and select databse. mysql_connect("$server", "$brukernavn", "$passord")or die("KAN IKKE KOBLE SEG TIL DATABASE"); mysql_select_db("$database")or die("KAN IKKE VELGE DATABASE"); // username and password sent from signup form $username = $_POST['login_username']; $password = $_POST['login_password']; $username = mysql_real_escape_string($username); $password = mysql_real_escape_string($password); $sql="SELECT navn FROM $tabell WHERE navn='$username' and pass='$password'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" $_SESSION['user']['username'] = $username; $_SESSION['user']['password'] = $password; include("login_success.php"); } else { echo "<center>Feil Brukernavn eller Passord</center>"; } ob_end_flush(); include("include/footer.php"); ?> og innlogging.php Skjult tekst: (Marker innholdet i feltet for å se teksten): <br /><br /><table width="300"> <tr> <form name="form1" method="post" action="?s=checklogin"> <td> <table width="100%"> <tr> <td colspan="3"></td> </tr> <tr> <td width="78"><h6>Brukernavn</h6></td> <td width="6">:</td> <td width="294"><input name="login_username" type="text" ></td> </tr> <tr> <td><h6>Passord</h6></td> <td>:</td> <td><input name="login_password" type="password"></td> </tr> <tr> <td> </td> <td> </td> <td><input type="submit" name="login_do" value="Login" class="submit"><h6><a href=?s=registrering >Registrer deg</a></h6></td> </tr> </table></td> </form> </tr> </table> og profil.php Skjult tekst: (Marker innholdet i feltet for å se teksten): <?php session_start(); if(!isset($_SESSION['user'])){ include("innlogging.php"); exit(); } ?> Din profil oaijsdoiajd oaksodkoekofkoewvk problemet mitt er hvis jeg logger meg inn. Så kommer jeg fint inn på login_success.php og ser html'en, men hvis jeg går videre inn til profil.php kommer jeg bare tilbake til innlogging.php. Håper det er noen som har vært borti dette problemet før.. Endret 11. juni 2006 av groenlid Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå