Birisi bir "çıkış" isteğinde gönderirse, otomatik olarak "başarılı çıkış" diyerek bir sayfaya götürür. Müşteri geri düğmesine basmayı veya kısıtlı alana gitmeyi denerse, HTTP tekrarlamasını isteyecektir.PHP: HTTP Basic - Oturumu Kapat
example.com/restricted/index.php:
<?php
session_start();
if(isset($_GET['logout']))
{
unset($_SESSION["login"]);
header("location: ../logout.php");
exit;
}
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || !isset($_SESSION["login"]))
{
header("HTTP/1.0 401 Unauthorized");
header("WWW-authenticate: Basic realm=\"Tets\"");
header("Content-type: text/html");
$_SESSION["login"] = true;
// Print HTML that a password is required
exit;
}
?>
// The rest of the page is then displayed like normal
kullanıcı başarılı ziyaretler example.com/logout.php örnek eğer
Ne var bugüne kadar budur. com/restricted/index.php? logout erişilebilir. Kullanıcı geri dönmeye çalıştığında, ancak rastgele şeyler gerçekleştiğinde, bazen iki kez HTTP kimlik doğrulaması isteyecektir (???), bazen bir döngüde (?) Kimlik doğrulamasını sormaya devam edecektir ve bazen sanki hemen geri dönmeme izin verecektir. Ben hiç çıkmadım.
Oturumların nasıl çalıştığı konusunda yeniyim, fakat benim anlayışım şudur: Kişi doğrulandığında// doğrulandığında, oturumda bir değişken saklar. çıkış yaptıktan sonra, o oturum değişkenini siler ve logout.php'ye geri döner ... Neden o zaman indekse geri tıkladığımda, oturum [login] varsayılan olarak ayarlanmadığı zaman, kimlik doğrulama sormadan geri dönmeme neden olur .
Bu PHP kodunda herhangi bir gelişme takdir edilmektedir. HTTP Basic kullanmamalı ve SQL'i içermem gerektiğini biliyorum, ama meh. Bu geçici bir çözümdür.
Düzenleme: Talimatlar içeren bir örnek varsa, MySQL ile bir çözümü kabul edeceğim. Hiçbir MySQL veya PHP veritabanı bilgisine sahip (henüz)
Oturumlar olmadan, en iyi seçiminiz temel bölge dizesini değiştirmek. – stillstanding
Sadece geçici bir çözüm için bu kadar çaba göstermiyor mu? –
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Oturum açmış bir kullanıcıdan gelen çağrıyı ve oturumu kapatılmış bir kişiden gelen çağrıyı nasıl ayırt edersiniz :) –