[RESOLU] regex qui ne fonctionne pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] regex qui ne fonctionne pas

Re: regex qui ne fonctionne pas

par va_savoir » 18 sept. 2013, 13:20

OK ça marche je vous remercie. Bonne journée. :lol:

Re: regex qui ne fonctionne pas

par juliette » 18 sept. 2013, 12:49

Regarde ce code:
<?php

// Je force les variable $_POST pour qu'elle existe
// Pour remplacer ta requette
$_POST['pseudo'] = "steeve";
$_POST['message'] = "le message";

// Je test leurs existences et la présence d'un contenu
if (isset($_POST['pseudo']) AND ($_POST['message'])) {

    // Je verifie la présence des caractères // et <>
    if (preg_match("#[//<>]#", $_POST['message'])) {
        
        // Elle existe mais les // et <> sont present, je préviens l'utilisateur
        echo "<center><font color=\"red\"><strong> Veuillez remplir le formulaire avec des caractères standart.</strong></font><br></center></b>";
    
    // Elle existe et les caractere // ou <> sont abscent
    }else{
        // Ajout de la requete ici
        echo "<br />";
        echo "J'enregistre ici via la requette";
    }

// Elles n'existe pas, je demande au visiteur de remplir le formulaire 
} else {
    echo "<center><font color=\"red\"><strong>
      Veuillez remplir le formulaire.</strong></font><br></center></b>";
}
?>

Re: regex qui ne fonctionne pas

par juliette » 18 sept. 2013, 12:05

j'ai ajouté une regex pour supprimer les // et chevrons mais ça ne marche pas.
Alors je comprend pas, explique la procédure que tu souhaite.

EDIT: si tu les supprime, je pense que prévenir l'utilisateur ne sert pas a grand chose et si tu le préviens pour qu'il remplisse correctement le formulaire alors pourquoi les supprimer ?

Re: regex qui ne fonctionne pas

par va_savoir » 18 sept. 2013, 11:29

Oui c'est exactement ce que je veux que le message s'affiche.

Re: regex qui ne fonctionne pas

par juliette » 18 sept. 2013, 11:09

Salut, La fonction preg_match() de ton code ne sert pas a supprimer mais a détecter la présence des //
Dans ton cas, si leurs présences est détecter, alors tu dis visiteur "Veuillez remplir le formulaire avec des caractères standard" mais ton code ne remplace rien !

regex qui ne fonctionne pas

par va_savoir » 18 sept. 2013, 09:21

Bonjour à tous

J'ai suivi le tutos du minichat de M@teo sur le site Openclassrooms (site du zero) est j'aimerais éviter les liens intempestifs genre <a href = http://www.site.com </a > mon site bref j'ai ajouté une regex pour supprimer les // et chevrons mais ça ne marche pas. Merci d'avance .

<?php
try
   {
    $bdd = new PDO('mysql:host=mysql5-13.perso;dbname=truc', 'truc', 'xxx');
  }

catch(Exception $e)
    {
     die('Erreur : '.$e->getMessage());
   }

  if (isset($_POST['pseudo']) AND ($_POST['message'])) 

{
$req = $bdd->prepare('INSERT INTO minichat (pseudo, message, date_fr) VALUES(?, ?, NOW())');
$req->execute(array($_POST['pseudo'], $_POST['message']));
header('Location: minichat.php');
  }

   elseif( preg_match("#[//<>]#", $_POST['message']))
  {
  echo "<center><font color=\"red\"><strong>
   Veuillez remplir le formulaire avec des caractères standart.</strong></font><br></center></b>"; 
  
 }
else
  {

   echo "<center><font color=\"red\"><strong>
      Veuillez remplir le formulaire.</strong></font><br></center></b>"; 
  
  }
?>