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 :

[Tableaux] caractères interdits et array


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut [Tableaux] caractères interdits et array
    Bonjour,

    J'écris une petite fonction, mais qui n'a pas l'air de fonctionner...

    L'idée est de mettre des caractères interdit dans un tableau array et de soumettre par exemple un message issue d'un formulaire pour savoir si l'un des caractères du tableau est présent dans le message.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $message = 'n\'importe quoi !';
    $arr_err = array('\n', '\r', '<script>', '</script>');
    $arr_res = array_key_exists($message, $arr_err);
    Comment traiteriez vous ce processus ?

    A bientôt et merci.

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $message = 'n\'importe quoi !';
    $arr_err = array('\n', '\r', '<script>', '</script>');
     
    reset($arr_res);
    $found = false;
    while ($found !== false && (list(,$v) = each($arr_err))) {
       $found = stripos($message, $v);
    }
    if ($found !== false) {
       echo htmlentities(stripslashes($v)).' a été trouvé';
    }

  3. #3
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut
    Merci beaucoup !!!

    J'étais un peu loin de la solution sur ce coup...

    A bientôt...

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Euh... c'est pas forcément "la" solution !

  5. #5
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut
    Bonjour,

    Exact, ce n'est pas la solution :-)

    En fait j'ai modifier stripos en strpos puisque je suis sous php 4.4.4, mais je crois que l'erreur qui fait que ça ne fonctionne pas, c'est la variable $v, elle vient d'où ?

    A bientôt...

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    remplace alors stripos par stristr pour faire une recherche insensible à la casse.
    Sinon $v vient de each()

  7. #7
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Voilà ce qui arrive quand on ne teste pas les solutions qu'on propose
    L'erreur venait principalement de l'invariant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?
    $message = 'n\'importe<script> quoi !';
    $arr_err = array('\n', '\r', '<script>', '</script>');
     
    reset($arr_err);
    $found = false;
    while ($found === false && (list(,$v) = each($arr_err))) {
      $found = stristr($message, $v);
    }
    if ($found !== false) {
      echo htmlentities(stripslashes($v)).' a été trouvé';
    }
    ?>

  8. #8
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut
    Je verrais bien Bourvil dire : "Ah ben ça marche beaucoup mieux maintenant !"



    Merci pour ton aide !

    A bientôt...

  9. #9
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 264
    Par défaut
    Bon pour ceux qui sont intéressé par la fonction, la voici :

    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
     
    $arr_err = array('\n', '\r', '<script>', '</script>');
    $message = 'écrire votre texte ici en testant les caractères interdits...';
     
    function forbidden($error, $string)
    {
    	reset($error);
    	$found = FALSE;
     
    	while ($found === FALSE && (list(,$v) = each($error)))
    	{
    		$found = stristr($string, $v);
    	}
     
    	return $v;
    }
     
    $var1 = forbidden($arr_err, $message);
    if ($var1 == TRUE) { $var2 = '1'; } else { $var2 = '0'; }
    A bientôt...

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

Discussions similaires

  1. [Tableaux] Chercher une chaîne de caractères dans un array()
    Par Julien Rozier dans le forum Langage
    Réponses: 2
    Dernier message: 03/05/2008, 12h55
  2. [XML] caractères interdits
    Par ep31 dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 02/12/2005, 20h05
  3. Réponses: 16
    Dernier message: 24/11/2005, 12h43
  4. [Requête SQL] Caractère interdit
    Par Mister Nono dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 13/09/2005, 09h28
  5. [Requete SQL] Caractère interdit
    Par Mister Nono dans le forum SQL
    Réponses: 1
    Dernier message: 13/09/2005, 09h09

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