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 :

Vérification oui mais ou


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut Vérification oui mais ou
    Bonjour

    j'utilise un script php pour vérifier les champs de mon formulaire mais comme j'utilise header(Location: je dois mettre mon script avant le code html et non dans le code du fichier formulaire.php

    J'utilise une structure simple une page qui appelle par include : entete, menu, sidebar...

    Toutes les pages appelles donc comme premier morceau de code entete.php qui contient tout ce qui se trouve en debut de page (<doctype>, <html>....)

    Je dois donc mettre mon script de vérication dans ce fichier entete.php qui est inclu par toutes mes pages.

    Mais je me demad s'il n'y a pas une solution pour éviter de charger un script de vérification de formulaire alors que je n'affiche pas de formulaire dans 90% des cas.

    Il en va de meme pour l'initialisation des variables...
    Le temps de chargement de la page...
    Et l'utilisation des resources du serveur... ou cela n'a aucune importance (si cela rend entete complexe si elle doit contenir les script du site, meme si c'est juste pour afficher que du texte).

    Débutant en php et n'aillant pas d'experience dans la programmation je ne sais pas quelle solution adopter ???

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    hummm

    en fait tout dépend si l'envoi du html au navigateur est retardé apres sa génération.

    ça dépend aussi du principe de fonctionnement de ton site avec soit une page index.php qui est appelée tout le temps ou une multitude de page appelée.

    le plus simple c'est de faire une page spéciale pour la réception des formulaires, vers laquelle tous tes formulaires pointeront. Tu utilises un "identifiant" de formulaire pour distinguer dans quel formulaire tu te trouves et ensuite, vérification faire tu réinclues ta page normale.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Par défaut
    je ne maitrise pas encore tout donc pour le moment j'ai pas une page index.php qui appel les contenus.

    Pour le moment ce sont les pages contenu (et donc formlaire) qui appellent l'entete, le menu et les sidebar.

    je ne redirige pas le traitement du formulaire sur une autre page car je souhaite pouvoir afficher des message d'erreur et conserver les champs saisies (sans que l'on doive les retapper).

    Débutant je n'utilise pas encore les bases de donnés ni les sessions.

    du coup je me retrouve dans mon entete avec le code suivant

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
     
    $webmaster = "mail@site.com";
     
    if(isset($_POST['envoyer'])){     
        $alerte = $_POST['envoyer']; 
        $nom = htmlentities($_POST['nom'], ENT_NOQUOTES);  
        $mail = htmlspecialchars($_POST['mail'], ENT_QUOTES);  
        $tel = htmlspecialchars($_POST['tel'], ENT_QUOTES); 
        $sujet = htmlspecialchars($_POST['sujet'], ENT_QUOTES); 
        $message = htmlspecialchars($_POST['ville'], ENT_QUOTES); 	
    }
     
     
    function verif_null($var){
        if($var!=""){
         return $var;
       }
    }
     
    function verif_mail($var) 
    {
       $code_syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; 
          if(preg_match($code_syntaxe,$var)){ 
            return $var;
          }   
    }
     
    function verif_tel($var)  
    {
       $code_syntaxe='#^[0-9]{9,18}$#'; 
          if(preg_match($code_syntaxe,$var)){
            return $var;
          }
    }
    function envoi_mail($webmaster,$nom,$mail,$sujet,$tel,$message){ //fonction qui envoie le mail
           $contenu_message = "Nom : ".$nom."\nMail : ".$mail."\nSujet : ".$sujet."\nTelephone : ".$tel."\nMessage : ".$message;
    	   $entete = "From: ".$nom." <".$mail."> \nContent-Type: text/html; charset=iso-8859-1";
     
           mail($webmaster,$sujet,$contenu_message,$entete);
     
     
    }
     
     function verif_form($webmaster,$nom,$mail,$sujet,$tel,$message){ //fonction qui verifie si le formulaire est pret a etre envoyer
            if(verif_null($nom)
    		&& verif_null($sujet)
    		&& verif_null($message)
    		&& verif_tel($tel)
    		&& verif_mail($mail)
    		&& isset($_POST["type_travaux"])
    		&& isset($_POST["nature_travaux"])
    		&& isset($_POST["archi"])
    		&& isset($_POST["type_travaux"])
    		) 
    		{ // verifie si toute les fontions sont a true
    		   envoi_mail($webmaster,$nom,$mail,$sujet,$tel,$message);
    		   header('Location: http://www.monsite.com/');
    		}else{
     
    		} 
    } 
     
    ?>
     
    <br />
    <?php 
    if(isset($alerte)){ 
       verif_form($webmaster,$nom,$mail,$sujet,$tel,$message); 
    }
    ?>
    qui se charge pour toutes les pages meme celle qui n'utilise pas de formulaire.

    Je suppose que c'est pas terrible ???

  4. #4
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function verif_null($var)
    {
        if($var!=""){
         return $var;
       }
    }
    ça c'est pas terrible. un compilateur C refuserai ce genre de chose. En plus ça ne fait pas ce que son nom laisse entendre.

    ceci non plus c'est pas terrible
    je fais partie des développeurs qui déteste que le flux php soit interrompu. Imagine que tu utilises hearder... ben t'es obligé de faire un ob_start() pour manger les deux retours à la ligne alors que sinon, juste en étant propre t'étais pas obligé.

    C'est super compliqué de répondre à ta question. ya pas de bonne solution. Je pense que tu peux inclure 100000 lignes de code php sans que tu soies la moindre influence sur tes perfs (je dis pas que ... ) mais avant de voir la penalité, il en faut beaucoup!

    pour tes définitions de fonction, je les regrouperai toute dans une lib que j'inclue automatiquement, ou mieux, sous forme de methode statique d'une classe que j'appelle automatiquement avec l'autoload.

    du coup ça ne charge que les classes utilisées et à l'écriture tu remplaces un
    verif_null() par un Helper::verif_null() et t'as l'impression d'être le roi du pétrole parce que tu as écrit

    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
     
    Class Helper
    {
     static function verif_null($var)
     { 
      if ( null === $var )
      {
        return $var;
      }
      else
      {
        return $var;
      }
     }
     
    }

Discussions similaires

  1. Requete imbriquée, oui mais...
    Par zax-tfh dans le forum Requêtes
    Réponses: 6
    Dernier message: 24/03/2005, 01h48
  2. Réponses: 2
    Dernier message: 03/03/2005, 23h23
  3. Création de logiciel, oui, mais quelle base de donnée ?
    Par Acti dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 17/02/2005, 12h41
  4. HomeDB, oui mais comment ?
    Par Gregouz dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 27/10/2004, 15h27
  5. [APPLET-SERVLET] download oui mais upload non ...
    Par meufeu dans le forum Applets
    Réponses: 7
    Dernier message: 09/08/2004, 14h36

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