Hallo, op mijn website gebruik ik op verschillende pagina's (oa admin gedeelte) dit script om in te loggen, en om ingelogd te blijven;

<?php
error_reporting(E_ALL);
$auth = false;

$user = array("--","--");
$pass = array("--","--");

$num = count($user);

if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
for($i=0; $i<$num; $i++) {
if($_SERVER['PHP_AUTH_USER'] == $user[$i] && $_SERVER['PHP_AUTH_PW'] == $pass[$i])
$auth = true;
}
}

if(!$auth) {
header('WWW-Authenticate: Basic realm="admin section"');
header('HTTP/1.0 401 Unauthorized');

echo '<center><h1>Authentication failed</h1>Username and Password required<br><br>Private Section !!!</center>';
exit;
}
{

?>

is het ook mogelijk om daar weer uit te loggen? de enige manier die ik momenteel weet is door de browser te sluiten (alle openstaande)

kan het ook via een script? ik heb dit oa al geprobeerd;

<?

$auth = false;

if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {

$auth = false;



}
?>

maar dan werkt het niet :( (hij geeft geen error ofzo, maar ik weet gwn dat ik nog ingelogd ben, aan de hand van een check).

logout.php

<?php
if (!isset($_GET['quit'])) { ?>
<h4>To complete your log out, please click "OK" then "Cancel" in
this <a href="logout.php?quit=y">log in box</a>. Do not fill in a
password. This should clear your ID and password from the cache of your
browser.
<blockquote>Note: Logging in from this particular box is
disabled!</blockquote>
<p>Go <a href="/">back to the site</a>.</h4>
<?php
} else {
header('WWW-Authenticate: Basic realm="admin section"');
header('HTTP/1.0 401 Unauthorized');
// if a session was running, clear and destroy it
session_start();
session_unset();
session_destroy();
echo "<h3>Logged out!</h3><h4>Go <a href=\"/\">back to the site</a>.</h4>";
}
?>
script doet het niet, ik maak eruit op, dat ik weer zo'n loginschermpje moet krijgen?

maar die krijg ik dus niet, en waar trekt hij die $_GET['quit']

vandaan?
hmm, wacht even, ik stoei ermee, en kom al verder, GET moest post zijn, en dan alles bovenaan zetten, hmm nog wat errors, ik stoei door
Ik kan het zelf niet controleren... maar hij haalt die GET uit de link waarop je moet klikken, en als je dat niet hebt gedaan... laat ie de tekst zien.

<h4>To complete your log out, please click "OK" then "Cancel" in
this <a href="logout.php?quit=y">log in box</a>. Do not fill in a
password. This should clear your ID and password from the cache of your
browser.
<blockquote>Note: Logging in from this particular box is
disabled!</blockquote>
<p>Go <a href="/">back to the site</a>.</h4>
Hij kijkt na of je de link <a href="logout.php?quit=y">log in box</a> hebt geklikt daar, zo nee laat ie de tekst eronder zien... Heb je die wel aan geklikt dan logged ie uit. Je moet wel je pagina logout.php laten heten.
hmm, inderdaad, de link en alles werkt wel met GET. maar als ik dan op ok klik en vervolgens op annuleren, dan kom ik bij de;

You are not authorized to view this page
The URL you attempted to reach has an ISAPI or CGI application installed that verifies user credentials before proceeding. This application cannot verify your credentials.

page van IIS.

Ik krijg dus niet te zien dat ik uitgelogd ben...
ik weet niet awt ik met die 1e zin moest

het is in ieder geval een ongeldige url.

ik lees morgen de andere link even goed door, ik ga nu slapen (gaapt)

bedankt in iedergeval voor je aandacht!!!

Groeten! :)
Graag gedaan
Ik vermoed dat je een bepaalde header moet sturen, aangezien bij iedere aanvraag de browser een header verstuurt ipv sessions.

Misschien dat header('HTTP/1.0 401 Unauthorized'); werkt als remblok. dus idd <?php if(isset($_GET['logout'])){
header('HTTP/1.0 401 Unauthorized');
}
?>
en dan gewoon aanvragen met pagina.php?logout=true

Kan ook een andere header zijn, maar dan moet je even in de documentatie van HTTP1.1 protocol zoeken.

Reageren