Désabonnement du système de commentaires

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.
Comme nous avons précédemment mis en place un système de commentaires avec notifications, nous allons à présent permettre aux abonnés d'arrêté de suivre le ou les sujets qu'ils suivent.
Nous allons créer une page nommé "desabonnement.php" à partir du gabarit :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr-fr">
 
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>Désabonnement</title>
<meta name="Description" content="Désabonnement" />
<meta name="robots" content="noindex, nofollow" />
<link rel="canonical" href="http://<?php echo $_SERVER['HTTP_HOST'];?>/desabonnement.php" /> <link href="http://<?php echo $_SERVER['HTTP_HOST'];?>/style.css" rel="stylesheet" type="text/css"/>
</head>
 
<body>
 
<div id="moncadre">
<?php include('menu.php');?>
<div class="cadrecentrale">
<h1>Désabonnement</h1>
<div class="cadre">
<!--code ici -->
</div>
<?php include('footer.php');?>
</div>
 
</body>
</html>
Dans la page permettant les modifications et validations des commentaires, nous avons dans le mail envoyé aux abonnés le lien suivant :
$msg1 .= "Vous pouvez vous désabonner ici http://".$_SERVER['HTTP_HOST']."/desabonnement.php?contact=$mail&id=".$envoi_mail["MAX(id)"]."<br/><br/>";
Nous pouvons donc à partir de ce lien récupérer le mail et l'identifiant du dernier commentaire déposé par l'internaute.
Nous commençons le code avant le "DOCTYPE".
 
On inclue certains fichiers, on ouvre la connexion à la BD et on récupère les 2 variables qui transitent par l'url :
<?php
include('fonctions.php');
include('connexion_bd.php');
connexion_bd();
$adresse_email=htmlspecialchars(stripcslashes($_GET["contact"]));
$id_commentaire=htmlspecialchars(stripcslashes($_GET["id"]));
Si les 2 variables existent, on effectue une requête à la base de données pour allé chercher les informations du commentaire :
if(isset($_GET["contact"]) && isset($_GET["id"])){
    $verif = mysql_query("SELECT email,id FROM COMMENTAIRE WHERE id='".mysql_real_escape_string($id_commentaire)."' AND email='".mysql_real_escape_string($adresse_email)."' AND suivre_sujet='Oui' LIMIT 1");
Si la requête ne retourne aucun résultat, on crie :
    if(mysql_num_rows($verif) == 0)
    {
        $existe_pas = '<div class="erreur"><p>Erreur! Soit la ressource demandé n\'existe pas, soit vous avez déjà effectué cette action!</p></div>';
    }
Si la requête retourne un résultat, on passe alors le champ "suivre_sujet" de "oui" à "non" et on informe l'internaute :
    else
    {
        $result = mysql_query("UPDATE COMMENTAIRE SET suivre_sujet='Non' WHERE id='".mysql_real_escape_string($id_commentaire)."' AND email='".mysql_real_escape_string($adresse_email)."' LIMIT 1");
        $ok = '<div class="ok"><p>La modification à été effectué avec succès. Vous ne recevrez plus de réponse concernant ce sujet.</p></div>';
    }
Dans le cas d'une erreur indéterminé :
}
else{
    $erreur = '<div class="erreur"><p>Une erreur s\'est produit concernant le lien de désabonnement que vous avez reçut. Merci de renvoyer le mail dans son intégralité au webmaster avec le motif de renvoie.</p></div>';
}
?>
Les variables d'erreurs étant toutes définis, on les affiches.
Code à placer sous <div class="cadre"> :
<?php if(isset($existe_pas)) echo $existe_pas;?>
<?php if(isset($ok)) echo $ok;?>
<?php if(isset($erreur)) echo $erreur;?>
Voir/déposer un commentaire (0) | Signaler un problème