2013-07-10 23 views

risposta

11

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(); 
+4

La sessione dovrebbe essere iniziata prima di utilizzare session_destroy(). – vasc0x

2

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

5

Codice errato. è possibile utilizzare questo codice:

<?php if($_GET['logout']==1) session_destroy(); ?> 
<a href="?logout=1">Logout</a> 
12

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> 
+0

Questo è il modo corretto per farlo.Uno dovrebbe iniziare la sessione prima di distruggerlo. – vasc0x

3

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(); ?> 
3

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 

     ?> 
1

È 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

+7

Logout più complicato che abbia mai, e intendo mai visto. – user2067005