lambert__ch
Messages postés25Date d'inscriptionvendredi 24 février 2006StatutMembreDernière intervention23 novembre 2006
-
21 nov. 2006 à 15:40
lambert__ch
Messages postés25Date d'inscriptionvendredi 24 février 2006StatutMembreDernière intervention23 novembre 2006
-
23 nov. 2006 à 10:26
Bonjour tout le monde.
je suis actuellement occupé à faire un site pour l'entreprise d'un pote et je suis confronté à un problème PHP, alors je cache rien moi le php je sais même pas c'est quoi ^^.
En réalité je cherche à faire un formulaire de contact depuis une simple page, et jusqu'ici j'ai réussi à assembler des bribes de codes trouvés un peu partout mais le résultat fonctionne pas (bouuuuh).
Si vous souhaitez le prévisualiser, une version "bêta" est déja en ligne, et vous pourrez juger vous-même du problème en remplissant le formulaire : il dit qu'un erreur est survenue. Il est ici : www.placodesign.be
J'ai relu et relu encore le code de la page mais rien ne m'a semblé anormal (faut dire aussi que j'y connais que dalle) alors si quelqu'un avait l'amabilité de me tirer d'affaire je lui serais très reconnaissant.
Un tout petit détail à surement dû m'échapper, c'est peut-être du au serveur également ça j'en sais rien. En tous cas je mets le code de ma page à disposition des experts qui auraient la gentillesse de m'aider
D'avance un grand merci pour votre attention.
kaRli.
je colle ici le code de ma page php au cas ou quelqu'un pourrait la "corriger" :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn= "#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if(isset($_POST['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
$f_3=strip_tags(trim($f_3));
$f_5=trim(eregi_replace("[^0-9\ +]", "", $f_5));
$f_6=trim(eregi_replace("[^0-9\ +]", "", $f_6));
// Verification des champs
if(strlen($f_1)<2){
$erreur.="<li>Le champ « Nom » est vide ou incomplet.";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li>Le champ « Prénom » est vide ou incomplet.";
$errf_2=1;
}
if(strlen($f_3)<2){
$erreur.="<li>Le champ « E-mail » est vide ou incomplet.";
$errf_3=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
[mailto:'@' '@'].
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_3)){
$erreur.="<li>La syntaxe de votre adresse e-mail n'est pas correcte.";
$errf_3=1;
}
}
if(strlen($f_4)<2){
$erreur.="<li>Le champ « Sujet de la demande » est vide ou incomplet.";
$errf_4=1;
}
if($erreur==""){
// Création du message
$titre="Site - Demande de devis";
$tete="From:Site@Placodesign.be\n";
$corps.="Nom : ".$f_1."\n";
$corps.="Prénom : ".$f_2."\n";
$corps.="E-mail : ".$f_3."\n";
$corps.="Sujet de la demande : ".$f_4."\n";
$corps.="Tél. : ".$f_5."\n";
$corps.="GSM : ".$f_6."\n";
if(mail("[mailto:lambert-ch@ateliersdumanoir.be lambert-ch@ateliersdumanoir.be]", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.";
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<TITLE>Demande de devis</TITLE>
<style type="text/css" media="screen"><!--
INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
.txterror { color: white; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
.txtform { color: white; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
--></style>
</HEAD>
Devis
<? if($ok_mail =="true"){ ?>
----
Le message ci-dessous nous a bien été transmis, et nous vous en remercions.,
----
,
----
<tt><?echo nl2br(stripslashes($corps));?></tt>,
----
,
----
Nous allons y donner suite dans les meilleurs délais.
A bientôt.,
lambert__ch
Messages postés25Date d'inscriptionvendredi 24 février 2006StatutMembreDernière intervention23 novembre 2006 23 nov. 2006 à 10:26
Rooooh mdr !!!!!
le petit poit d'interrogation action="?" a tout résolu .....
Vraiment un grand merci pour ton explication et tes conseils, et merci aussi à audayls pour sa version corrigée du code vous m'avez été d'un grand secours !
Dès que vous avez besoin de moi (de préférence en actionscript ou en javascript) n'hésitez pas à me mailer.
lambert__ch
Messages postés25Date d'inscriptionvendredi 24 février 2006StatutMembreDernière intervention23 novembre 2006 21 nov. 2006 à 19:30
Tout d'abord merci pour ta réponse.
En fait je m'étais déja posé cette question par rapport à un post que j'avais lu vite-fait sur un forum, alors j'ai été jeter un oeil sur les réglages serveur via le "cpanel" de hosteur mais j'ai rien trouvé qui ressemblait à une quelconque option mail(). Tu saurais pas m'en dire plus car la je suis dans le vague.
lambert__ch
Messages postés25Date d'inscriptionvendredi 24 février 2006StatutMembreDernière intervention23 novembre 2006 22 nov. 2006 à 10:19
Merci pour ta réponse.
Je viens de tester le code à l'instant, et contre toute attente j'ai encore eu la même erreur de renvoyée par le formulaire : "
Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative."
Si tu es sûr à 100% de l'efficacité de ton code, il se pourrait que ça vienne du serveur ou la fonction mail() n'est pas activée comme on me l'a dit précédemment, mais je trouve pas -via les paramètres d'hosteur-, comment activer cette fonction. Personne ne sait comment faire ?
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 22 nov. 2006 à 11:04
Deux solutions (complémentaires)
-1- tu fais un fichier pwet.php dans lequel tu met
<?php phpinfo(); ?>
tu vas dessus et tu regarde à la ligne disable_function (début du second tableau) si mail n'y est pas
-2- tu regarde dans la FAQ de ton hébergeur et éventuellement tu lui envois un mail pour savoir si la fonction est désactivée ou modifiée... .. .
@ tchaOo°
ps : @ [auteurdetail.aspx?ID=547458 audayls]... c'est mieux... plus propre et surtout plus sécurisé... lOoOl... un petit return true; à la fin de la fonction javascript verif() et ce sera tip top... par contre le test sur le referer bien qu'utile n'est pas sûr et risque de planter avec certains utilisateurs qui ne sont pas mal intentionnés mais dont le firewall bloque le referer... .. .
lambert__ch
Messages postés25Date d'inscriptionvendredi 24 février 2006StatutMembreDernière intervention23 novembre 2006 22 nov. 2006 à 13:47
Je confirme : la fonction mail() est bel et bien activée sur le serveur, tes 2 astuces me l'ont confirmé.
Bon du coup je suis vraiment paumé, même la version du code corrigée aimablement par notre ami
audayls
ne fonctionne pas, je sais plus ou donner de la tête pour faire fonctionner ce bête formulaire. Personne n'aurait sous la main le code d'un formulaire correct à me filer pour que je l'optimise selon mes besoins ?
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 22 nov. 2006 à 14:46
Le code de Audayls est fonctionel et correct... je vois pas en quoi changer de script résoudra le problème... quand à l'optimiser si tu n'est pas capable de trouver ce qui ne marche pas je pense que c'est hors sujet... .. .
Met...
error_reporting(E_ALL);
au tout début du script et regarde si des erreurs s'affichent... .. .
lambert__ch
Messages postés25Date d'inscriptionvendredi 24 février 2006StatutMembreDernière intervention23 novembre 2006 22 nov. 2006 à 16:08
lol audayls m'a fait un code terrible, la page a presque pas bougé et tout le code a été corrigé.
toujours est-il qu'il va pas ...
j'ai touché à rien, j'ai fait copier/coller alors si il est correct comme tu dis ou est le problème ???
La page php est ouverte par un javascript popup, est-ce que ça influence ?
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 22 nov. 2006 à 16:13
Uhm... ça ne répond pas à ce que je t'ais demandé dans le post précédant... .. .
A vu de nez tu as changé des chose dans le code qui t'a été donné... c'est domage soit dit en passant là où le code d'Audayls était valide xhtml le tient ne l'est plus... enfin bref... déja met un ? dans l'attribut action de la balise html form... .. .