IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Redirection après suppression


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut [PHP-JS] Redirection après suppression
    Bonjour,

    J'ai crée une fonction de suppression d'utilisateurs après confirmation de celui-ci mais je n'arrive pas à afficher que la suppression a été effectuée avec succes et rediriger l'utilisateur vers la page d'accueil.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    $id = intval(vn($_REQUEST['id']));
    switch (vb($_REQUEST['mode'])) {
    case "suppr" :
    supprime_utilisateur($id);
    break;
    }
    function supprime_utilisateur($id) {
    $qid = mysql_query("
    DELETE FROM utilisateur
    WHERE id = $id
    "); 
    }
    if (supprime_utilisateur($id)) {
    ........la confirmation de suppression apparaît..........
    } else {
    ........les informations du compte....
    }
    Voici le lien de la page me permettant la suppression de l'utilisateur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a onClick="javascript:return confirm('Êtes-vous sûr de vouloir supprimer votre compte ?');" class="normal" title="Supprimer votre compte?" href="<?php echo $_SERVER['PHP_SELF']?>?mode=suppr&id=<?php echo ($_SESSION['utilisateur']['id']) ?>">Supprimer votre compte</a>
    Le compte se supprime sans problème, c'est juste l'affichage que le compte a bien été supprimé qui ne s'affiche pas...

    Une idée?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Par défaut
    j'avoue que je suis un peu perdu (j'ai peut etre du mal je débute un peu)

    tu as ton code principal...
    dedans tu appelles la fonction supprime_utilisateur($id)
    qui supprime bien le compte
    (là ça correspond au résultat que tu as)

    et après tu as un if.... et je ne comprends pas la condition à l'intérieur... (tu lui demande à nouveau d'effacer le compte et te renvoyer le résultat?)

    ce ne serait pas plus facile d'intérer le texte à afficher dans le switch/ les fonctions liées?




    et juste une question :
    si je suis un utilisateur
    je tape :
    adresse_de_lapage_courrante?mode=suppr&id=id_dun_autre_utilisateur_que_je_desteste
    ça me permet d'effacer le compte d'un autre?

  3. #3
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Ca m'a l'air simple : tu supprimes le compte avec ta première ligne
    supprime_utilisateur($id); -> ça supprime le compte
    ...et ensuite essaies de la supprimer à nouveau avec if (supprime_utilisateur($id)) : ça ne peut pas marcher, puisque le compte a déjà été supprimé.
    Il faut modifier ta fonction de suppression pour qu'elle renvoie TRUE puis faire $test_suppr = supprime_utilisateur($id); pour la suppression et if($test_suppr) pour le test.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    Je suis entierement d'accord avec vous, j'ai fais une erreur grotesque...

    Par contre si je mets l'affchage de mon résultat dans la fonction supprime_utilisateur, le résultat n'apparait pas... et m'affiche toujours les informations de l'utilisateurs...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    J'ai placé une redirection comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function supprime_utilisateur($id) {
    $qid = mysql_query("
    DELETE FROM utilisateur
    WHERE id = $id
    "); 
    echo "<meta http-equiv='Refresh' content='5; url=$wwwroot/'>";
    }
    Il retourne bien à l'accueil du site mais je peux toujours accéder au profil de l'utilisateur alors que le compte a été supprimé

    Faut il que je déconnect l'utilisateur en dessous de la redirection?

  6. #6
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Si les informations d'identification sont encore en mémoire après la destruction du compte (exemple : définition d'une constante à TRUE, variable de session...) alors il faut les détruire en même temps que tu détruis le compte.
    Autre chose : vérifie bien que seul les utilisateurs autorisés puissent détruire un compte. Normalement, l'admin peut tout détruire, et chaque utilisateur peut détruire son propre compte.
    et juste une question :
    si je suis un utilisateur
    je tape :
    adresse_de_lapage_courrante?mode=suppr&id=id_dun_autre_utilisateur_que_je_desteste
    ça me permet d'effacer le compte d'un autre?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    Pour ta question concernant la suppression directe, oui le compte s'efface meme s'il y'a un message d'erreur d'authentification. Comme puis-je faire alors?

  8. #8
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Aha, voila le premier piège de sécurité : les variables en GET.
    Pour répondre rapidement à ton problème, je suppose que tu as quelque part dans une variable de session l'id de ton utilisateur.
    Dans ce cas, il faut modifier ta fonction de suppression en faisant par exemple (à développer pour le coup de l'admin):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function supprime_utilisateur($id) {
    if($_SESSION['id'] == $id || $_SESSION['id'] == 'id_de_ladmin')
     {
     $qid = mysql_query("
     DELETE FROM utilisateur
     WHERE id = $id
     "); 
     echo "<meta http-equiv='Refresh' content='5; url=$wwwroot/'>";
     }
    else echo "vous essayez de supprimer un compte qui n'est pas le vôtre, petit brigand";
    }

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    Très bonne idée, c'est ce que j'ai fais et ça fonctionne...Nikel....

    A ton avis, devrais-je faire apparaître par exemple "votre compte a été supprimé" comme l'alerte de suppression, puis celle-ci sera redirigée?

  10. #10
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Oui, tu peux faire comme ça, sinon tu ajoutes un message d'alerte à ta page d'accueil et tu rediriges directement vers ta page d'accueil.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    Cela m'a l'air ultra compliqué de faire appel à une alerte derniere return confirm en javascript...

    Mais bon, faut bien essayer

  12. #12
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Non, je pensais à une alerte en php, du genre écrire en rouge "votre compte a été supprimé" en haut de la page.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    En fait, j'ai procedé de la maniere la plus simple...

    Suppression avec vérification de l'utilisateur, déconnexion puis redirection.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] PHP 5:redirection vers la page courante apres authentification
    Par hraiwen dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/06/2009, 12h52
  2. [PHP-JS] redirection apres telechargement forcé
    Par marielaure2805 dans le forum Langage
    Réponses: 4
    Dernier message: 14/05/2007, 19h28
  3. [Upload] PHP - Redirection après envoi d'un upload
    Par ketoum dans le forum Langage
    Réponses: 4
    Dernier message: 05/03/2007, 21h15
  4. Probleme de redirection apres fermeture de session
    Par soufienne dans le forum ASP
    Réponses: 3
    Dernier message: 08/04/2004, 10h52
  5. [Strategie]Redirection après un formulaire
    Par kyser91 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 19/03/2004, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo