Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/02/2011, 19h41   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 2
Points : 2
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 ???
megaup34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 10h21   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
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 : 951
Points : 1 063
Points : 1 063
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.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 14h20   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 2
Points : 2
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 :
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 ???
megaup34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 14h53   #4
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
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 : 951
Points : 1 063
Points : 1 063
Code :
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 :
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;
  }
 }
 
}
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h21.


 
 
 
 
Partenaires

Hébergement Web