2010-05-10 12 views
1

Dans le cas où quelqu'un le sait, comment puis-je faire un lien hypertexte dans PHP ...un lien hypertexte de déconnexion en PHP?

<?php 
    echo('<a href="index.php">Log-out</a>'); 
?> 

qui non seulement pour accéder à la première page, mais également supprimer les cookies?

Merci!

+0

J'ai suivi toutes vos questions, et vous avez vraiment besoin de lire un tutoriel et/ou la documentation PHP. Vous posez continuellement des questions de base auxquelles il est facile de répondre si vous avez simplement appris PHP. – TravisO

Répondre

1

Soumettre un paramètre dans votre lien comme index.php?logout=true, vérifiez ce paramètre dans votre index.php et si elle est définie, supprimer les cookies:

http://php.net/manual/de/function.setcookie.php

Si vous définissez la « durée de vie » (fin) d'un cookie à quelque chose dans le passé (ou l'omettre complètement), il sera supprimé lors de la prochaine pageload (faire une recherche Google pour "php delete cookie" pour trouver de l'aide). Forcer un rechargement de page, si nécessaire.

Vous pouvez également détruire la session de l'utilisateur.

+0

Merci, ça fonctionne comme ça! –

1

Voici votre lien HTML

<a href="index.php?logout">Log-out</a> 

Et votre PHP pour gérer à vous déconnecter

if(isset($_GET['logout'])) { 
    // clear the session variable, display logged out message 
} 
1

lien Utiliser comme ça:

<?php 
    echo('<a href="index.php?link=logout">Log-out</a>'); 
?> 

Et index.php est:

<?php 
    $link = $_GET["link"]; 
    if($link == "logout") 
    { 
    session_destroy(); 
    } 
?> 
+1

En plus de 'session_destroy', vous devriez aussi rediriger l'utilisateur, puis' exit() '.Sinon, l'utilisateur ne sera pas déconnecté tant qu'il n'aura pas rechargé la page ou n'en aura pas chargé une autre. –

+0

Oui, c'est vrai. – sundowatch

4

Vous pouvez faire une autre page qui efface tous les cookies (c.-les ensembles expirer dans le passé) et redirige ensuite index.php:

// page: clear.php 
<?php 
session_start(); 
$_SESSION = array(); 
session_destroy(); 

setcookie('cookie1', '', strtotime('-2 days')); 
setcookie('cookie2', '', strtotime('-2 days')); 
// etc. 
header('Location: index.php'); 
exit(); 
+1

+1. Vous pouvez également utiliser 'session_destroy()'. –

+0

Bon point, ajouté –

1

Dans le menu de navigation:

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

En logout.php:

<?php 
// kill the session 
header('Location: index.php'); 
exit();  

Pour tuer la session, voir l'examen à session_destroy() dans le manuel de PHP.

1

Déconnexion Lien:

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

logout.php

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

J'utilise habituellement la méthode prescrite par le manual:

<?php 
// Initialize the session. 
// If you are using session_name("something"), don't forget it now! 
session_start(); 

// Unset all of the session variables. 
$_SESSION = array(); 

// If it's desired to kill the session, also delete the session cookie. 
// Note: This will destroy the session, and not just the session data! 
if (ini_get("session.use_cookies")) { 
    $params = session_get_cookie_params(); 
    setcookie(session_name(), '', time() - 42000, 
     $params["path"], $params["domain"], 
     $params["secure"], $params["httponly"] 
    ); 
} 

// Finally, destroy the session. 
session_destroy(); 
?> 

La seule chose qui reste est header('Location: index.php');