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 :

Regex et mysql pour verification d'un formulaire [RegEx]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Particulier
    Inscrit en
    Septembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Particulier

    Informations forums :
    Inscription : Septembre 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Regex et mysql pour verification d'un formulaire
    Bonjour,

    Au moment de l'envoie de mon formulaire je vérifie si STEAM_0:0:11111 et déjà présent dans ma v$steamid de ma table, mon soucis est que tant qu'il y a qu'une seul steam_id j'y arrive mais si la personne en rajoute une 2 eme avec un espace ( STEAM_0:0:1111 STEAM_0:0:22222 ) ben la vérification ne passe plus, le problème il se peut que la 2 eme steam_id soit déjà présente dans la BD ou même la 1 er du coup le formulaire passe quand même.

    Je me suis dis je vais utilisé une regex comme je le fais quand je vérifie si la steam_id et rentré au bon format avec : (STEAM_[0-9]:[0-9]:[0-9]+)

    Je m'en remet a vous car je cherche depuis 4 jours et j'arrive a aucun résultat :

    Exemple :

    J'ai une steam_id que l'on nomme A
    A est déjà présente dans le champs $steamid en presence de 2 autre steam_id B & C
    Quand le joueurs veut rajouter A ben il le peut hors la steam_id et déjà presente.

    Par contre si A et déjà dans la bd mais sans aucune autre STEAM ben la aucun problème l'ajout et bien refusé !

    Voici mon code d'origine sans aucune modification j'ai supprimé tous mes essaie :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
        function mute()
        {
            global $nuked ;
     
     
            echo "<div class=\"content-box\">\n"
            . "<div class=\"content-box-headercenter\"><h3>" . _AJOUTMUTE . "</h3>\n"
            . "</div>\n";
     
            echo "<form method=\"post\"  action=\"index.php?file=Mute&amp;page=admin&amp;op=addmute\" onsubmit=\"return verifForm(this)\">\n"
            . "<table style=\"margin-left: auto;margin-right: auto;text-align: left;\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\">\n"
            . "<tr><td><strong>" . _PSEUDO . " </strong>&nbsp;<br /><input id=\"1pseudo\" type=\"text\" name=\"pseudo\" value=\"\" size=\"30\" onblur=\"verifPseudo(this)\" required /></td></tr>\n"
            . "<tr><td><strong>" . _STEAMID . "</strong>&nbsp;<br /><input id=\"1steamid\" type=\"text\" name=\"steamid\" value=\"\" size=\"30\" onblur=\"verifSteamid(this)\" required /></td></tr>\n"
            . "<tr><td><strong>" . _RAISON . "</strong>&nbsp;<SELECT id=\"1raison\" name=\"raison\" />\n";
     
            $sql=mysql_query("SELECT id, raisonperf FROM ". LIST_PERF_TABLE ." ORDER BY id ASC" );
            while(list ($id, $raisonperf) = mysql_fetch_array($sql))
     
                echo "<OPTION VALUE=\"". $raisonperf ."\">".$raisonperf."</OPTION>\n";
     
            echo "</td></tr>\n"
            . "<tr><td><strong>" . _TIME . "  : </strong>&nbsp;<SELECT id=\"datefin1\" name=\"temp\"/>\n"
            . "<OPTION VALUE=\"". ($temp = date('d-m-Y', strtotime('+7 days'))) ."\">". _1SEMAINE ."</OPTION>\n"
            . "<OPTION VALUE=\"". ($temp = date('d-m-Y', strtotime('+14 days'))) ."\">". _2SEMAINES ."</OPTION>\n"
            . "<OPTION VALUE=\"". ($temp = date('d-m-Y', strtotime('+21 days'))) ."\">". _3SEMAINES ."</OPTION>\n"
            . "<OPTION VALUE=\"". ($temp = date('d-m-Y', strtotime('+1 month'))) ."\">". _1MOIS ."</OPTION>\n"
            . "<OPTION VALUE=\"". ($temp = date('d-m-Y', strtotime('+3 month'))) ."\">". _3MOIS ."</OPTION>\n"
            . "<OPTION VALUE=\"". ($temp = date('d-m-Y', strtotime('+6 month'))) ."\">". _6MOIS ."</OPTION>\n"
            . "<OPTION VALUE=\"". ($temp = date('d-m-Y', strtotime('+9 month'))) ."\">". _9MOIS ."</OPTION>\n"
            . "<OPTION VALUE=\"". ($temp = date('d-m-Y', strtotime('+1 year'))) ."\">". _1AN ."</OPTION>\n"
            . "</td></tr>\n"
     
            . "<tr><td><strong>" . _MUTE . "  : </strong>&nbsp;<input id=\"checkmute\" type=\"radio\" name=\"mute\" value=\"0\" checked=\"checked\" />&nbsp;<b>" . _UNMUTE . "  : </b>&nbsp;<input type=\"radio\" id=\"checkmute\" name=\"mute\" value=\"1\" /></td></tr>\n"
            . "<tr><td align=\"center\"><br /><input type=\"submit\" class=\"bouton\" value=\"". _ADD ."\" /></td></tr></table></form></div>\n";
     
     
        }
     
            function addmute($steamid, $pseudo, $raison, $temp, $mute)
        {
                    global $nuked, $user;
     
            $sql=mysql_query("SELECT * FROM ". LIST_MUTE_TABLE ." WHERE steamid = '" . $steamid . "'");
            $sql1=mysql_query("SELECT * FROM ". LIST_PERF_TABLE ." WHERE raisonperf = '" . $raison . "'");
            list($raisonperf) = mysql_fetch_array($sql1);
            $count = mysql_num_rows($sql);
     
     
            if($count == 0){
     
                $steamid = printSecuTags($steamid);
                $pseudo = printSecuTags($pseudo);           
                $date = date('d-m-Y H:i:s');
                $raisonperf = printSecuTags($raison);
                $temp = printSecuTags($temp);
                $mute = printSecuTags($mute);
                $admin = printSecuTags($user[2]);
                $token = printSecuTags($user[0]);
     
                $add = mysql_query("INSERT INTO " . LIST_MUTE_TABLE . " ( `steamid`, `pseudo`, `date`, `raison`, `temp`, `mute`, `admin`, `token` ) VALUES ( '" . $steamid . "', '" . $pseudo . "', '" . $date . "', '" . $raison . "', '" . $temp . "', '" . $mute . "', '" . $user[2] . "', '" . $user[0] . "' )");
     
                ?>
                            <div class="notification success png_bg">
                            <div align="center"><strong><h3><?php echo _ADDMUTEINFO; ?></h3></strong><br />
                <strong><?php echo _ADDADMIN; ?></strong><?php echo ($admin); ?><br />
                <strong><?php echo _ADDPSEUDO; ?></strong><?php echo ($pseudo); ?><br />
                <strong><?php echo _ADDSTEAMID; ?></strong><?php echo ($steamid); ?><br />
                <strong><?php echo _ADDRAISON; ?></strong><?php echo ($raison); ?><br />
                <strong><?php echo _ADDMUTE; ?><?php echo _ADDDU; ?></strong><?php echo ($date); ?><strong><?php echo _ADDAU; ?></strong><?php echo ($temp); ?><br />
                <div style="text-align:center;"><a href="index.php?file=Mute&page=admin"><b><?php echo _BACK; ?></b></a></div>
                </div></div>
                <?php
     
            }if ($count != 0){
                $sql1=mysql_query("SELECT id, steamid, pseudo, date, temp, mute FROM ". LIST_MUTE_TABLE ." WHERE steamid = '" . $steamid . "'");
                while (list ($id, $steamid, $pseudo, $date, $temp, $mute) = mysql_fetch_array($sql1)){
     
                    if ($mute != 1){
                        ?>
                        <div class="notification error png_bg">
                        <div align="center"><strong><h3><?php echo _DEJAMUTE; ?></h3></strong><br />
                        <strong><?php echo _ADDPSEUDO; ?></strong><?php echo ($pseudo); ?><br />
                        <strong><?php echo _ADDSTEAMID; ?></strong><?php echo ($steamid); ?><br />
                        <strong><?php echo _ADDRAISON; ?></strong><?php echo ($raison); ?><br />
                        <strong><?php echo _ADDMUTE; ?><?php echo _ADDDU; ?></strong><?php echo ($date); ?><strong><?php echo _ADDAU; ?></strong><?php echo ($temp); ?><br />
                        <div style="text-align:center;"><a href="javascript:history.back()"><b><?php echo _BACK; ?></b></a></div>
                        </div></div>
                        <?php
     
                    }elseif ($mute != 0){
                        ?>
                        <div class="notification error png_bg">
                        <div align="center"><strong><h3><?php echo _DEJAUNMUTE; ?></h3></strong><br />
                        <strong><?php echo _ADDPSEUDO; ?></strong><?php echo ($pseudo); ?><br />
                        <strong><?php echo _ADDSTEAMID; ?></strong><?php echo ($steamid); ?><br />
                        <strong><?php echo _ADDRAISON; ?></strong><?php echo ($raison); ?><br />
                        <strong><?php echo _ADDMUTE; ?><?php echo _ADDDU; ?></strong><?php echo ($date); ?><strong><?php echo _ADDAU; ?></strong><?php echo ($temp); ?><br />
                        <div style="text-align:center;"><a href="javascript:history.back()"><b><?php echo _BACK; ?></b></a></div>
                        </div></div>
                        <?php
     
                    }
                }
            }
        }
    J'utilise un CMS ( nuked-klan ), je sais que m'ont code et pas parfait mais j’apprends tous les jours

    Si une personne pouvais me mettre sur la voix j'ai essaye preg_match, preg_match_all mais je dois avoué que meme en lisant les tuto ou les différent topic de ce forum j'ai vraiment un mal fou a comprendre pourquoi sa fonctionne pas.

    Cordialement,

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    J'avoue que je n'ai pas tout compris.

    Fonction qui contrôle s'il y a des steamid répétés ou pas dans une liste.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php 
     
    function steamOk($liste) {
     $array  = explode(' ',$liste);
     $array2 = array_count_values ( $array );
     if (count($array) == count($array2)) {
       return true;
     } else {
       return false;
     }
    } // function steamOk($liste)
     
    $liste  = "STEAM_0:0:1111 STEAM_0:0:22222 STEAM_0:0:1111 STEAM_0:0:33333";
    if (steamOk($liste)) {
     print "ok";
    } else {
     print "ko";
    }
    print "<br/>";
     
    $liste  = "STEAM_0:0:1111 STEAM_0:0:22222 STEAM_0:0:4444 STEAM_0:0:33333";
    if (steamOk($liste)) {
     print "ok";
    } else {
     print "ko";
    }
     ?>
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Candidat au Club
    Homme Profil pro
    Particulier
    Inscrit en
    Septembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Particulier

    Informations forums :
    Inscription : Septembre 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonsoir,

    Merci de ta réponse !

    Oui j'ai eu du mal a l'expliqué mais tu as compris.

    Par contre la je vais faire des essais mais la ton code je sais pas du tous comment l’intégré au code du premier post.

    Je te tiens au courant demain j'ai toute la nuit pour essayer !

    Merci encore !

    Quoi que en y regardant de plus pres moi je dois faire le contrôle dans la base de donnée si le champs $steamid contient plusieurs steam_id sous le même $id ils doit rejeter l'envoie.

    Voici un screen http://upload.team-shk.fr/regex.PNG

    On peut y voir 2 steam_id : STEAM_0:0:123456 STEAM_0:123456

    Si un membre veux mettre a nouveau la steam_id STEAM_0:0:123456 ben il le pourra hors elle est bien présente par contre si STEAM_0:0:123456 et tous seul dans le champ ben la aucun problème l'envoie est refusée.

  4. #4
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Généralement on contrôle avant la mise à jour de la base de données.
    Ce que tu peux faire.
    - Tu contrôles l'unicité des steamids (cf ma fonction). S'il n'y a pas unicité tu balances une erreur.
    - Si pas d'erreur.
    - Tu fais un explode de la variable qui contient la liste des steamids. Pour chaque élement du tableau tu contrôles si le steamid est présent dans la table avec l'instruction SQL LIKE. Si tu trouves au moins une fois un enregistrement c'est que le steamid est déjà dans la table.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  5. #5
    Candidat au Club
    Homme Profil pro
    Particulier
    Inscrit en
    Septembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Particulier

    Informations forums :
    Inscription : Septembre 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Moi je fais un contrôle via :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql=mysql_query("SELECT * FROM ". LIST_MUTE_TABLE ." WHERE steamid = '" .$steamid. "' ");        
    $count = mysql_num_rows($sql);
    Et comme dit plus haut ton code je sais pas du tous ou le mettre... je débute ce que tu peux voir dans mon code ma déjà pris 2 mois à faire.

    J'ai essayé LIKE dans ma requête sql sa me donne le même résultat que un $count

    Je continue a chercher mais la franchement ton code je sais pas du tous comment l'intégré au miens

    Si j'y arrive d'ici demain matin je mettrai la solution

    Merci de ton aide.

  6. #6
    Candidat au Club
    Homme Profil pro
    Particulier
    Inscrit en
    Septembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Particulier

    Informations forums :
    Inscription : Septembre 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bon j'ai tous essayé j'y arrive pas.

    Bonne soirée.

  7. #7
    Candidat au Club
    Homme Profil pro
    Particulier
    Inscrit en
    Septembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Particulier

    Informations forums :
    Inscription : Septembre 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bon j'ai trouvé....


    ligne 42 : j'ai oublié de rajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      list($id, $steamid, $pseudo, $date, $temp, $mute) = mysql_fetch_array($sql);
    L'erreur bête ! désoler du dérangement j'ai passé 9 heures sur çà !!!!!

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

Discussions similaires

  1. [Smarty] Extraction MySQL pour formulaire
    Par kitiss dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 16/01/2009, 18h12
  2. Réponses: 4
    Dernier message: 27/07/2007, 16h52
  3. Boucle JavaScript pour verif de formulaire
    Par VooDooNet dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 19/09/2006, 17h34
  4. Problème pour la verification d'un formulaire
    Par Matahachi dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/11/2004, 21h52
  5. Requete MySql pour Mambo Open source
    Par azman0101 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/06/2004, 09h34

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