Gå til innhold

hjelp! får ikke sjekket session


Anbefalte innlegg

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 av groenlid
Lenke til kommentar
Videoannonse
Annonse

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

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 av groenlid
Lenke til kommentar

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 av ziller
Lenke til kommentar

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 av groenlid
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...