Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 26/01/2012, 10h01   #1
Invité de passage
 
Femme Armandine
Tout ce que ne fait pas le patron
Inscription : mars 2008
Messages : 27
Détails du profil
Informations personnelles :
Nom : Femme Armandine
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Tout ce que ne fait pas le patron

Informations forums :
Inscription : mars 2008
Messages : 27
Points : 4
Points : 4
Par défaut Validation du formulaire ne fonctionne pas

Bonjour,

Je travaille sur un formulaire html, j'ai fait un fichier traitement.php.

Sur le principe, ça fonctionne dans la mesure où le mail part.
Dans la pratique il faudrait que la partie validation du script fonctionne. Mais là, je commence à sécher. Pourriez-vous m'aider SVP ?

Mon formulaire :
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
 
<form name="contact_part" method="post" action="traitement.php">
    <table style="border-color: rgb(0, 0, 0); background-color: rgb(255, 204, 153); width: 100%;">
    <tbody>
      <tr>
        <td width="50%"><label>Votre nom(*):&nbsp;</label></td>
        <td><input name="nom" id="nom" size="30" type="text" /></td>
      </tr>
      <tr>
        <td><label>Votre pr&eacute;nom (*) :&nbsp;</label></td>
        <td><input name="prenom" id="prenom" size="30" type="text" /></td>
      </tr>
      <tr>
        <td><label>Votre soci&eacute;t&eacute; :&nbsp;</label></td>
        <td><input name="societe" id="societe" size="30" type="text" /></td>
      </tr>
      <tr>
        <td><label>Sujet du message (*) :</label></td>
        <td>    
			<select name="sujet">
				<option value="choix" selected="selected">S&eacute;lectionner un th&egrave;me</option>
				<option value="Question sur le Portage Salarial">Questions sur le Portage Salarial </option>
				<option value="Question sur le site">Questions sur le site</option>
				<option value="CNIL et Droit d'acc&amp;eagrave;s">CNIL Droit d'acc&egrave;s</option>
			</select>
        </td>
      </tr>
      <tr>
        <td><label>Votre t&eacute;l&eacute;phone (*) :&nbsp;</label></td>
        <td><input name="telephone" id="telephone" size="30" type="text" /></td>
      </tr>
      <tr>
        <td><label>Votre courriel (*) :</label></td>
        <td><input name="courriel" id="courriel" size="30" type="text" /></td>
      </tr>
      <tr>
        <td><label>Votre message (*) :</label></td>
        <td><textarea name="message" cols="40" rows="8" id="texte">Inscrivez ici votre message.</textarea><br />
					(*) Mentions obligatoires</td>
      </tr>
      <tr>
        <td></td>
        <td>      
        <table style="width: 100%;" border="0" cellpadding="0" cellspacing="0">
          <tbody>
            <tr>
              <td colspan="2" rowspan="1">&nbsp;</td>
            </tr>
            <tr>
              <td style="text-align: center; vertical-align: middle; background-color: rgb(255, 204, 153);">
				<input name="annuler" value="Annuler" type="reset" /></td>
              <td text-align="" center=""> <input name="soumettre" value="Envoyer" type="submit" /></td>
            </tr>      
          </tbody>
        </table>
        </td>
      </tr>
    </tbody>
    </table>
</form>
Mon script php:
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
 
