[PHP] Regex

Résolu
Bonjour, j'aimerais faire une regex qui permet de vérifier si il y a des balises script dans l'url.
J'ai une url comme ça :
.php?variable=
J'aimerais avoir une regex qui vérifie si il y a quelquechose comme ça :
.php?variable=<script>n'importequel caractere</script>

Voilà ^^'

12 réponses

  1. Salut !

    Quel est le but de l'opération ? Est-ce que c'est pour de la sécurité ? Si c'est ça, il y a probablement des moyens plus faciles...

    Mais sinon, petite référence :
    https://www.php.net/manual/en/function.preg-grep.php

    Tu passes ce filtre-là :
    $fl_array = preg_grep("\<script\>", $_GET["variable"]);


    quand tu récupères ta variable de ton url... Ou quelque chose dans le genre. Dis-moi si ça répond à ta question...
    1. En fait j'ai besoin de faire un truc de ce genre :
      if (isset($_GET['variable']) AND ...regex pour savoir si il y a <script>...</script> dans l'url...)
      {
      	echo 'Il y a des balises script dans l'url';
      	}
      	
      else
      {
      echo '...';
      }
      1. $erreur = '';
        
        if (isset($_GET['variable'])) {
        	$erreur = preg_grep("\<.*script.*\>", $_GET["variable"]);
        
        	if (count($erreur) > 1) {
        		echo 'Il y a des balises script dans l'url';
        	} else {
        		echo 'Pas d\'erreur !';
        	}
        }
        


        Je n'ai pas testé... Dis-moi si ça marche... :-S
        1. Warning: preg_grep() expects parameter 2 to be array, string given in C:\... on line 5

          Ligne 5 : $erreur = preg_grep("\<.*script.*\>", $_GET["variable"]);
          1. Merci, ça marche, par contre fallait juste rajouter les '#' au début et à la fin :D
            Seul soucis, ça marche si on fait
            .php?variable=<script>
            J'aimerais que cela marche que si la balise est refermée..
            Si c'est possible :s
            Merci d'avance
            1. up
            2. Dans ce cas :

              preg_grep("\<.*script.*\>.*\</.*script.*\>", $_GET["variable"]);

              Je pense que ça devrait faire l'affaire ;-)
            3. J'ai changé ton code par
              preg_match("#\<.*script.*\>.*\</.*script.*\>#", $_GET["variable"])


              ...Et ça marche! merci beaucoup ^^
            4. Content d'aider ! ;-)
          2. .php?variable=<script><script><script></script></script></script>
            n'importe quel caractere meme ceci ?
            1. Oui, vraiment n'importequoi du moment que ca commence par <script> et se finit par </script>.