[PHP] drapeux avec filter_var()

Bonjour,

J'aimerais avoir plus d'informations sur les drapeaux de filter_var() avec FILTER_VALIDATE_URL.

Sur la doc PHP il en parle pas : https://www.php.net/manual/fr/function.filter-var.php

Pouvez vous donc me dire la signification de c'est drapeaux après FILTER_VALIDATE_URL :

FILTER_FLAG_SCHEME_REQUIRED
FILTER_FLAG_HOST_REQUIRED
FILTER_FLAG_PATH_REQUIRED
FILTER_FLAG_QUERY_REQUIRED

Voila mon code actuel :

<?php
if(!filter_var($_POST['url'], FILTER_VALIDATE_URL)) {
echo 'PAS OK';
}
?>


Merci d'avance.

9 réponses

  1. Je pense pas que ce sois ça car j'ai fait un test et cela ne correspond pas.
    1. Ça permet de dire à MySQL d'ignorer la gestion des droits. Même un utilisateur ultra-limité peut faire ce qu'il veut.

      N'oublie pas de redémarrer le serveur après ;)
      1. Chaque utilisateur peut faire certaines choses et pas d'autres.
        root est celui qui peut tout faire.
        Avec cette option, tous les utilisateurs peuvent tout faire, y compris créer d'autres utilisateurs.
      2. Je pense que tu t'es trompé de topic, la on parle pas de MySQL, mais des drapeaux de filter_var().
      3. Ouais, désolé, j'ai encore dû vouloir scroller avec le curseur sur le barre d'onglets ;)
      4. xD, t'es pas le seul à qui ça arrive t'inquiète pas.
    2. D'accord merci :)

      Et si on met rien (la fonction sans drapeau) que ce passe t-il ?
      1. "Des options sont éventuellement utilisées par la validation et le nettoyage, pour adapter leur comportement à des besoins spécifiques. Par exemple, avec l'option FILTER_FLAG_SCHEME_REQUIRED pour filter une URL, il faut indiquer le protocole utilisée (tel que http://)."

        On prend l'exemple de une page fictive de ccm :

        http:// www.commentcamarche.net/forum/afficher-une-page.php?couleur=bleu&couleur2=rouge


        "SHEME"
        c'est le http:// (le protocole, ca peut aussi être https:// ou ftp://)
        "HOST" c'est le www.commentcamarche.net (le nom de domaine, juste la base avant les slash /)
        "PATH" c'est forum/afficher-une-page.php (la partit après le premier slash ( / ) jusqu'au point d'interrogationetsi il y en a pas c'est jusqu'à la fin)
        "QUERY" c'est couleur=bleu&couleur2=rouge (après le point d'enterrogation)
        1. Ah oui exact, j'ai regardé trop vite, désolé.

          Pour "HOST" c'est que le http:// est facultatif ?
          Sinon "SCHEME" c'est quoi ?
          Puis si on met rien, il ce passe quoi ?
          1. D'accord merci pour la page.

            FILTER_FLAG_SCHEME_REQUIRED => Schéma requis. = ?
            FILTER_FLAG_HOST_REQUIRED => Hôte requis. = ?
            FILTER_FLAG_PATH_REQUIRED => Chemin requis. = http://site.com/dossier/
            FILTER_FLAG_QUERY_REQUIRED => Requête requise. = ?

            Je connais pas la signification, serrait t-il possible d'avoir des exemple ?
            Et si on ne met pas de drapeau il se passe quoi ?

            Merci d'avance.
            1. Salut.

              Voilà toutes les constantes de cette extension :
              https://www.php.net/manual/fr/filter.constants.php

              "HOST" : requis le nom de domaine dans la chaine
              "PATH" : requis un chemin dans l'URL (après le domaine)
              "QUERY" : requis des données GET ("?var=val&var2=val2&...")

              Tu peux les combiner avec le signe « | » entre ces différentes constantes.