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 :

Validation du formulaire ne fonctionne pas


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Tout ce que ne fait pas le patron
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Points : 21
    Points
    21
    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 : 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
     
    <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 : 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
    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';
    		}
    }
    ?>

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Utilise les filtres pour la validation de ton formulaire, ce sera bien plus simple.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Tout ce que ne fait pas le patron
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    Je te remercie de ta réponse, mais le lien mène à une page d'erreur...

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    La doc française est indisponible en ce moment, utilise la documentation en anglais: http://php.net/manual/en/book.filter.php

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372

  6. #6
    Membre à l'essai
    Femme Profil pro
    Tout ce que ne fait pas le patron
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    Je vous remercie tous les deux.
    Je vais potasser vos liens, faire des essais et je reviens vers vous ensuite.

Discussions similaires

  1. Mon formulaire ne fonctionne pas
    Par misslinoa dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/02/2008, 14h38
  2. envoi formulaire ne fonctionne pas
    Par isarno dans le forum Dreamweaver
    Réponses: 7
    Dernier message: 06/12/2007, 22h44
  3. Réponses: 3
    Dernier message: 19/09/2007, 13h09
  4. [Validator] depends validwhen ne fonctionne pas !
    Par BBG2.0 dans le forum Struts 1
    Réponses: 13
    Dernier message: 14/09/2007, 11h07
  5. [MySQL] Redirection après formulaire ne fonctionne pas
    Par Solexensolo dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/12/2006, 13h46

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