Comment verifier si bon script

szirtan89 Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   -  
szirtan89 Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
voila je suis entrain de faire un formulaire en php tout devrait etre nikel mais ca marche po

pourtant j'ai tout verifié mais est ce qu'il y a un moyen que comme dans les erreurs parse etc php me dise a telle ligne il y a telle erreur (je dis ca plutot que de vous mettre tout le code html et php ca va faire enorme et je vais encore me faire tej)
parce qu'en fait vu que j'ai mis dans le code php que orsque je ne remplis pas tous les champs on me renvoie l'erreur :

Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur. Retour au formulaire
ca me renvoie ca et c'est tout et c'est a moi de me debrouiller..
merci
A voir également:

6 réponses

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
et bien il n'y a pas de moyen de "détecter" les erreurs de script. Tant que la syntaxe est bonne, le script s'exécute. Après c'est à toi d'analyser ton code pour savoir ce qui est bon et ce qui ne l'est pas.
0
szirtan89 Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   17
 
c'est trop injuste

ca craint si je lache le code?
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
si c'est pas trop gros ça devrait aller, au si ton code est trop conséquent, poste uniquement ce qui peut avoir un intérêt pour ton problème
0
szirtan89 Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   17
 
bonjour

voila le html

<div class="form">
<p>Pour une demande de devis, merci de remplir les champs ci-dessous<br/>
Nous vous garantissons une réponse rapide sous 24 H<br/>
<small>(les champs marqués d'une asterixe sont obligatoires)</small></p>

<li><form name="formulaire" method="post" action="traitement_astux.php" >
<label for="nom" >nom:</label><br/>
<input type="text" name="nom" id="nom" size="30" maxlength="20" /><b> *</b></li>

<li><label for="prenom" > prenom :</label><br/>
<input type="text" name="prenom" id="prenom" size="30" maxlength="20" /><b> *</b></li>

<li><label for "adresse du demandeur">adresse du demandeur:</label><br/>
<textarea name ="adresse_du_demandeur" id ="adresse_du_demandeur" rows="10" cols="50"></textarea></p></li><br/>

<li><label for="tel fixe" style=" margin-left: 0%" >tel fixe:</label><br/>
<input type="text" name="tel_fixe" id="tel_fixe" size="15" maxlength="20" /></li>

<li><label for="tel port" >tel port:</label><br/>
<input type="text" name="tel_port" id="tel_port" size="15" maxlength="20" /><b> *</b></li>

<li><label for="email" >email:</label><br/>
<input type="text" name="email" id="email" size="30" maxlength="20" /><b> *</b></li>

<li><label for="evenement" >evenement:</label><br/>
<input type="text" name="evenement" id="evenement" size="30" maxlength="20" /><b> *</b></li>

<li><label for="date de la prestation" >date de la prestation:</label><br/>
<input type="text" name="date_de_la_prestation" id="date_de_la_prestation" size="30" maxlength="20" /><b> *</b></li>

<li><label for="nombre de pers" >nombre de personnes presentes:</label><br/>
<input type="text" name="nombre_de_pers" id="nombre_de_pers" size="30" maxlength="20" /><b> *</b></li>

<li><label for="budget">budget:</label><br/>
<input type="text" name="budget" id="budget" size="30" maxlength="20" /><b> *</b></li><br/>

<li><label for "adresse de la presta">adresse de la prestation:</label><br/>
<textarea name ="adresse_de_la_presta " id ="adresse_de_la_presta" rows="10" cols="50"></textarea><b> *</b></p></li>

<li><label for "infos compl">infos complementaires:</label><br/>
<textarea name ="infos_compl " id ="infos_compl" rows="10" cols="50"></textarea><b></p></li>

<li><input name="envoi" type="submit" value="envoyer" style="margin-top:5%" /> <input type="reset" value="remettre a zero" />
<INPUT type=hidden name=afficher value=ok></li></form>

et le php (je sais c'est un peu enooooorme mais excusez)

$destinataire = 'charles.bacci@orange.fr';

// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"form.html\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/

// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))//c'est dans le bas de la page : <input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>

{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}

// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};

/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};

// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$adresse_du_demandeur = (isset($_POST['adresse_du_demandeur'])) ? Rec($_POST['adresse_du_demandeur']) : '';
$tel_fixe = (isset($_POST['tel_fixe'])) ? Rec($_POST['tel_fixe']) : '';
$tel_port = (isset($_POST['tel_port'])) ? Rec($_POST['tel_port']) : '';
$evenement = (isset($_POST['evenement'])) ? Rec($_POST['evenement']) : '';
$nombre_de_pers = (isset($_POST['nombre_de_pers'])) ? Rec($_POST['nombre_de_pers']) : '';
$budget = (isset($_POST['budget'])) ? Rec($_POST['budget']) : '';
$adresse_de_la_presta = (isset($_POST['adresse_de_la_presta'])) ? Rec($_POST['adresse_de_la_presta']) : '';
$infos_compl = (isset($_POST['infos_compl'])) ? Rec($_POST['infos_compl']) : '';
$date_de_la_prestation = (isset($_POST['date_de_la_prestation'])) ? Rec($_POST['date_de_la_prestation']) : '';

// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

if (($nom != '') && ($email != '') && ($prenom != '') && ($tel_port != '') && ($evenement != '') && ($nombre_de_pers != '') && ($adresse_de_la_presta != '') && ($date_de_la_prestation != '') && ($budget != ''))
{
// les 8 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};

// Remplacement de certains caractères spéciaux
$adresse_de_la_presta = str_replace("'","'",$adresse_de_la_presta);
$adresse_de_la_presta = str_replace("’","'",$adresse_de_la_presta);
$adresse_de_la_presta = str_replace(""",'"',$adresse_de_la_presta);
$adresse_de_la_presta = str_replace('<br>','',$adresse_de_la_presta);
$adresse_de_la_presta = str_replace('<br />','',$adresse_de_la_presta);
$adresse_de_la_presta = str_replace("<","<",$adresse_de_la_presta);
$adresse_de_la_presta = str_replace(">",">",$adresse_de_la_presta);
$adresse_de_la_presta = str_replace("&","&",$adresse_de_la_presta);

// Envoi du mail
if (mail($cible, $prenom, $headers, $tel_port, $evenement, $nombre_de_pers, $budget, $adresse_de_la_presta, $date_de_la_prestation ))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
// une des 10 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="form.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>

ca fait grave a lire et a verifier mais bon si vous avez pas le temps de tout lire tant pis (auquel cas je ne sais pas si il y a des webmasters ou un service sur le net qui moyennant finances pourraient verifier des scripts...)
merci
0

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

Posez votre question
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

le truc c'est que tu gères les erreurs en masse, si tu ajoutais une distinction entre chaque tu aurais déjà un message plus précis.

au lieu de tout tester d'un coup :
if (($nom != '') && ($email != '') && ($prenom != '') && ($tel_port != '') && ($evenement != '') && ($nombre_de_pers != '') && ($adresse_de_la_presta != '') && ($date_de_la_prestation != '') && ($budget != ''))
{

tu peux tester un à un en remplissant un tableau d'erreur.
avant d'envoyer le mail, tu vérifies que le tableau d'erreur est vide, si ce n'est pas le cas tu affiches les erreurs entrées dans le tableau. comme ça tu sauras quelle <input/> est fautif et c'est plus pratique pour le visiteur !
<?php
	$errors = array(); /* au départ, tableau vide */

	/* tu testes chaque entrée, si elle est vide, tu ajoutes un message d'erreur */
	if($nom === '')
		$errors[] = 'Vous devez blablabla nom.';
	if($email === '')
		$errors[] = 'Vous devez blablabla mail.';
	/* etc. */

	/* avant d'envoyer le mail, tu testes pour savoir si il y a des erreurs */
	if(count($errors) > 0)
		/* envoi du mail */
	else
	{
		/* tu imprimes la liste des erreurs */
	}
?>

pour déboguer tu peux aller plus vite.
en début de script tu fais :
print_r($_POST);

et tu regardes quelle variable te manque ou laquelle est mal nommée.
0
szirtan89 Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   17
 
bjr
merci dalida tu es apparement trèèèès fort (et tu as tout a fait raison c'est une super methode pour verifier chaque entrée)

je vais voir ca mais la je viens de travailler sur autre chose chuis un peu mort je vais voir ca dans la journée encore merci
0