Gå til innhold

hvordan lage logout som fungerer?


Anbefalte innlegg

Jeg har laget meg et script for innlogging, og prøver å lage et for utlogging, men får det ikke helt til.........

login.php

<?PHP 

function displayLogin() { 
header("WWW-Authenticate: Basic realm=\"My Website\""); 
header("HTTP/1.0 401 Unauthorized"); 
echo "<h2>Authentication Failure</h2>"; 
echo "The username and password provided did not work. Please reload this page and try again."; 
exit; 
} 


$db = mysql_connect('server_ip','user','password') or die("Couldn't connect to the database."); 
mysql_select_db('database') or die("Couldn't select the database"); 

if (!isset($PHP_AUTH_USER) || !isset($PHP_AUTH_PW)) { 
// If username or password hasn't been set, display the login request. 
displayLogin(); 
} else { 
// Escape both the password and username string to prevent users from inserting bogus data. 
$PHP_AUTH_USER = addslashes($PHP_AUTH_USER); 
$PHP_AUTH_PW = md5($PHP_AUTH_PW); 

// Check username and password agains the database. 
$result1 = mysql_query("SELECT count(id) FROM users WHERE password='$PHP_AUTH_PW' AND username='$PHP_AUTH_USER' AND activated='1'") or die("Couldn't query the user-database."); 
$num = mysql_result($result1, 0); 

if (!$num) { 
 // If there were no matching users, show the login 
 displayLogin(); 
 } 
} 
// All code/html below will only be displayed to authenticated users. 

$type=strtolower($_GET[type]);
$id=strtolower($_GET[id]);

if (!$_REQUEST['type']=='' and !$_REQUEST['id']==''):
session_start();
$_SESSION['loggedin'] = TRUE;
//Setter noen flere $_SESSION variablser her
echo "Du er nå innlogget!<br />"; 
echo "<a href=$type.php?id=$id> Klikk her for å gå tilbake</a>";
endif;
?> 

Har forøskt med denne logout.php fila:

<?php
session_start();
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
  setcookie(session_name(), '', time()-42000, '/');
}

session_destroy();
// now that the user is logged out,
// go to login page or whatever
//header('Location: $type.php?id=$id');
$type=strtolower($_GET[type]);
$id=strtolower($_GET[id]);
echo '<html>';
echo '<head>';
echo '<meta http-equiv="Refresh" content="4;url='.$type.'.php?id='.$id.'">';
echo '</head>';
echo '</html>';
?>

Men jeg får problemer med at neste gang jeg kaller login.php så slipper jeg å skrive brukernavn/passord så lenge jeg ikke har stenge browseren.

 

Noen som kan hjelpe her??

Lenke til kommentar
Videoannonse
Annonse

som dere ser, så har jeg session_destroy i logout scriptet jeg har testet.

Det som skjer er som følger:

- Jeg logger inn

- Angir brukernavn/passord i innloggingen

- Sidene opptrer som om jeg er innlogget.

- Jeg logger meg ut.

- Sidene opptrer som om jeg IKKE er innlogget.

- Jeg logger inn.

- Trenger ikke å angi brukernavn/passord.

- Sidene opptrer som om jeg er innlogget.

 

Jeg ønsker at jeg skal måtte angi brukernavn/passord for å logge meg inn på nytt, og ikke slik det er nå, hvor jeg ikke trenger det.

Lenke til kommentar

Problemet her er at du bruker Apache sitt innloggingsystem av det jeg kan se, nemlig htaccess måten. Og da er det Apache som styrer showet. Reglen der er vel at du må lukke nettleseren for at du skal bli logget ut.

 

Du kan jo prøve og bare lage en "falsk link" til utlogging:

 

http://www.ssi-developer.net/htaccess/htaccess_logout.shtml

Lenke til kommentar
som dere ser, så har jeg session_destroy i logout scriptet jeg har testet.

 

 

da bør du også lese dokumentasjonen til session_destroy...

 

session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie.

 

In order to kill the session altogether, like to log the user out, the session id must also be unset. If a cookie is used to propagate the session id (default behavior), then the session cookie must be deleted. setcookie() may be used for that.

 

selv om du logger deg ut ved hjelp av dette er det ikke sikkert alle "forbindelser" til innloggingen blir ødelagt,,,,

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...