[RESOLU] regex qui ne fonctionne pas

Eléphanteau du PHP | 11 Messages

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>"; 
  
  }
?>

Mammouth du PHP | 790 Messages

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 !
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphanteau du PHP | 11 Messages

18 sept. 2013, 11:29

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

Mammouth du PHP | 790 Messages

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 ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 790 Messages

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>";
}
?>
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphanteau du PHP | 11 Messages

18 sept. 2013, 13:20

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