2013-07-10 14 views

Odpowiedz

11

Nie jest to nieważny kod. Zniszczy sesję w momencie ładowania strony php.

do niszczenia sesję kliknij należy napisać

<a href="logout.php" >Logout</a> 

w logout.php

session_destroy(); 
+4

sesję należy rozpocząć przed użyciem session_destroy(). – vasc0x

2

Nie, to nie logiczne, aby wywołać funkcję po stronie serwera z po stronie klienta, onClick to zdarzenie po stronie klienta, tak, to nie mogę zadzwonić session_destroy() bo to po stronie serwera (php function), która nie jest dostępne po stronie klienta

5

Zły kod. możesz użyć tego kodu:

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

zrobić stronę o nazwie logout.php

Logout.php_ _ ___

<?php 
Session_start(); 
Session_destroy(); 
header('Location: ' . $_SERVER['HTTP_REFERER']); 

?> 

Twój page_ _ ____

<a href="Logout.php">Logout</a> 
+0

To jest właściwy sposób, aby to zrobić.Należy rozpocząć sesję przed jej zniszczeniem. – vasc0x

3

Ten kod będzie już zniszczyć sesję przed kliknięciem w link, należy zrobić to tak:

HTML strony:

<a href="sessiondestroy.php">Logout</a> 

Sessiondestroy.php:

<?=session_start(); session_destroy(); ?> 
3

Nie jest niepoprawny ... onclick jest zdarzeniem po stronie klienta. możesz to zrobić zamiast tego.

 <a href="logout.php">logout</a> 

i utworzyć plik o nazwie logout.php i dołączyć session_destroy(); oświadczenie

 <?php 
      session_destroy(); 

      //do other things... like redirect to a deafault/login page 

     ?> 
1

Jest to możliwe. Jeśli koncentrujesz się na działaniu onClick, możesz po prostu użyć AJAX. Po pierwsze trzeba by utworzyć ajax.php, która będzie wyglądać następująco:

<?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/"); 
    } 
} 
?> 

Wtedy chcesz utworzyć plik JavaScript, który powie ajax.php że chcesz się wylogować:

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

w każdym razie, dzięki za korzystanie StackOverflox i proszę zgłoś się jak to działa, a jeśli potrzebna jest dodatkowa pomoc :)

TP

+7

Najbardziej skomplikowane wylogowanie, jakie kiedykolwiek miałem, i mam na myśli kiedykolwiek widziałem. – user2067005

Powiązane problemy