*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
24 Mai 2012 à 06:00:47

Connexion avec identifiant, mot de passe et durée de la session



 

Php MySql : Formulaire ? la cata !


« sujet précédent | | sujet suivant »
Pages: [1] Imprimer
Auteur Fil de discussion: Php MySql : Formulaire ? la cata !  (Lu 2060 fois)
pushiz
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
Php MySql : Formulaire ? la cata !
« le: 04 Août 2007 à 10:58:29 »

Bonjour à tous !

Voila, j'ai un petit problème  Confused J'ai suivit le tuto de ce site pour créer un formulaire avec la base et tout....Et devinez quoi ? Ca marche ! Mais le seul HIC...c'est que c'est dans la base !

Waouw :p Mais ca ne m'envoie pas d'email Sad Sad

Maintenant il est permis de rêver : Est-ce possible de :

* Envoyer un e-mail a la personne qui a remplis le formulaire* (j'ai remplacer le champ adresse par email)

* mettre le formulaire et la vérification sur la même page ?*

Et pour ceux qui se poserai la question...oui je crois toujours au pere noel Wink

A bientot
Journalisée
Damien
Rédacteur Admin
Intarissable
*****

Points gagnés: 5
Messages: 2852



Voir le profil WWW
Re : Php MySql : Formulaire ? la cata !
« Répondre #1 le: 04 Août 2007 à 11:50:46 »

Bonjour,

Oui c'est bien sûr possible d'envoyer un email reprenant les données à la personne qui envoie le formulaire, ce qui donnera un espèce d'accusé de réception récapitulatif en fait.

Je ne vais pas réexpliquer comment le faire, car ça a déjà été demandé. Je vous invite à jeter un oeil au sujet  Tutoriel Formulaire PHP = BD + accusé de réception.

Pour la deuxième question, je ne sais pas si j'ai bien compris, en fait vous voulez dire mettre le formulaire.html et le traitement.php sur une même page ?
Journalisée

Cordialement,
Damien

Tutoriels informatique
pushiz
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
Re : Php MySql : Formulaire ? la cata !
« Répondre #2 le: 04 Août 2007 à 17:23:57 »

Hello !

Oui c'est exactement ça ! Smile
De façon a ce que l'utilisateur ne doivent pas tout réécrire et avoir a rechargé d'autre page.
Et aussi tout marche très bien mais j'ai un problème Sad le message est considérer comme spam sur g-mail et courrier indésirable sur hotmail Sad comment y remédié ?

Merci Smile

beaucoup !
« Dernière édition: 04 Août 2007 à 18:02:02 par pushiz » Journalisée
Damien
Rédacteur Admin
Intarissable
*****

Points gagnés: 5
Messages: 2852



Voir le profil WWW
Re : Php MySql : Formulaire ? la cata !
« Répondre #3 le: 04 Août 2007 à 22:28:59 »

Pour les pages à regrouper, c'est faisable sans problème. Il suffit de renommer la page formulaire.html en formulaire.php.
Dedans il y aura toujours le formulaire html qui fonctionnera de la même façon, mais au dessus du code html tout au début (au dessus de la balise <html>), vous pouvez insérer le code php du fichier traitement.php. Ca fera quelque chose comme cela :

Code:
<?php 
// traitement des données si le formulaire a été envoyé 
?>

<html>
<head></head>
<body>Ici tout le code html du formulaire</body>
</html>

Et bien entendu dans l'action appelée par le formulaire, il faudra enlevé l'appel du fichier "traitement.php". Ca fera donc :
Code:
<form method="post" action="">...


Sinon pour faire passer les mails envoyés de php sur hotmail ça peut être assez casse tête. Il y a notamment un sender-id à ajouter au serveur DNS d'où est envoyé le mail, qui est une sorte de champ SPF revu à la sauce Microsoft.
Pour générer un sender-id, voir cette page : http://www.microsoft.com/mscorp/safety/technologies/senderid/resources.mspx
Mais pour pouvoir toucher au DNS ça suppose déjà d'avoir un serveur dédié où on a la main dessus, c'est pour ça entre autres que peut être embêtant parfois.
Journalisée

Cordialement,
Damien

Tutoriels informatique
pushiz
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
Re : Php MySql : Formulaire ? la cata !
« Répondre #4 le: 06 Août 2007 à 20:33:30 »

Coucou !
Je veux pas faire ma chieuse mais c'est horrible, je lis, je lis...et je capte rien lol.
Mon code c'est ca et ca fonctionne pas Sad
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>titre</title>
</head>
<body>
<?php
session_start
();

if(!isset(
$_SESSION['code']) || strlen($_SESSION['code']) != 6) die("Erreur !");

if(
$_SESSION['code'] != $_POST['verif']) die("Erreur : le code de protection est invalide !");

session_unset();
session_destroy();
?>

<?php
// Parametres mysql à remplacer par les vôtres
define('DB_SERVER''locst'); // serveur mysql
define('DB_SERVER_USERNAME''tm'); // nom d'utilisateur
define('DB_SERVER_PASSWORD''gs'); // mot de passe
define('DB_DATABASE''urs'); // nom de la base

// Connexion au serveur mysql
$connect mysql_connect(DB_SERVERDB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die(
'Impossible de se connecter : ' mysql_error());

// sélection de la base de données
mysql_select_db(DB_DATABASE$connect);
$msg_erreur "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok "Votre demande a bien été prise en compte.";
$message $msg_erreur;
define('MAIL_DESTINATAIRE','@.com'); // remplacer par votre email
define('MAIL_SUJET','Message du formulaire de example.com');

// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty(
$_POST['adresse']))
$message .= "Votre adresse<br/>";
if (empty(
$_POST['codepostal']))
$message .= "Votre code postal<br/>";
if (empty(
$_POST['ville']))
$message .= "Votre ville<br/>";
if (empty(
$_POST['comments']))
$message .= "Votre message<br/>";

// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

  echo 
$message;

// sinon c'est ok
} else {

foreach(
$_POST as $index => $valeur) {
  $
$index mysql_real_escape_string(trim($valeur));
}
$sql "INSERT INTO formulaire VALUES ('', '".$nom."', '".$adresse."', '".$codepostal."', '".$ville."', '".$pays."', '".$comments."', now())";
  
$res mysql_query($sql);

  if (
$res) {
    echo 
$msg_ok;
  } else {
    echo 
mysql_error();
  }

}
//Préparation de l'entête du mail:
$mail_entete "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
             
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' phpversion()."\r\n";

// préparation du corps du mail
$mail_corps "Message de : $civilite $nom\n";
$mail_corps .= "Adresse : $adresse$codepostal $ville$pays\n";
$mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";
$mail_corps .= $comments;

// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {

  
//Le mail est bien expédié
  
echo $msg_ok;
} else {

  
//Le mail n'a pas été expédié
  
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}

}
?>

<?php
//Préparation de l'entête du mail
$mail_entete "MIME-Version: 1.0\r\n";
$mail_entete .= "From: "MAIL_DESTINATAIRE "<" MAIL_DESTINATAIRE ">\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .=  'Content-Type: text/plain; charset="iso-8859-1"' ;
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' phpversion()."\r\n";

// préparation du corps du mail
$mail_corps .= "Nous vous confirmons que nous avons bien reçu votre formulaire etc\n";
$mail_corps .= "Adresse : $adresse$codepostal $ville$pays\n";
$mail_corps .= $comments;

// envoi du mail
$res_mail mail($_POST['email'],MAIL_SUJET,$mail_corps,$mail_entete);
?>

<form method="post" action="">
<p class="titre">Coordonnées</p>
  <label>Nom : </label>
    <input type="text" name="nom" size="30"/><br />
  <label>Adresse : </label>
    <input type="text" name="adresse" size="30" /><br />
  <label>Code postal : </label>
    <input type="text" name="codepostal" size="30" /><br />
  <label>Ville : </label>
    <input type="text" name="ville" size="30" /><br />
  <label>Adresse email : </label>
<input type="text" name="email" size="30" /><br />
  <label>Pays : </label>
    <select name="pays">
      <option value="france">France</option>
      <option value="belgique">Belgique</option>
      <option value="suisse">Suisse</option>
    </select>
