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 :

Vérification de formulaire avant stockage dans une base de donnée


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Vérification de formulaire avant stockage dans une base de donnée
    Bonjour,

    J'ai créé un site regroupant un bon nombre de questions pour réviser plus facilement la médecine où les utilisateurs peuvent accéder à la réponse uniquement s'ils ont déjà répondu à la question.
    Les réponses des utilisateurs sont ensuite stockées dans une base de données puis affichées à tous ceux qui ont déjà répondu à cette question.
    J'ai limité la vérification du formulaire qui doit contenir au moins 6 caractères dans un if/else pour être valide. Cependant un petit malin à trouvé la ruse en répondant "dddddddd" ou "eeeeeeee" à toutes les réponses pour en afficher le contenu....

    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
    <?php
    $texte=$_POST['texte'];
    $froms = "{$_SERVER['HTTP_REFERER']}&f=success#conf";
    $frome = "{$_SERVER['HTTP_REFERER']}&f=error#conf";  
    if(strlen($texte) > "6"){
     
    // Connexion à la base de données
    include('pdo.php');
     
    // Insertion 
    $req = $pdo->prepare('INSERT INTO cci_comment(id, cci_id, cci_pseudo, comment, date,user_id) VALUES("", ?, ?, ?, NOW(),?)');
     
    $req->execute(array($_POST['confid'],$_POST['pseudo'], $_POST['texte'],$_POST['user_id']));
     
    // Redirection 
     
     
    header("location:".  $froms); 
    }
    else
    {
     
    header("location:".  $frome); 
     
    }
    ?>
    Je voulais savoir, s'il était possible d'ajouter plus de contraintes avant l'envoi du formulaire afin de limiter ce genre de réponses inutiles.

    Je sais qu'il serait possible de faire un truc intermédiaire, avec des réponses qui sont validées par l'administrateur en passant d'un statut 0 à 1 sur la table cependant ce n'est le but du site, ce serait vraiment trop long pour tout valider et l'utilisateur ne retournera pas sur le site...

    Merci d'avance pour votre aide .

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    C'est très compliqué à mettre en place, de toutes façons, il y aura toujours des petits malins pour répondre n'importe quoi, et je vois difficilement (même s'il répond "bronchite" à chaque fois, c'est un mot du dico, c'est une réponse possible donc il est impossible de l'enlever),ce que tu peux faire pour les en empêcher, si ce n'est rajouter des contrôles de ce genre (si 3 fois fois la même lettre à la suite, il y a des chiffres, toujours la même réponse)...
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci,

    Du coup, pour repérer la répétition de caractère j'utilise maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(strlen($texte) < "6" || preg_match('`(.)(\1{3,})`',$texte,$out)){
            //message erreur
    	header("location:".  $frome);
    Sais tu comment appliquer cette règle aux accents ??

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/09/2013, 10h44
  2. Réponses: 13
    Dernier message: 08/01/2011, 02h52
  3. Vérifier données avant insertion dans une base de données
    Par massbbc dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/09/2010, 11h08
  4. Formulaire d'insertion dans une base de données
    Par lalarita dans le forum Langage
    Réponses: 4
    Dernier message: 19/07/2010, 22h03
  5. [MySQL] Envoi d'information dans une base de donnée via formulaire
    Par Mysti¢ dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/03/2006, 20h35

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