Qui peux m'aider en php avec mon formulaire?

Résolu/Fermé
spirou0069 Messages postés 141 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 11 décembre 2013 - 16 déc. 2010 à 14:49
spirou0069 Messages postés 141 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 11 décembre 2013 - 27 janv. 2011 à 16:13
Bonjour,
Voila le problème, j'ai fais 4 formulaires pour un site ils fonctionnent sauf 1 qui me donne une page blanche sans message lors de l'envoie et pas de mail reçu...
(Ps je travail dessus donc les questions et réponse de formulaire ne sont peut être pas juste ;-))

Voici le code d'envois du formulaire et merci d'avance


<?php
// On initialise la session
session_start();
/* on vérifie que la code est toujours mémorisé en session et qu'il fait 6 caractères */
if(!isset($_SESSION['code']) || strlen($_SESSION['code']) != 6) die("Erreur !");

// on vérifie que la code entré est valide
if($_SESSION['code'] != $_POST['verif']) die("Erreur : le code de protection est invalide !");


if(isset($_POST) && isset($_POST['Nom_preneur']) && isset($_POST['Adresse_preneur']) && isset($_POST['Naissance_preneur']) && isset($_POST['Tel_preneur']) && isset($_POST['Email_preneur']) && isset($_POST['nom_principal']) && isset($_POST['date_permis']) && isset($_POST['Naissance_principal']) && isset($_POST['annee_sinistre_principal']) && isset($_POST['bonus_principal']) && isset($_POST['Marque_vehicule']) && isset($_POST['Type_vehicule']) && isset($_POST['CV_vehicule']) && isset($_POST['Mise_circulation']) && isset($_POST['Infos']))

{
extract($_POST);
if(!empty($Nom_preneur) && !empty($Email_preneur) && !empty($Adresse_preneur) && !empty($Tel_preneur) && !empty($infos)){
$message=str_replace("\'","'",$message);
$destinataire="adressefictive@machinchose.be";
$sujet="Formulaire de contact assurance auto";
$message="Une nouvelle demande d'assurance auto est arrivée \n

Nom du preneur : $Nom_preneur \n
Adresse du preneur : $Adresse_preneur \n
Date de naissance du preneur: $Naissance_preneur \n
Telephone du preneur : $Tel_preneur \n
E mail : $Email_preneur \n
Conducteur principal : $nom_principal \n
Date permis : $date_permis \n
Enseignant : $Naissance_principal \n
Gens de maison : $annee_sinistre_principal \n
Chien : $bonus_principal \n
Race : $Marque_vehicule \n
Gens de maison : $Type_vehicule \n
Chien : $CV_vehicule \n
Race : $Mise_circulation \n
Chien : $tva \n
Race : $garantie \n
Race : $prive \n
Message : $infos";



$entete="From: $nom \n Reply-To: $email";
mail($destinataire,$sujet,$message,$entete);
echo '<p>'.$message_mail_envoyer.' <div align="center">Le mail est bien envoyé,<br/><a href="index.html"><br/>Retour au site</a>'."\n";
}
else{

echo '<div align="center">Vous n\'avez pas rempli les champs.'.'<br/>';
echo '<div align="center"><a href="'. $_SERVER['HTTP_REFERER'] .'">Retour</a>';

}
}
// on détruit les variables de session, désormais inutiles
session_unset();
session_destroy();
?>

Code html

<form action="contact_auto.php" method="post" >
Nom du preneur d'assurance:
<input type="text" id="Nom_preneur" class="required" title="Votre nom" name="requete" value="" />
<br/><br/>
Adresse:
<input type="text" id="Adresse_preneur" class="required" title="Votre Adresse" name="requete" value="" />
<br/><br/>
Année de Naissance:
<input type="text" id="Naissance_preneur" class="required" title="Votre année de naissance" name="requete" value="" />
<br/><br/>
Téléphone:
<input type="text" id="Tel_preneur" class="required" title="Numéro de téléphone" name="nom" value="" />
<br />
<br />
E-mail:
<input type="text" id="E-mail_preneur" class="required" title="E-Mail" name="requete" value="" />
<br/><br />
-------------------------------<br /><br />

Nom du conducteur principal:
<input type="text" id="nom_principal" class="required" title="Votre nom" name="nom" value="Idem" />
<br/><br />
Date du permis de conduire:
<input type="text" id="date_permis" class="required" title="date permis" name="date permis" value="" />
<br /><br />
Année de Naissance:
<input type="text" id="Naissance_principal" class="required" title="Votre requête" name="requete" value="" />
<br/><br/>
Nombre d'année sans sinistre:
<input type="text" id="annee_sinistre_principal" title="Votre prénom" name="prenom" value="" />
<br /><br />
Bonus actuel:
<input type="text" id="bonus_principal" title="Votre site si vous en avez un" name="url" value="" />
<br /><br />
Marque du véhicule:
<input type="text" id="Marque_vehicule" title="Votre adresse" name="adresse" value="" />
<br /><br />
Type:
<input type="text" id="Type_vehicule" title="Votre code postal" name="codepostal" value="" />
<br /><br />
Puissance cv:
<input type="text" id="CV_vehicule" title="Votre ville" name="ville" value="" />
<br /><br />
Date de mise en circulation:
<input type="text" id="Mise_circulation" title="Votre téléphone" name="telephone" value="" />
<br /><br />
Valeur à neuf du véhicule (HTVA et Options comprises):
<input type="text" id="Valeur" title="Votre téléphone" name="telephone" value="" />
<br /><br />


Usage privé où professionnel:
<input type="radio" name="prive" value="Privé"> Privé
<input type="radio" name="prive" value="Professionnel"> Professionnel
<br /><br />
Tva
<input type="radio" name="tva" value="0">0%
<input type="radio" name="tva" value="50">moins de 50%
<input type="radio" name="tva" value="100">plus de 50%
<br />
<br />
<u>Choisir le type d'assurance</u><br /><br />
<input type="radio" name="garantie" value="RC"> Responsabilité civile
<input type="radio" name="garantie" value="Mini">Mini Omnium
<input type="radio" name="garantie" value="DM">Dégats matériels
<input type="radio" name="garantie" value="PJ">Protection juridique
<input type="radio" name="garantie" value="Conducteur">Assurance conducteur

<br />
<br />

Message:
<textarea name="infos" id="infos" cols="60" rows="8"></textarea>
<br /><br />
<label>Recopiez le code de vérification suivant :</label><br />
<img src="imagesecu.php" alt="image de protection" /><br />
<input type="text" name="verif" size="10" maxlength="6" /><br /><br />


<div>

<button type="submit" value="Envoyer">Envoyer</button>

<button type="reset">Annuler</button><br />
<p style="float:right">(Tous les champs doivent être remplis)</p>
</div>
</form><br />
<br />


8 réponses

Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
16 déc. 2010 à 15:45
Salut,

Il y a quelque chose de bizarre dans ton code.
Si je charge la page du formulaire la première fois, $_POST['verif'] n'existe pas, est-ce exact ? et tu fais une comparaison avec la valeur de cette variable.
Il y a peut-être des erreurs que PHP ne te dit pas lors de l'exécution du script. Tu peux normalement configurer l'affichage des erreurs dans le php.ini, ça t'aidera à savoir ce qui coince.

Après il y a l'utilisation de la variable $_SERVER['HTTP_REFERER'] utilisé dans ton lien. C'est pas très safe car cette donnée vient du client, il vaut mieux mettre l'URL en dur ou passer par un autre moyen. Mais ce n'est pas le problème.
0
spirou0069 Messages postés 141 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 11 décembre 2013 5
16 déc. 2010 à 15:55
le 'verif' est la verification de l'image de protection pour les robots et

$_SERVER['HTTP_REFERER'] est le liens de retour en cas de non remplissage de tout les champs (Si tu as autres chose je suis preneur mais cela fonctionne.)

Merci pour ton aide
0
Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
16 déc. 2010 à 16:10
"mais cela fonctionne" c'est par rapport à ton lien ? ou t'as résolu le problème ?
Si pas résolu, as-tu tourner ton attention sur la configuration d'affichage des erreurs PHP ?
0
spirou0069 Messages postés 141 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 11 décembre 2013 5
16 déc. 2010 à 16:12
Rien de tous ce que tu me dit....

ça fonctionne chez toi? quel liens?
0
Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
16 déc. 2010 à 16:23
Attends ^^ ! On s'embrouille, reprenons à zéro :

D'après ce que tu as dis dans ton premier post, "page blanche", "mail non envoyé", je pense qu'il s'agit d'une erreur de script à l'exécution qui entraîne l'interruption de l'exécution avant l'affichage de quoi que ce soit (donc avant le début du code html). Habituellement, PHP raconte ce qu'il lui est arrivé, dans la page : du genre Parse Error, Notice, etc...
Mais ! Ton serveur qui héberge le script PHP a peut-être une configuration qui n'affiche pas les (ou certains) messages d'erreur de PHP. Donc je voulais savoir si tu avais la main sur le serveur et si oui, configurer le PHP pour qu'il écrive ces erreurs dans le flux de sortie (la page).
Ce qui est en rapport avec le lien : oublie, ce n'est pas lié au problème.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
spirou0069 Messages postés 141 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 11 décembre 2013 5
16 déc. 2010 à 16:34
Effectivement on s embrouillais lol

J'héberge chez ovh
Les autres formulaires fonctionnent.
Celui-ci ma déjà indiqué des erreurs que j'ai modifiées ...Donc les erreurs PHP sont en général affichées je pense
Je vais réanalyser le code au niveau html ... peut être que le problème vient de là

Si de ton côté tu trouve ...
Merci
0
spirou0069 Messages postés 141 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 11 décembre 2013 5
16 déc. 2010 à 16:37
Je confirme j'ai modifier le code php en provocant une erreur et j'ai bien l'erreur qui s'affiche au niveau navigateur avec la ligne de l'erreur
0
Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
16 déc. 2010 à 16:50
Cette erreur est de quel type ? Est-ce une FATAL une NOTICE, ou autre ?
0
Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
16 déc. 2010 à 16:56
Tiens j'ai trouvé une fonction qui va mettre les choses au clair ^^
http://php.net/manual/en/function.error-reporting.php

Il s'agit de
error_reporting([int $level])


Pour forcer PHP à afficher TOUTES les erreurs et warnings il faut placer ça dans les premières lignes de codes de ton script :

error_reporting(E_ALL); // E_ALL étant une constante entière prédéfinie.

Cette ligne modifie le comportement de PHP lors du runtime (exécution) donc si tu la retire après ça reviens au comportement par défaut.
0
spirou0069 Messages postés 141 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 11 décembre 2013 5
27 janv. 2011 à 16:13
Voila j'ai trouvé la solution tout seul comme un grand :-)

Et comme quoi il faut bien faire attention quand on code du langage html ou php....

L'erreur est toute bête et tout simplement une inversion....

Je générais l'"id" du code php au lieu de "name"

<input type="text" id="nom_principal" class="required" title="Votre nom" name="nom" value="Idem" />

&& isset($_POST['Nom_principal'])


Après inversion des données, cela fonctionne parfaitement

Merci à ceux qui mon aidé

MD
0