Il seguente bit di codice è valido?Distruggi una sessione PHP facendo clic su un collegamento
<a href="#" onclick="<?php session_destroy();?>">Logout</a>
Il seguente bit di codice è valido?Distruggi una sessione PHP facendo clic su un collegamento
<a href="#" onclick="<?php session_destroy();?>">Logout</a>
No, non è un codice valido. Distruggerà la sessione al momento del caricamento della pagina php.
per la distruzione di sessione sul clic si dovrebbe scrivere
<a href="logout.php" >Logout</a>
in logout.php
session_destroy();
No, non è logico chiamare la funzione lato server da lato client, onClick
è un evento si verifica al lato client, quindi, cant chiamare session_destroy()
perché è lato server (funzione PHP), che non è disponibile lato client
Codice errato. è possibile utilizzare questo codice:
<?php if($_GET['logout']==1) session_destroy(); ?>
<a href="?logout=1">Logout</a>
Fare una pagina chiamata logout.php
Logout.php_ _ ___
<?php
Session_start();
Session_destroy();
header('Location: ' . $_SERVER['HTTP_REFERER']);
?>
tuo _pagina _ ____
<a href="Logout.php">Logout</a>
Questo è il modo corretto per farlo.Uno dovrebbe iniziare la sessione prima di distruggerlo. – vasc0x
Che il codice sarà già distrugge la sessione prima di fare clic sul link, si dovrebbe fare in questo modo:
pagina HTML:
<a href="sessiondestroy.php">Logout</a>
Sessiondestroy.php:
<?=session_start(); session_destroy(); ?>
no non valido ... onclick è un evento lato client. puoi farlo invece.
<a href="logout.php">logout</a>
e creare un file chiamato logout.php e includere l'session_destroy(); dichiarazione
<?php
session_destroy();
//do other things... like redirect to a deafault/login page
?>
È possibile farlo. Se ti concentri sull'utilizzo dell'azione onClick, puoi semplicemente utilizzare AJAX. In primo luogo si dovrebbe creare ajax.php, che sarebbe simile a questa:
<?php
//AJAX dynamic callback
if(isset($_GET['action'])){
if($_GET['action'] == 'logout'){
//destroy the session
session_destroy();
echo 'Logout success!';
//redirect the user to a default web page using header
header("location:http://example.com/");
}
}
?>
Poi si vorrebbe creare un file JavaScript che avrebbe detto ajax.php che si voleva fare il logout:
<script>
function logout()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("Logoutbutton").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax.php?action=logout",true);
xmlhttp.send();
}
</script>
in ogni modo, grazie per l'utilizzo di StackOverflox, e vi prego di riferire come va, o se avete bisogno di ulteriore aiuto :)
TP
Logout più complicato che abbia mai, e intendo mai visto. – user2067005
La sessione dovrebbe essere iniziata prima di utilizzare session_destroy(). – vasc0x