Aide formulaire contact

axbri Messages postés 30 Statut Membre -  
axbri Messages postés 30 Statut Membre -
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 238 Statut Membre 34
 
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 Statut Membre
 
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 238 Statut Membre 34
 
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 Statut Membre
 
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 238 Statut Membre 34
 
http://www.manuelphp.com/php/function.str-replace.php

Les "mixed" ne sont pas à mettre dans la fonction.
0
axbri Messages postés 30 Statut Membre
 
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 238 Statut Membre 34
 
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 Statut Membre
 
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 20367 Date d'inscription   Statut Contributeur Dernière intervention   4 509
 
Mettre le bon encodage ...
0
Impli Messages postés 238 Statut Membre 34
 
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 Statut Membre
 
Je ne savais pas que cette phrase ne servait pas.
Je l'ai supprimée.
0