PHP - Supprimer un compte utilisateur

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 492
Inscription: Mer Oct 19, 2005 15:23

PHP - Supprimer un compte utilisateur

Message le Ven Mar 31, 2006 21:56

Bonjour, je possède un site où des membres peuvent s'enregister. J'ai un "espace admin" où je peux gérer les membres, où entre autre je peux les supprimer. J'aimerais mettre un bouton dans les sessions des membres pour qu'ils puissent eux mêmes supprimer leur compte. Vous trouverez ci-dessous, les codes des pages qui me servent à supprimer un utilisateur. Quelqu'un saurait me dire comment réaliser ceci, à l'aide des codes ci-dessous? Merci.

Première page, où un champ me demande l'email, puis il faut cliquer sur supprimer.
Code: Tout sélectionner
<?
include("../templates/admin-header.txt");
?>
<center><table border="0" bordercolor="#00FF00">
              <tr>
                <td rowspan="6" width="483" valign="top">
                  <div align="left">

                    <form name="form1" method="post" action="userloschen2.php">
                      <table width="70%" border="0" align="center">
                        <tr>
                          <td width="50%">E-mail de l'utilisateur </td>
                          <td width="77%">
                            <input type="text" name="email" size="20" maxlength="50">
                          </td>
                        </tr>
                        <tr>
                          <td colspan="2">
                            <div align="center">
                              <input type="submit" name="Submit" value="Supprimer">
                            </div>
                          </td>
                        </tr>
                      </table>
                    </form>
                    <p align="center">&nbsp;</p>
    </div>
                </td>
              </tr>
            </table></center>



Seconde page, où un message de confirmation apparait pour dire que le membre a bien été supprimé.
Code: Tout sélectionner
<?
include("header.inc.php");
?>
<?
global $email;
        $query="DELETE FROM demo_a_accounts WHERE email='$email'";
        mysql_query($query);
?>
<?
include("../templates/admin-header.txt");
?>
<center>
  L'utilisateur avec l'adresse e-mail  <?php echo "$email"; ?> a &eacute;t&eacute; supprim&eacute; de la base de donn&eacute;e.
</center>


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1330
Inscription: Jeu Mai 27, 2004 13:04

Message le Sam Avr 01, 2006 8:57

Tu veux faire la suppression juste en donnant un email? N'importe qui pourra supprimer un compte comme ça?

Le global $email; dans le second script ne sert à rien.

Le
"DELETE FROM demo_a_accounts WHERE email='$email'";
devrait plus être :
"DELETE FROM demo_a_accounts WHERE email='".$_POST['email']."'";
Ca évitera déjà quelques problèmes.

Sinon à mon avis il faut revoir le fonctionnement car ça me parrait un peu bancal.

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 492
Inscription: Mer Oct 19, 2005 15:23

PHP - Supprimer un compte utilisateur

Message le Sam Avr 01, 2006 10:54

Bonjour, merci de votre réponse. En fait je veux que chaque utilisateur puisse supprimer son compte à partir de son espace membre et c'est pour ça que je cherche comment faire pour qu'ils puissent supprimer que leur compte, et pas ceux des autres...


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1330
Inscription: Jeu Mai 27, 2004 13:04

Message le Sam Avr 01, 2006 12:46

Tu dois avoir un identifiant non?

Tu fais un bouton supprimer avec un lien du genre :
me_supprimer.php?id=<l'id de ton membre>

Dans me_supprimer.php tu vérfie que c'est bien la bonne personne (par rapport à celle connectée), si oui tu la supprimes.

Par contre attention si ces membres ont posté des messages ou autre ça peut foutre le bordel (tout dépend comment c'est codé).

gomoz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 230
Inscription: Mer Déc 29, 2004 18:21

Message le Dim Avr 02, 2006 1:48

Bacteries a écrit:"DELETE FROM demo_a_accounts WHERE email='".$_POST['email']."'";

addslashes($_POST['email']) serait un peu mieux même mais vu que c'est pour son propre compte, mieux vaut passer par les ID.

Et pour éviter de "foutre le bordel" dans ta base de données, assure-toi de bien comprendre chaque ligne de la page 'userloschen2.php' avant d'en faire une adapté pour tes membres (=> sauvegarde de la base de donnée et tests en local hautement recommandés ;)).

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 492
Inscription: Mer Oct 19, 2005 15:23

PHP - Supprimer un compte utilisateur

Message le Dim Avr 02, 2006 8:59

Ben en fait je n'y connais absolument rien en PHP donc je pensais mettre un bouton "Supprimer mon compte" et lorsque qu'un membre appuie sur ce bouton, un script supprime l'email de l'utilisateur de la base de donnée (comme je peux le faire à partir de l'espace administrateur). Et comme ça, il n'y a pas de risque pour qu'un utilisateur supprime autre que son compte. Lorsque l'on rentre dans l'espace membre, un code PHP indique l'email de l'utilisateur, il dit "echo $num3;". Puis-je réaliser la supprssion à partir de cela? Merci.

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 492
Inscription: Mer Oct 19, 2005 15:23

PHP - Supprimer un compte utilisateur

Message le Dim Avr 02, 2006 9:09

Le fichier "userloschen 2" a le code suivant :
Code: Tout sélectionner
<?
include("header.inc.php");
?>
<?
global $email;
        $query="DELETE FROM demo_a_accounts WHERE email='$email'";
        mysql_query($query);
?>
<center>
  L'utilisateur avec l'adresse e-mail  <?php echo "$email"; ?> a &eacute;t&eacute; supprim&eacute; de la base de donn&eacute;e.
</center>


Comment faire pour "stocker" la valeur "echo $num3;" dans la valeur "$email" pour que sur une page de l'espace membre, la valeur "echo $num3;" (email du membre) soit stocké dans "$email" , puis qu'en cliquant sur un lien, la page userloschen 2 s'ouvre et réalise la suppression???

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 492
Inscription: Mer Oct 19, 2005 15:23

PHP - Supprimer un compte utilisateur

Message le Dim Avr 02, 2006 10:19

C'est bon, j'y suis arrivé, voilà comment j'ai fais :
Dans l'espace membre, en cliquant sur "Editer votre compte", j'ai ajouté un bouton "Supprimer" pour supprimer le compte :

Code: Tout sélectionner
<p align="center" class="Style44">
<span style="font-family: verdana; font-size: 14px; font-weight: bold">
<u>Supprimer mon compte (recup&eacute;ration impossible) : </u></span></p>
<table border="0" bordercolor="#00FF00">
<tr>
<td rowspan="6" width="483" valign="top"><div align="left">
<form name="form1" method="post" action="../compte-supprime.php">
<table width="70%" border="0" align="center">
<tr>
<td width="50%">&nbsp;</td>
<td width="77%"><input name="email" type="hidden" value="<?php echo $row3[3]; ?>" size="20" maxlength="50">                          </td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Supprimer">
</div></td>
</tr>
</table>
</form>
<p align="center">&nbsp;</p>
</div></td>
</tr>
</table>


Si le membre clique sur le bouton, une page s'ouvre pour lui dire que son compte a été supprimé, voici le code :

<?
include("admin/header.inc.php");
?>
<?
global $email;
$query="DELETE FROM demo_a_accounts WHERE email='$email'";
mysql_query($query);
?>

<p align="center" class="Style44"><u>Compte supprim&eacute;e </u></p>
<blockquote>
<p align="center" class="Style46 Style37"><strong>L'utilisateur avec l'adresse e-mail <?php echo "$email"; ?> a &eacute;t&eacute; supprim&eacute; de la base de donn&eacute;e.</strong></p>
</blockquote>
<p class="Style46 Style37">&nbsp;</p>

gomoz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 230
Inscription: Mer Déc 29, 2004 18:21

Message le Dim Avr 02, 2006 15:06

Dans l'espace membre, en cliquant sur "Editer votre compte", j'ai ajouté un bouton "Supprimer" pour supprimer le compte :
"J'ai ajouté : c'est du passé composé ?
...tu n'as pas peur toi :D

Déjà $email ne devrait rien retourner normalement, s'il retourne quelque chose, c'est que ton serveur à de fortes chances de presenter des failles de sécurité (mais c'est une autre histoire).

Ensuite ton script est à retirer tout de suite de ton site. Je sais pas le nombre de visiteurs que tu as mais un jour ou l'autre la faille est toujours découverte. Imagine qu'un membre modifie le champ email par le tiens : il supprime ton compte. Et maintenant, plus dangeureux encore, il modifie le champs email par ' OR 1 OR email='
=>
"DELETE FROM demo_a_accounts WHERE email='' OR 1 OR email=''"; (<=> SUPRIMME DE demo_a_accounts QUAND email est vide OU toujours OU email est vide)
=>
Tu n'aura plus aucun membre...

donc à la place de
$query="DELETE FROM demo_a_accounts WHERE email='$email'";
tu devrais mettre ca normalement :
$query='DELETE FROM demo_a_accounts WHERE email=\''.addslashes($_POST['email']).'\'';

et même plus, tu devrais trouver un moyen d'identifier chaque personne sans passer par un champ de formulaire. (fait voir le code php de header.inc.php si tu veux je regarderai)


.

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 492
Inscription: Mer Oct 19, 2005 15:23

PHP - Supprimer un compte utilisateur

Message le Dim Avr 02, 2006 15:29

Bonjour, en fait l'utilisateur ne peux pas changer l'email du compte à modifier, il est inscrit dans un champ de texte masqué. Il peux juste cliquer sur "Supprimer", ce qui entraîne la suppression de son compte... Je ne vois pas comment un utilisateur peut donc supprimer le compte d'un autre, puisque qu'il n'a pas à rentrer d'email mais seulement à cliquer sur un bouton. Dîtes le moi si je me trompe, merci d'avance.

gomoz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 230
Inscription: Mer Déc 29, 2004 18:21

Re: PHP - Supprimer un compte utilisateur

Message le Dim Avr 02, 2006 15:43

gcvoiron a écrit:Dîtes le moi si je me trompe, merci d'avance.
:D tu te trompe mais rassure toi, tu n'es pas le premier à faire cette erreur ;)

tout ce qui est envoyé par le navigateur du client est modifiable par le client. Je le sais très bien car je dévelloppe plusieurs programme en c# qui utilisent ces possibiltés ;) (mais nul besoin de programmer pour le faire, un novice peut très bien copier ta page de formulaire sur un autre site et la modifier de là bas en appelant http://www.example.net/compte-supprime.php

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 492
Inscription: Mer Oct 19, 2005 15:23

PHP - Supprimer un compte utilisateur

Message le Dim Avr 02, 2006 15:50

Ok, mais que me conseillez-vous de faire?

gomoz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 230
Inscription: Mer Déc 29, 2004 18:21

Message le Dim Avr 02, 2006 16:07

gomoz a écrit:(fait voir le code php de header.inc.php si tu veux je regarderai)

gcvoiron
WRInaute impliqué
WRInaute impliqué
 
Messages: 492
Inscription: Mer Oct 19, 2005 15:23

PHP - Supprimer un compte utilisateur

Message le Dim Avr 02, 2006 16:10

Dans header.inc.php, il y a juste cela :
<?php
$db = mysql_pconnect("********", "********", "****");
mysql_select_db("********",$db);
?>

gomoz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 230
Inscription: Mer Déc 29, 2004 18:21

Message le Dim Avr 02, 2006 16:17

bizzare, alors par mp (ca sera plus simple) la page "Editer votre compte"

PHP - Supprimer un compte utilisateur

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Apps for your Domain

  • Analyse de popularité
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • TouchGraph Google Browser
    Description du TouchGraph Google Browser (outil externe) : il s'agit d'un outil graphique permettant de visualiser des sites similaires (selon Google). On peut sauter de site en site, et se rendre compte facilement des communautés de sites, ou des nébuleuses de sites traitant du même sujet.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités