Aide sur formulaire PHP. Merci.

Résolu/Fermé
sourine Messages postés 187 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 5 septembre 2016 - 11 sept. 2009 à 17:26
lefou4 Messages postés 73 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 5 mai 2010 - 11 sept. 2009 à 19:11
Bonjour,

Je travaille actuellement sur un site web pro pour un ami et je suis débutante en tout en ce qui concerne la création web !!

J'ai inséré un formulaire php avec de l'aide obtenue via le site du zéro mais il semble que j'ai quelques soucis car cela ne fonctionne pas ! (étonnant, non ? lol)

Merci de votre aide !!



Le site du formulaire :

http://hervecallac.fr/contact.html


Le code php :

<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail.
$destinataire = 'mail@site.fr';

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

// Messages de confirmation du mail
$message_envoye = "<br /><br />Vos données ont été envoyées avec succès !<br /><br />

<a href=\"http://www.hervecallac.fr/index.html\">Revenir à la page d'accueil.</a>";
$message_non_envoye = "L'envoi du mail a échoué, veuillez <a href=\"http://www.hervecallac.fr/contact.html\">réessayer SVP</a>.";

// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord 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
********************************************************************************************
*/

// teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* fonction : 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;');
}

// protection contre une injection SQL
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};

/*
* fonction: 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é, récupère tous les champs.
$civilite = (isset($_POST['civilite'])) ? Rec($_POST['civilite']) : '';
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$ad1 = (isset($_POST['ad1'])) ? Rec($_POST['ad1']) : '';
$ad2 = (isset($_POST['ad2'])) ? Rec($_POST['ad2']) : '';
$cp = (isset($_POST['cp'])) ? Rec($_POST['ville']) : '';
$ville = (isset($_POST['ville'])) ? Rec($_POST['ville']) : '';
$tel = (isset($_POST['tel'])) ? Rec($_POST['tel']) : '';
$mobile = (isset($_POST['mobile'])) ? Rec($_POST['mobile']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$jour = (isset($_POST['jour'])) ? Rec($_POST['jour']) : '';
$matin = (isset($_POST['matin'])) ? Rec($_POST['matin']) : '';
$aprem = (isset($_POST['aprem'])) ? Rec($_POST['aprem']) : '';
$precisions = (isset($_POST['precisions'])) ? Rec($_POST['precisions']) : '';
$nature = (isset($_POST['nature'])) ? Rec($_POST['nature']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';


// 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 != '') && (($prenom != '') && ($ville != '') && ($email != '') && ($jour != '') && ($nature != ''))
{
// les 6 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' '.$tel.' <'.$email.'>'. "\r\n";

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

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

// Envoi du mail
if (mail($cible, $objet, $message, $nom, $prenom, $ville, $email, $jour, $nature))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
// une des variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="http://www.hervecallac.fr/contact.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>

3 réponses

Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 459
11 sept. 2009 à 17:50
Salut,

essaie plutot avec ce code:

<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail.
$destinataire = 'mail@site.fr';

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

// Messages de confirmation du mail
$message_envoye = "<br /><br />Vos données ont été envoyées avec succès !<br /><br />

<a href=\"http://www.hervecallac.fr/index.html\">Revenir à la page d'accueil.</a>";
$message_non_envoye = "L'envoi du mail a échoué, veuillez <a href=\"http://www.hervecallac.fr/contact.html\">réessayer SVP</a>.";

// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord 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
********************************************************************************************
*/

// teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* fonction : 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;');
}

// protection contre une injection SQL
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
}

/*
* fonction: 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é, récupère tous les champs.
$civilite = (isset($_POST['civilite'])) ? Rec($_POST['civilite']) : '';
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$ad1 = (isset($_POST['ad1'])) ? Rec($_POST['ad1']) : '';
$ad2 = (isset($_POST['ad2'])) ? Rec($_POST['ad2']) : '';
$cp = (isset($_POST['cp'])) ? Rec($_POST['ville']) : '';
$ville = (isset($_POST['ville'])) ? Rec($_POST['ville']) : '';
$tel = (isset($_POST['tel'])) ? Rec($_POST['tel']) : '';
$mobile = (isset($_POST['mobile'])) ? Rec($_POST['mobile']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$jour = (isset($_POST['jour'])) ? Rec($_POST['jour']) : '';
$matin = (isset($_POST['matin'])) ? Rec($_POST['matin']) : '';
$aprem = (isset($_POST['aprem'])) ? Rec($_POST['aprem']) : '';
$precisions = (isset($_POST['precisions'])) ? Rec($_POST['precisions']) : '';
$nature = (isset($_POST['nature'])) ? Rec($_POST['nature']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';


// 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 != '') && (($prenom != '') && ($ville != '') && ($email != '') && ($jour != '') && ($nature != ''))
{
// les 6 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' '.$tel.' <'.$email.'>'. "\r\n";

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

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

// Envoi du mail
if (mail($cible, $objet, $message, $nom, $prenom, $ville, $email, $jour, $nature))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
}
}
else
{
// une des variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="http://www.hervecallac.fr/contact.html">Retour au formulaire</a></p>'."\n";
}
} // fin du if (!isset($_POST['envoi']))
?>
0
sourine Messages postés 187 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 5 septembre 2016 11
11 sept. 2009 à 19:07
malheureusement pas mieux...
J'ai toujours un message de type :

403 Forbidden
Request forbidden by administrative rules.

A tout hasard je suis retournée RE vérifier sur le site de l'hébergeur (Amen) qui me confirme que l'option Php est possible...

Comme je suis assez nulle ou tout au moins pas suffisamment eu le loisir de m'autoformer en Php, je sèche un peu et désespère de devoir replonger dans les lignes de codes...

Dis moi ce que je peux faire pour t'aider à me dépatouiller avec ça ?

Ps : je ne visualise pas ce que tu as modifié ci-dessus par rapport à l'original ?
0
lefou4 Messages postés 73 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 5 mai 2010 44
11 sept. 2009 à 19:11
A la vue du code je te conseille de regarder la syntaxe de la fonction mail :
https://www.php.net/manual/fr/function.mail.php

Sinon quelques articles intéressants :
https://www.phpfacile.com/apprendre_le_php/envoyer_un_mail_en_php
https://a-pellegrini.developpez.com/tutoriels/php/mail/
0