<p class="titre">Message</p>
  <textarea name="comments" rows="5" cols="40"></textarea>
 <label for="verif">Recopiez le code de vérification suivant :</label>
 <img src="antispam.php" alt="image de protection" />
 <input type="text" name="verif" size="10" maxlength="10" onchange="javascript:this.value=this.value.toUpperCase();" />
 <br />
<p id="buttons">
  <input type="submit" value="Envoyer" />
  <br /><br />
  <input type="reset" value="Recommencer" />
</p>
</form>
</div>
</div>
</body>
</html>

Voila ca a l'aire juste non  ? Sauriez-vous me commenter ce code et m'expliquer mes erreur svp ?  Ce serai super sympa ! Parceque pour moi la vrai aide c'est l'explication et la compréhension...franchement je cherche....Et pour le sender id (ce sera plus tard) mais c'est payant ? et je dois le demander a mon hébergeur de domaine ? :p

Merci

Naîvement : Pushiizzzzz
« Dernière édition: 08 Août 2007 à 17:37:26 par pushiz » Journalisée
pushiz
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
Re : Php MySql : Formulaire ? la cata !
« Répondre #5 le: 07 Août 2007 à 20:02:35 »

Sniff...Sad Je vous ennuye hein ? lol

tant pis merci quand même Wink
Journalisée
Damien
Rédacteur Admin
Intarissable
*****

Points gagnés: 5
Messages: 2852



Voir le profil WWW
Re : Php MySql : Formulaire ? la cata !
« Répondre #6 le: 07 Août 2007 à 20:11:05 »

Bonsoir,

Vous ne dérangez pas, mais avec les vacances il ne faut pas être pressé Wink

Concernant votre code, le problème majeur se trouve avec les sessions. Un
Code:
session_start();
est nécessaire pour initialiser les sessions avant toute utilisation d'une session. Par contre il doit être placé obligatoirement en tout début de script, et là c'est gênant.
Votre morceau de code suivant devrait donc être au tout début avant le "<!DOCTYPE html"... :

Code:
<?php
session_start
();

if(!isset(
$_SESSION['code']) || strlen($_SESSION['code']) != 6) die("Erreur !");

if(
$_SESSION['code'] != $_POST['verif']) die("Erreur : le code de protection est invalide !");

session_unset();
session_destroy();
?>
Journalisée

Cordialement,
Damien

Tutoriels informatique
pushiz
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
Re : Php MySql : Formulaire ? la cata !
« Répondre #7 le: 08 Août 2007 à 17:25:21 »

Kikoo,

Voila, resulat négatif, j'ai une page blanche...Sad
ni texte, ni message d'erreur... tout blanc
et quand je regarde ma source a ce moment...aucun code ! Sad

snif snif Wink
Journalisée
pushiz
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
Re : Php MySql : Formulaire ? la cata !
« Répondre #8 le: 08 Août 2007 à 17:36:30 »

Oups, si jamais le code peu aider...

Code:
<?php
session_start
();

if(!isset(
$_SESSION['code']) || strlen($_SESSION['code']) != 6) die("Erreur !");

if(
$_SESSION['code'] != $_POST['verif']) die("Erreur : le code de protection est invalide !");

session_unset();
session_destroy();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
</head>
<body>
<?php
// Parametres mysql à remplacer par les vôtres
define('DB_SERVER''localhost'); // serveur mysql
define('DB_SERVER_USERNAME''tm'); // nom d'utilisateur
define('DB_SERVER_PASSWORD''gs'); // mot de passe
define('DB_DATABASE''utrs'); // nom de la base

// Connexion au serveur mysql
$connect mysql_connect(DB_SERVERDB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die(
'Impossible de se connecter : ' mysql_error());

// sélection de la base de données
mysql_select_db(DB_DATABASE$connect);
$msg_erreur "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok "Votre demande a bien été prise en compte.";
$message $msg_erreur;
define('MAIL_DESTINATAIRE','@.com'); // remplacer par votre email
define('MAIL_SUJET','Message du formulaire de example.com');

// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty(
$_POST['adresse']))
$message .= "Votre adresse<br/>";
if (empty(
$_POST['codepostal']))
$message .= "Votre code postal<br/>";
if (empty(
$_POST['ville']))
$message .= "Votre ville<br/>";
if (empty(
$_POST['comments']))
$message .= "Votre message<br/>";

// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

  echo 
$message;

// sinon c'est ok
} else {

foreach(
$_POST as $index => $valeur) {
  $
$index mysql_real_escape_string(trim($valeur));
}
$sql "INSERT INTO formulaire VALUES ('', '".$nom."', '".$adresse."', '".$codepostal."', '".$ville."', '".$pays."', '".$comments."', now())";
  
$res mysql_query($sql);

  if (
$res) {
    echo 
$msg_ok;
  } else {
    echo 
mysql_error();
  }

}
//Préparation de l'entête du mail:
$mail_entete "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
             
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' phpversion()."\r\n";

// préparation du corps du mail
$mail_corps "Message de : $civilite $nom\n";
$mail_corps .= "Adresse : $adresse$codepostal $ville$pays\n";
$mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";
$mail_corps .= $comments;

// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {

  
//Le mail est bien expédié
  
echo $msg_ok;
} else {

  
//Le mail n'a pas été expédié
  
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}

}
?>

<?php
//Préparation de l'entête du mail
$mail_entete "MIME-Version: 1.0\r\n";
$mail_entete .= "From: "MAIL_DESTINATAIRE "<" MAIL_DESTINATAIRE ">\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .=  'Content-Type: text/plain; charset="iso-8859-1"' ;
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' phpversion()."\r\n";

// préparation du corps du mail
$mail_corps .= "Nous vous confirmons que nous avons bien reçu votre formulaire etc\n";
$mail_corps .= "Adresse : $adresse$codepostal $ville$pays\n";
$mail_corps .= $comments;

// envoi du mail
$res_mail mail($_POST['email'],MAIL_SUJET,$mail_corps,$mail_entete);
?>
</p>
<form method="post" action="">
<p class="titre">Coordonnées</p>
  <label>Nom : </label>
    <input type="text" name="nom" size="30"/><br />
  <label>Adresse : </label>
    <input type="text" name="adresse" size="30" /><br />
  <label>Code postal : </label>
    <input type="text" name="codepostal" size="30" /><br />
  <label>Ville : </label>
    <input type="text" name="ville" size="30" /><br />
  <label>Adresse email : </label>
<input type="text" name="email" size="30" /><br />
  <label>Pays : </label>
    <select name="pays">
      <option value="france">France</option>
      <option value="belgique">Belgique</option>
      <option value="suisse">Suisse</option>
    </select>
<p class="titre">Message</p>
  <textarea name="comments" rows="5" cols="40"></textarea>
 <label for="verif">Recopiez le code de vérification suivant :</label>
 <img src="antispam.php" alt="image de protection" />
 <input type="text" name="verif" size="10" maxlength="10" onchange="javascript:this.value=this.value.toUpperCase();" />
 <br />
<p id="buttons">
  <input type="submit" value="Envoyer" />
  <br /><br />
  <input type="reset" value="Recommencer" />
</p>
</form>
</body>
</html>
Journalisée
Damien
Rédacteur Admin
Intarissable
*****

Points gagnés: 5
Messages: 2852



Voir le profil WWW
Re : Php MySql : Formulaire ? la cata !
« Répondre #9 le: 09 Août 2007 à 10:51:20 »

Bonjour,

Premier problème avec votre code :
- il y a une accolade fermée ligne 95 qui n'est jamais ouverte (ne correspond à rien). C'est celle qui est ici :
Code:
  //Le mail n'a pas été expédié
  echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}
[b]}[/b]

?>
<?php
//Préparation de l'entête du mail
$mail_entete "MIME-Version: 1.0\r\n";


Il y a un autre souci avec la vérification du code de sécurité. Si vous aviez fait 2 pages du style formulaire.html et traitement.php, traitement.php serait uniquement appelé lorsque le formulaire est rempli. Donc la ligne suivant est bien valide :
Code:
if(!isset($_SESSION['code']) || strlen($_SESSION['code']) != 6) die("Erreur !");

Mais dans votre cas tout est regroupé dans un seul fichier (le formulaire html et le traitement des données). Quand vous appeler le formulaire, il n'y aucun code de sécurité encore rentré puisque le formulaire n'est pas encore rempli. Donc le script s'arretera sur le messag "Erreur !" à tous les coups. Il faudrait donc remplacer :

