Aide formulaire contact

Fermé
axbri Messages postés 30 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 22 décembre 2009 - 9 déc. 2009 à 14:44
axbri Messages postés 30 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 22 décembre 2009 - 9 déc. 2009 à 20:26
Bonjour,

j'ai trouvé un tuto. cool pour faire un formulaire de contact https://www.grafikart.fr/tutoriels/formulaire-php-21

Le problème c'est que j'ai du me tromper dans mes codes.

Donc si quelqu'un peut m'aider à trouver mes erreurs...



partie html : http://paste.pocoo.org/show/155930/

Partie php : http://paste.pocoo.org/show/155931/



Merci de votre aide!!!

31 réponses

Impli Messages postés 235 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 18 août 2013 34
9 déc. 2009 à 16:18
if(!empty($nom) && !empty($email) && !empty($message)){ 


Cette ligne sert à rien puisque la première effectue déjà les vérifications demandées. De plus la syntaxe laisse à désirer.
Ce sont les modifications que tu as apportés qui produisent cette erreur apparemment (en plus de ne servir à rien).
0
axbri Messages postés 30 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 22 décembre 2009
9 déc. 2009 à 16:24
Donc avec la ligne qui ne sert à rien ca donne :

<?php
$_POST("nom")
if (isset($_POST) && !empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['message'])) {
extract($_POST);
$message=addslashes($message);
$message=str_replace("\' "," '", mixed search, mixed replace, mixed subject);
$destinataire="heureslave@gmail.com";
$sujet="Formulaire de contact";
$msg="Une nouvelle question est arrivée \n
Nom : $nom \n
Email : $email \n
Message : $message";
$entete= "From: $nom \n Reply-To: $email";
if (mail($destinataire, $sujet, $msg, $entete)) {
echo "Le mail a bien été envoyé.";
}
else {
echo "Le mail n'a pas pu être envoyée !";
}
}
else {
echo "Vous n'avez pas remplis tous les champs.";
}


}
?>
0
Impli Messages postés 235 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 18 août 2013 34
9 déc. 2009 à 16:27
J'ai vraiment du mal à comprendre là ...

Tu sais ce que tu fais ou tu te contentes d'ajouter des lignes au pif en espérant que tout fonctionne comme tu le souhaites ?

PHP possède une syntaxe (comme tout langage) relativement strict. les points-virgules sont obligatoires en fin d'instructions.
Et dès ta première ligne, il en manque un.


Est-ce que ton erreur sur la ligne trois apparait avant ou après tes modifications ?

Si elle apparait après. Arrête de tout bidouiller, et trouve un tutoriel (voire même un bouquin) parlant de la programmation en PHP.
0
axbri Messages postés 30 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 22 décembre 2009
9 déc. 2009 à 16:34
Je fais ce que je peux...
Je ne met pas des codes aux hasard...
Je suis quasi débutant en php si tu préfères!

Donc maintenant j'ai une erreur en ligne 6

$message=str_replace("\' "," '", mixed search, mixed replace, mixed subject);


Ce doit être ici : ("\' "," '",

qui se transforme en : ("\' ","'",


???
0

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

Posez votre question
Impli Messages postés 235 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 18 août 2013 34
9 déc. 2009 à 16:38
http://www.manuelphp.com/php/function.str-replace.php

Les "mixed" ne sont pas à mettre dans la fonction.
0
axbri Messages postés 30 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 22 décembre 2009
9 déc. 2009 à 16:44
Ligne 9 :

$msg="Une nouvelle question est arrivée" \n;

Je saisi pas l'erreur.


Merci de ta patience et de ton aide.
0
Impli Messages postés 235 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 18 août 2013 34
9 déc. 2009 à 16:48
Il ne faut pas mettre de guillemets dans cette ligne, ni de points-virgules, car ta variable est définie sur plusieurs lignes.


$msg="Une nouvelle question est arrivée \n
Nom : $nom \n
Email : $email \n
Message : $message";


Si tu fermes les guillemets avant, PHP défini la valeur de ta variable avec ce qu'il y a entre les deux guillemets (une nouvelle question est arrivée), et comme en plus tes guillemets ne sont pas suivis d'un point-virgule, tu as le droit à une belle erreur de syntaxe ; )
0
axbri Messages postés 30 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 22 décembre 2009
9 déc. 2009 à 20:00
Ca y est le code fonctionne!!!!!
Merci, merci beaucoup à tous pour votre aide.

Voici le code :

<?php
if (isset($_POST) && !empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['message'])) {
extract($_POST);
$message=addslashes($message);
$message=str_replace("%body%", "black", "<body text='%body%'>");
$destinataire="heureslave@gmail.com";
$sujet="Formulaire de contact";
$msg="Une nouvelle question est arrivée \n
Nom : $nom \n
Email : $email \n
Message : $message";
$entete= "From: $nom \n Reply-To: $email";
if (mail($destinataire, $sujet, $msg, $entete)) {
echo "Le mail a bien été envoyé.";
}
else {
echo "Le mail n'a pas pu être envoyée !";
}
}
else {
echo "Vous n'avez pas remplis tous les champs.";
}

?>



Le seule problème est que lorsqu'un message est envoyé, il y a écrit :

le mail a bien ?t? envoy?e

Comment afficher ces accents??
0
avion-f16 Messages postés 19125 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 mars 2023 4 468
9 déc. 2009 à 20:03
Mettre le bon encodage ...
0
Impli Messages postés 235 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 18 août 2013 34
9 déc. 2009 à 20:14
Hum, une question ...

$message=str_replace("%body%", "black", "<body text='%body%'>"); 

Pourquoi recopier bêtement un bout de code s'il n'a pas la moindre utilité sur ta page ?
Tu peux supprimer cette ligne, elle ne sert strictement à rien.
0
axbri Messages postés 30 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 22 décembre 2009
9 déc. 2009 à 20:26
Je ne savais pas que cette phrase ne servait pas.
Je l'ai supprimée.
0