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 :

[Sécurité] Confirmation avant de supprimer


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 102
    Points : 70
    Points
    70
    Par défaut [Sécurité] Confirmation avant de supprimer
    Bonjour !

    Voici mon code qui permet de supprimer un enregistrement dans ma bd :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span style="background-color:#FFFF66"><a href="index.php?content=2&amp;showAll=0&amp;Delete=1&amp;mID=<?php echo $row->IDMATCH ; ?> "class="lienNormal">Effacer</a></span>
    Au sommet de ma page :

    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
    if ($HTTP_GET_VARS['Delete'] == 1)
    	{
    	//seuls les admins peuvent changer le status d'un match
    	if ($_SESSION['islogged'] == 1 && $_SESSION['level'] == 2)
    		{
    		$sql = "DELETE FROM `matchs` WHERE IDMATCH = ".$HTTP_GET_VARS['mID']." " ;
    		$result = mysql_query($sql) or die(queryError($PHP_SELF, mysql_error(), $sql)) ;
     
    		$sql2 = "DELETE FROM `joueurmatch` WHERE IDMATCH = ".$HTTP_GET_VARS['mID']." " ;
    		$result2 = mysql_query($sql2) or die(queryError($PHP_SELF, mysql_error(), $sql2)) ;
     
    		$sql3 = "DELETE FROM `evenementmatch` WHERE IDMATCH = ".$HTTP_GET_VARS['mID']." " ;
    		$result3 = mysql_query($sql3) or die(queryError($PHP_SELF, mysql_error(), $sql3)) ;
    		}
    	}
    Cela marche parfaitement. En fait je rappelle la même page avec des paramètre en plus.

    Ce que j'aimerai faire maintenant c'est d'avoir un message me demandant confirmation avant d'exécuter la suppression. Comment faire cela ? Javascript - PHP - HTML ? Qqn peut m'aider ? Qqn peut me coder ça ?

    Merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    la confirmation avant l'exécution d'une portion de code, c'est en javascript pour faire simple.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if confirm('Etes-vous sur de vouloir supprimer ?) {
    return true;
    }
    else {
    return false;
    }
    Tu mets un onsubmit sur ton formulaire. Comme ça, si ta fonction retourne true, le formulaire est soumis, et si elle retourne faux, le formulaire n'est pas soumis.

    Tu pourrais aussi faire en php, mais ça voudrait dire faire une page php intermédiaire qui te demande confirmation (l'équivalent d'une boîte de dialogue). Donc beaucou plus lourd, mais le js peut être bloqué par les utilisateurs

  3. #3
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Tu peux le faire avec une page intermediaire en php ou vois du coté du javascript (fonction confirm)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Mais je ne travaille pas via un FORM. Je travaille avec href. Je vois pas comment faire.

  5. #5
    Membre régulier Avatar de Luffy Duck
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 165
    Points : 120
    Points
    120
    Par défaut
    tu peux faire une sorte de variable de validation.

    Tu regardes par exemple si la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_GET['validation'] === "true"
    si oui, ben tu supprimes, sinon tu demandes bien gentiment la confirmation, avec un lien sur la page.php?blabla=opopop&validation=true.
    "Des Lapins ? Mais on est pressés... ça devrait aller... Tu crois pas ?"

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Je ne veux et peux pas travailler via une page php en plus malheureusement.

  7. #7
    Membre régulier Avatar de Luffy Duck
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 165
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par borgfabr
    Je ne veux et peux pas travailler via une page php en plus malheureusement.


    heu... et c'est quoi le langage du code que tu as posté plus haut ?
    "Des Lapins ? Mais on est pressés... ça devrait aller... Tu crois pas ?"

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Dans le href, lances une fonction javascript qui demande confirmation et si oui, tu changes le location.href en ajoutant les paramètres de suppression.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <span style="background-color:#FFFF66"><a href="javascript:confirmation(2&amp,0&amp,1&amp,<?php echo $row->IDMATCH ; ?>) "class="lienNormal">Effacer</a></span>
     
    function confirmation(p1,p2,p3,p4) {
    if confirm('Etes vous sur ?') {
    window.location.href='index.php?content='+p1+'&showAll='+p2+'&Delete='+p3+'&mID='+p4;
     
    }

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Je veux dire faire une page php intermédiaire qui demande la confirmation.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Comment faire cela ? Javascript - PHP - HTML ? Qqn peut m'aider ? Qqn peut me coder ça ?
    y a contradiction alors :o

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par jibouze
    Dans le href, lances une fonction javascript qui demande confirmation et si oui, tu changes le location.href en ajoutant les paramètres de suppression.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <span style="background-color:#FFFF66"><a href="javascript:confirmation(2&amp,0&amp,1&amp,<?php echo $row->IDMATCH ; ?>) "class="lienNormal">Effacer</a></span>
     
    function confirmation(p1,p2,p3,p4) {
    if confirm('Etes vous sur ?') {
    window.location.href='index.php?content='+p1+'&showAll='+p2+'&Delete='+p3+'&mID='+p4;
     
    }
    +1

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par Mystic26
    Citation Envoyé par jibouze
    Dans le href, lances une fonction javascript qui demande confirmation et si oui, tu changes le location.href en ajoutant les paramètres de suppression.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <span style="background-color:#FFFF66"><a href="javascript:confirmation(2&amp,0&amp,1&amp,<?php echo $row->IDMATCH ; ?>) "class="lienNormal">Effacer</a></span>
     
    function confirmation(p1,p2,p3,p4) {
    if confirm('Etes vous sur ?') {
    window.location.href='index.php?content='+p1+'&showAll='+p2+'&Delete='+p3+'&mID='+p4;
     
    }
    +1
    J'ai recopié ça mais rien ne se passe quand je clique sur mon lien. On dirait qu'il ne va pas chercher la fonction.

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Pardon, mais la fonction javascript, tu dois la mettre entre des balises :

    <script language='javascript>
    ...
    </script>

    Sinon, tu dois voir le code de la fonction apparaitre sur la page.

    De préférence places les scripts js dans le <head> de ta page. Même si c'est une page php, tu dois bien avoir une balise <html>, une <head> et une <body>.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par jibouze
    Pardon, mais la fonction javascript, tu dois la mettre entre des balises :

    <script language='javascript>
    ...
    </script>

    Sinon, tu dois voir le code de la fonction apparaitre sur la page.

    De préférence places les scripts js dans le <head> de ta page. Même si c'est une page php, tu dois bien avoir une balise <html>, une <head> et une <body>.
    Pour les balises javascript c est ok j avais fait. Mes script js sont tt au début de page.

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Ah, peut-être que la gueule des paramètres ne lui va pas super.

    Essaies :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <span style="background-color:#FFFF66"><a href="javascript:confirmation('2&amp;','0&amp;','1&amp;','<?php echo $row->IDMATCH ; ?>') "class="lienNormal">Effacer</a></span>
    Et regardes dans la barre d'état en bas de la fenêtre. Quand tu pointes sur le lien, tu devrais voir qqch du genre "javascript:confirtmation(...)"

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par jibouze
    Ah, peut-être que la gueule des paramètres ne lui va pas super.

    Essaies :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <span style="background-color:#FFFF66"><a href="javascript:confirmation('2&amp;','0&amp;','1&amp;','<?php echo $row->IDMATCH ; ?>') "class="lienNormal">Effacer</a></span>
    Et regardes dans la barre d'état en bas de la fenêtre. Quand tu pointes sur le lien, tu devrais voir qqch du genre "javascript:confirtmation(...)"
    Non rien ne se passe ...
    Cependant quand je pointe sur le lien ca marque bel est bien javascript:confirmation(les bons paramètres)

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Alors rajoutes un alert('qqch'); dans ta fonction et mets en commentaire tout le reste, pour voir si tu rentres effectivement dans la fonction.
    S'il ne se passe toujours rien, faudrait balancer toute ta page pour qu'on regarde de plus près.

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    oui ca rentre bel et bien dans la fonction mon messsage s'affiche mais pas la demande de confirmation.

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    C EST BON CA MARCHE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (confirm('Etes vous sûr de vouloir effacer ce match ?'))
    Il fallait rajouter les paranthèse avant le confirm

  20. #20
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    J'ai peut-être oublié des parenthèses (c'est ma spécialité) :

    Essaies ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (confirm("Etes-vous sûr de vouloir supprimer cette ligne ?")) {
    alert('qaqch');
    }
    J'ai été trop lent...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/12/2012, 12h24
  2. Dialog de confirmation avant de supprimer..
    Par pitispike dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 06/03/2010, 09h07
  3. Réponses: 4
    Dernier message: 04/04/2006, 16h09
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43
  5. Réponses: 2
    Dernier message: 03/08/2004, 16h24

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