|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
gcvoiron WRInaute impliqué

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Ven Mar 31, 2006 22:56 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
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: |
<?
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"> </p>
</div>
</td>
</tr>
</table></center>
|
Seconde page, où un message de confirmation apparait pour dire que le membre a bien été supprimé.
| Code: |
<?
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 été supprimé de la base de donnée.
</center> |
|
|
| |
|
 |
Bacteries WRInaute accro

Inscrit le: 27 Mai 2004 Messages: 1048 Localisation: France - Nantes
|
Posté le : Sam Avr 01, 2006 9:57 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
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é

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Sam Avr 01, 2006 11:54 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
| 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

Inscrit le: 27 Mai 2004 Messages: 1048 Localisation: France - Nantes
|
Posté le : Sam Avr 01, 2006 13:46 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
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

Inscrit le: 29 Déc 2004 Messages: 230 Localisation: vannes
|
Posté le : Dim Avr 02, 2006 2:48 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
| 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é

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Dim Avr 02, 2006 9:59 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
| 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é

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Dim Avr 02, 2006 10:09 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
Le fichier "userloschen 2" a le code suivant :
| Code: |
<?
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 été supprimé de la base de donné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é

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Dim Avr 02, 2006 11:19 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
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: |
<p align="center" class="Style44">
<span style="font-family: verdana; font-size: 14px; font-weight: bold">
<u>Supprimer mon compte (recupé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%"> </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"> </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ée </u></p>
<blockquote>
<p align="center" class="Style46 Style37"><strong>L'utilisateur avec l'adresse e-mail <?php echo "$email"; ?> a été supprimé de la base de donnée.</strong></p>
</blockquote>
<p class="Style46 Style37"> </p> |
|
| |
|
 |
gomoz WRInaute occasionnel

Inscrit le: 29 Déc 2004 Messages: 230 Localisation: vannes
|
Posté le : Dim Avr 02, 2006 16:06 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
| Citation: |
| 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é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é

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Dim Avr 02, 2006 16:29 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
| 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

Inscrit le: 29 Déc 2004 Messages: 230 Localisation: vannes
|
Posté le : Dim Avr 02, 2006 16:43 Sujet du message: Re: PHP - Supprimer un compte utilisateur |
|
|
| gcvoiron a écrit: |
| Dîtes le moi si je me trompe, merci d'avance. |
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é

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Dim Avr 02, 2006 16:50 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
| Ok, mais que me conseillez-vous de faire? |
|
| |
|
 |
gomoz WRInaute occasionnel

Inscrit le: 29 Déc 2004 Messages: 230 Localisation: vannes
|
Posté le : Dim Avr 02, 2006 17:07 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
| gomoz a écrit: |
| (fait voir le code php de header.inc.php si tu veux je regarderai) |
|
|
| |
|
 |
gcvoiron WRInaute impliqué

Inscrit le: 19 Oct 2005 Messages: 491
|
Posté le : Dim Avr 02, 2006 17:10 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
Dans header.inc.php, il y a juste cela :
<?php
$db = mysql_pconnect("********", "********", "****");
mysql_select_db("********",$db);
?> |
|
| |
|
 |
gomoz WRInaute occasionnel

Inscrit le: 29 Déc 2004 Messages: 230 Localisation: vannes
|
Posté le : Dim Avr 02, 2006 17:17 Sujet du message: PHP - Supprimer un compte utilisateur |
|
|
| bizzare, alors par mp (ca sera plus simple) la page "Editer votre compte" |
|
| |
|
 |
| |
|
|