<?php
session_start();

if(!isset($_SESSION['code']) || strlen($_SESSION['code']) != 6) die("Erreur !");

if($_SESSION['code'] != $_POST['verif']) die("Erreur : le code de protection est invalide !");

session_unset();
session_destroy();
?>

par :

Code:
<?php
session_start
();

// le formulaire est envoyé si $_POST['email'] ou un autre champ existe
if (isset($_POST['email'])) {

if(!isset($_SESSION['code']) || strlen($_SESSION['code']) != 6) die("Erreur : !");
if($_SESSION['code'] != $_POST['verif']) die("Erreur : le code de protection est invalide !");
}

session_unset();
session_destroy();
?>
Journalisée

Cordialement,
Damien

Tutoriels informatique
pushiz
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
Re : Php MySql : Formulaire ? la cata !
« Répondre #10 le: 11 Août 2007 à 19:25:35 »

Hellow hellow,

Alors, on croyait ne pas avoir des nouvelles de l'emmerdeuse ?  Very Happy

Et bien c'est raté :p !!! J'était partie quelque jours mais me revoilou !

J'ai tester le code, merci beaucoup !

J'ai encore un problème mais je comprendrai que vous en ayez marre de répondre lol.

Donc dors et déja merci pour tout, bisoux bisoux !

Pushizzz :p

Le code tester
Code:
<?php
session_start
();

// le formulaire est envoyé si $_POST['email'] ou un autre champ existe
if (isset($_POST['email'])) {

if(!isset($_SESSION['code']) || strlen($_SESSION['code']) != 6) die("Erreur : !");
if($_SESSION['code'] != $_POST['verif']) die("Erreur : le code de protection est invalide !");
}

session_unset();
session_destroy();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>::::</title>
<META NAME="ROBOT" CONTENT="all">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js?load=effects" type="text/javascript"></script>
</head>
<body>
<div id="site">
<h1></h1>
<p></p>
<div>
<h3></h3>
<p><a href="#" onclick="Effect.toggle('listeToggle','blind')">Afficher / Masquer le menu</a></p>
<p><?php
// Parametres mysql à remplacer par les vôtres
define('DB_SERVER''localhost'); // serveur mysql
define('DB_SERVER_USERNAME''tm'); // nom d'utilisateur
define('DB_SERVER_PASSWORD''g'); // mot de passe
define('DB_DATABASE''us'); // nom de la base

// Connexion au serveur mysql
$connect mysql_connect(DB_SERVERDB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die(
'Impossible de se connecter : ' mysql_error());

// sélection de la base de données
mysql_select_db(DB_DATABASE$connect);
$msg_erreur "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok "Votre demande a bien été prise en compte.";
$message $msg_erreur;
define('MAIL_DESTINATAIRE','@'); // remplacer par votre email
define('MAIL_SUJET','Message du formulaire de example.com');

// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty(
$_POST['adresse']))
$message .= "Votre adresse<br/>";
if (empty(
$_POST['codepostal']))
$message .= "Votre code postal<br/>";
if (empty(
$_POST['ville']))
$message .= "Votre ville<br/>";
if (empty(
$_POST['comments']))
$message .= "Votre message<br/>";

// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

  echo 
$message;

// sinon c'est ok
} else {

foreach(
$_POST as $index => $valeur) {
  $
$index mysql_real_escape_string(trim($valeur));
}
$sql "INSERT INTO formulaire VALUES ('', '".$nom."', '".$adresse."', '".$codepostal."', '".$ville."', '".$pays."', '".$comments."', now())";
  
$res mysql_query($sql);

  if (
$res) {
    echo 
$msg_ok;
  } else {
    echo 
mysql_error();
  }

}
//Préparation de l'entête du mail:
$mail_entete "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
             
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' phpversion()."\r\n";

// préparation du corps du mail
$mail_corps "Message de : $civilite $nom\n";
$mail_corps .= "Adresse : $adresse$codepostal $ville$pays\n";
$mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";
$mail_corps .= $comments;

// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {

  
//Le mail est bien expédié
  
echo $msg_ok;
} else {

  
//Le mail n'a pas été expédié
  
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}
?>

