Droit de suppression
Résolu
Voila j'essaye actuellement de donner le droit à l'utilisateur qui à son compte de supprimer ses données, seulement lui, malheureusement je peux supprimer d'autre utilisateur en modifiant l'ID dans l'url.
if(isset($_SESSION['id']) AND $user['id'] == $_SESSION['id'])
{
if(isset($_GET['erase']) AND !empty($_GET['erase']))
{
$erase = (int) $_GET['erase'];
$req = $bdd->prepare('DELETE FROM membres WHERE id = ?');
$req->execute(array($erase));
}
}
else
{
}
<p class="login button"> <input type="submit" class="login button" value="Sauvegarder"></input> <td><a href="?erase=<?php echo $_SESSION['id']; ?>" onclick="return confirm(\'Etes-vous sûr ?\');"><input type="button" class="login button" value="Delete account"></input></a></td> </p>
2 réponses
-
ContributeurSalut,
c'est quoi $user, d'où vient cette variable ? Tu as collé ton code en entier ? -
Bonjour
Tu crées un lien avec<a href="?erase=<?php echo $_SESSION['id']; ?>"
puis tu l'exploites avec$erase = (int) $_GET['erase'];
Puisque ton utilisateur est connecté et a son id dans une variable de session, à quoi cela sert-il de passer cet identifiant par l'url ?
Dispense-toi de mettre l'id dans le lien et fais directement :$erase=(int)$_SESSION['id'];
-
-
-
@Utilisateur anonymeSalut, désolé mais je n'ai toujours pas réussi :
if(isset($_GET['erase'])) { $req = $bdd->prepare('DELETE FROM membres WHERE id = ?'); $req->execute(array($_GET['erase'])); }<p class="login button"> <input type="submit" class="login button" value="Sauvegarder"></input> <td><a href="?erase" rel="nofollow noopener noreferrer" target="_blank" onclick="return confirm(\'Etes-vous sûr ?\');"><input type="button" class="login button" value="Delete account"></input></a></td> </p> -
@Utilisateur anonyme
$req->execute(array($_GET['erase']));
Ce n'est pas ce que je t'ai dit. Il n'y a plus rien dans $_GET['erase'], comment veux-tu que ça marche ?
Puisque tu as besoin à cet endroit de l'id de l'utilisateur, et que tu disposes de cet id dans $_SESSION['id'], c'est $_SESSION['id'] qu'il faut utiliser. -
@Utilisateur anonymeDésolé pour mon inattention, merci ça fonctionne.
-