<?php
//Si le formulaire est envoyé alors on fait les traitement
if (isset($_POST['soumettre']))
{
 
	//Récupération des valeurs des champs du formulaire
	if (get_magic_quotes_gpc())
	{
		$nom = stripslashes($_POST['nom']);
		$prenom = stripslashes($_POST['prenom']);
		$telephone = stripslashes($_POST['telephone']);
		$mail = stripslashes($_POST['courriel']);
		$objet = stripslashes($_POST['sujet']);
		$message = stripslashes($_POST['message']);
	}
	else
	{
		$nom = trim($_POST['nom']);
		$prenom = trim($_POST['prenom']);
		$telephone = trim($_POST['telephone']);
		$mail = trim($_POST['courriel']);
		$objet = trim($_POST['sujet']);
		$message = trim($_POST['message']);
	}
 
	//vérificarion du format de l'adresse mail
	$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
 
	//vérification qu'aucun en-tête n'est inséré dans le champ
	$regex_head = '/[n\r]';
 
	//Si le formulaire n'est pas envoyé depuis notre site on renvoie en page d'accueil
	if ($_SERVER['HTTP_REFERER'] != 'http://www.dorhel.fr/traitement.php')
	{
		header('Location: http://www.dorhel.fr');
	}
 
	elseif (empty($nom)
			||empty($prenom)
			||empty($telephone)
			||empty($objet)
			||empty($message))
	{
		$alert = 'Tous les champs obligatoires doivent être renseignés';
	}
 
	//vérification format expéditeur
 
	elseif (!preg_match($regex_mail, $mail))
	{
		$alert = 'L\'adresse '.$mail.' n\'est pas valide';
	}
 
	elseif (preg_match($regex_head, $mail)
			||preg_match($regex_head, $nom)
			||preg_match(regex_head, $prenom)
			||preg_match($regex_head, $telephone)
			||preg_match($regex_head, $message))
	{
		$alert = 'En-têtes interdites dans les champs de ce formulaire';
	}
 
	//si aucun problème et aucun cookie n'est créé, contruction du mail et envoi
 
		//Destinatiare du mail : 
		$destinataire="adressemail1";
 
		// En-tête du mail
			//voici la version Mine
			$headers = 'Content-Type: text/plain; charset="iso-8859-1"'."\n"; 
			$headers .='Content-Transfer-Encoding: 8bit';
			//ici on détermine le mail en format text
			$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
			//ici on détermine l'expediteur et l'adresse de réponse
			$headers .= "From: $nom $prenom<$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";
 
		$subject="$objet"; 
//$body="$message"; 
 
		//construction du message
		$msg  = 'Bonjour,'."\r\n\r\n";
		$msg .= 'Ce mail a été envoyé depuis http://www.dorhel.fr par '.$nom.' '.$prenom."\r\n\r\n";
		$msg .= 'Ses coordonnées téléphoniques : '.$telephone."\r\n\r\n";
		$msg .= 'Courriel : '.$mail."\r\n\r\n";
		$msg .= 'Voici le message qui vous est adressé :'."\r\n";
		$msg .= "\r\n\r\n";
		$msg .= stripslashes($message)."\r\n";
		$msg .= "\r\n\r\n";
 
		//Envoi du mail
		if (mail($destinataire, $subject,$msg, $headers))
		{
			header("Location:http://www.dorhel.fr/ar_form.html");
		}
		else 
		{
		$alert = 'Erreur';
		}
}
?>
Arzawe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 11h01   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 018
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 018
Points : 5 081
Points : 5 081
Utilise les filtres pour la validation de ton formulaire, ce sera bien plus simple.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 11h05   #3
Invité de passage
 
Femme Armandine
Tout ce que ne fait pas le patron
Inscription : mars 2008
Messages : 27
Détails du profil
Informations personnelles :
Nom : Femme Armandine
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Tout ce que ne fait pas le patron

Informations forums :
Inscription : mars 2008
Messages : 27
Points : 4
Points : 4
Je te remercie de ta réponse, mais le lien mène à une page d'erreur...
Arzawe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 11h25   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 018
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 018
Points : 5 081
Points : 5 081
La doc française est indisponible en ce moment, utilise la documentation en anglais: http://php.net/manual/en/book.filter.php
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 11h35   #5
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 678
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 678
Points : 5 425
Points : 5 425
Et aussi un article sur le sujet : Les filtres PHP : une fonctionnalité importante de sécurité
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 11h47   #6
Invité de passage
 
Femme Armandine
Tout ce que ne fait pas le patron
Inscription : mars 2008
Messages : 27
Détails du profil
Informations personnelles :
Nom : Femme Armandine
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Tout ce que ne fait pas le patron

Informations forums :
Inscription : mars 2008
Messages : 27
Points : 4
Points : 4
Je vous remercie tous les deux.
Je vais potasser vos liens, faire des essais et je reviens vers vous ensuite.
Arzawe 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 00h56.


 
 
 
 
Partenaires

Hébergement Web