<?php
//Préparation de l'entête du mail
$mail_entete "MIME-Version: 1.0\r\n";
$mail_entete .= "From: "MAIL_DESTINATAIRE "<" MAIL_DESTINATAIRE ">\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .=  'Content-Type: text/plain; charset="iso-8859-1"' ;
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' phpversion()."\r\n";

// préparation du corps du mail
$mail_corps .= "Nous vous confirmons que nous avons bien reçu votre formulaire etc\n";
$mail_corps .= "Adresse : $adresse$codepostal $ville$pays\n";
$mail_corps .= $comments;

// envoi du mail
$res_mail mail($_POST['email'],MAIL_SUJET,$mail_corps,$mail_entete);
?>
</p>
<form method="post" action="">
<p class="titre">Coordonnées</p>
  <label>Nom : </label>
    <input type="text" name="nom" size="30"/><br />
  <label>Adresse : </label>
    <input type="text" name="adresse" size="30" /><br />
  <label>Code postal : </label>
    <input type="text" name="codepostal" size="30" /><br />
  <label>Ville : </label>
    <input type="text" name="ville" size="30" /><br />
  <label>Adresse email : </label>
<input type="text" name="email" size="30" /><br />
  <label>Pays : </label>
    <select name="pays">
      <option value="france">France</option>
      <option value="belgique">Belgique</option>
      <option value="suisse">Suisse</option>
    </select>
<p class="titre">Message</p>
  <textarea name="comments" rows="5" cols="40"></textarea>
 <label for="verif">Recopiez le code de vérification suivant :</label>
 <img src="antispam.php" alt="image de protection" />
 <input type="text" name="verif" size="10" maxlength="10" onchange="javascript:this.value=this.value.toUpperCase();" />
 <br />
<p id="buttons">
  <input type="submit" value="Envoyer" />
  <br /><br />
  <input type="reset" value="Recommencer" />
</p>
</form>
</div>
</div>
</body>
</html>

La réponse....

Code:
Erreur : le code de protection est invalide !

Voici voila Smile bonne chance sherlock Smile
Journalisée
Damien
Rédacteur Admin
Intarissable
*****

Points gagnés: 5
Messages: 2852



Voir le profil WWW
Re : Php MySql : Formulaire ? la cata !
« Répondre #11 le: 12 Août 2007 à 14:35:55 »

Bonjour pushiz,

Le code de protection peut être invalide pour plusieurs raisons.
Il faut vérifier :


1/ que le fichier antispam.php est bien présent et donc que le code de sécurité d'affiche bien sur votre formulaire.

2/ que le code s'enregistre bien en session mais normalement c'est le cas de mémoire si ce fichier de code de sécurité vient du tutoriel sur le site.

3/ je vois peut-être un autre souci sur votre champ "verif" qui sert à recopier le code de sécurité :
Code:
<input type="text" name="verif" size="10" maxlength="10" onchange="javascript:this.value=this.value.toUpperCase();" />

Le
Code:
onchange="javascript:this.value=this.value.toUpperCase();"
met systématiquement ce que l'on tape en majuscule.
Mais attention que le code généré par antispam.php ne comporte bien que des majuscules, sinon la comparaison entre les deux codes ne passera pas.
Journalisée

Cordialement,
Damien

Tutoriels informatique
pushiz
Nouveau membre
*

Points gagnés: 0
Messages: 8


Voir le profil
Re : Php MySql : Formulaire ? la cata !
« Répondre #12 le: 14 Août 2007 à 14:57:07 »

Bonjour,

Il commence a devinir long ce post ! Very Happy

Voilà tout roule... BRAvO ! :p

Juste 2 petite questions :

Mes messages ce mette toujour dans spam...

Le contenu de mes message est :

Content-Type: text/plain; charset="iso-8859-1"

Content-Transfer-Encoding: 8bit

X-Mailer:PHP/4.3.10


Avant le message.

Est-ce possible d'envoyer un message automatique, ne reprenant pas spécialement les infos. en HTML ?

Facilement ? lol sinon laissez tomber... :p

ALlais bonne journée Very Happy
Journalisée
Pages: [1] Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  

Powered by SMF 1.1.12 | SMF © 2006, Simple Machines LLC

Page générée en 0.234 secondes avec 20 requêtes.