Création de cookie après avoir complété un formulaire

Signaler
Messages postés
6
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
14 mai 2005
-
Messages postés
6
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
14 mai 2005
-
Bonjour,

Je voudrais qu'un cookie soit créé après qu'un formulaire ait été complété et qu'une base de données ait été mise à jour. J'ai mis l'instruction setcookie() dans mon code mais il ne fonctionne que sur mon serveur de test. Ca ne marche pas sur le site en ligne. J'ai bien lu qu'il fallait mettre l'instruction setcookie() avant toute autre instruction mais je ne vois pas comment faire dans ce cas ci.
Donc, si quelqu'un a le courage de lire mon code et me dire ce qui ne va pas........

Merci d'avance

<?php
error_reporting(0);

// test d'execution du formulaire

if (isset($_POST['SubmitButton'])) {
$form= "";
$FirstName=$_POST['FirstName'];
$error_firstname= "";
$FamilyName=$_POST['FamilyName'];
$error_lastname= "";
$Country=$_POST['Country'];
$error_country="";
$DaytimePhone=$_POST['DaytimePhone'];
$Fax=$_POST['Fax'];
$EMail=$_POST['EMail'];
$error_email= "";
$Language=$_POST['Language'];
$Question=$_POST['Question'];
$error_question="";

//Test erreurs

$errors=0;

if ($_POST['FirstName']== "") {
$error_firstname="
Veuillez remplir votre prénom ";
$errors =$errors+1;
}

if ($_POST['FamilyName']= = "") {
$error_familyname="
Veuillez remplir votre nom de famille ";
$errors =$errors+1;
}

if ($_POST['Country']= = "") {
$error_country="
Veuillez remplir votre pays ";
$errors =$errors+1;
}

if (($_POST['EMail']= = "")or (strpos($_POST['EMail'],"@")==0)) {
$error_email="
Veuillez remplir une adresse E-Mail valide ";
$errors =$errors+1;
}

if ($_POST['Question']= = "") {
$error_question="
Veuillez poser votre question ";
$errors =$errors+1;
}

if ($errors==0) {

//Envoi du mail de confirmation

$mailto=$_POST['EMail'];
$mailsubject= "Confirmation de la question posée sur le site de Pro-Noni.";
$mailheaders= "MIME-Version: 1.0\r\n";
$mailheaders .="To: "$FirstName" "$FamilyName" <$EMail>\r\n";
$mailheaders .="From: Pro-Noni <contact@domain>\r\n";
$mailheaders .="Bcc: contact@domain\r\n";
$mailmessage = "Cher(e) $FirstName $FamilyName,

Nous vous remercions d'avoir rempli le formulaire sur le site de Pro-Noni.
Voici la confirmation des données que vous avez introduites:

Prénom : $FirstName
Nom de famille : $FamilyName
Pays : $Country
Téléphone : $DaytimePhone
Fax : $Fax
E-Mail : $EMail
Votre question : $Question

Nous nous efforcerons de vous répondre endéans 1 journée ouvrable.
Le temps de réponse peut varier en fonction de la zone horaire applicable.

Pro-Noni";

if (mail($mailto,$mailsubject,$mailmessage,$mailheaders)) {
$form="
Cher(e) $FirstName $FamilyName,

Merci d'avoir rempli notre formulaire.

Un accusé de réception a été envoyé à l'adresse E-Mail que vous avez mentionnée.

Pro-Noni.
";
}
else {
$form="L'accusé de réception n'a pas pu être envoyé à $FirstName $FamilyName.
";
}

//Création de l'enregistrement dans la base de données

$Date=date("Y-m-d");
$link=mysql_connect("localhost","dbuser","dbpass")or die("Impossible de se connecter : " . mysql_error());
$db=mysql_select_db("db",$link);
$sql="INSERT INTO Contacts VALUES(0,"$FirstName","$FamilyName","","","","","$Country","$DaytimePhone","","","$Fax","$EMail","","FR","$Date")";
$res=mysql_query($sql,$link);
$sql="SELECT ID from Contacts WHERE FirstName="$FirstName" AND FamilyName="$FamilyName" AND Date="$Date"";
$res=mysql_query($sql,$link);
$ContactID=mysql_result($res,0);
$sql="INSERT INTO Queries VALUES(0,"$ContactID","$Question","$Date")";
$res=mysql_query($sql,$link);
mysql_close($link);

//Création Cookie

if (!isset($HTTP_COOKIE_VARS['user'])) {
setcookie("user", $ContactID, time() + 315360000);
}
}

}
else {

//Initialisation variables pour premier affichage du formulaire

if (isset($HTTP_COOKIE_VARS['user'])) {
$ContactID=$HTTP_COOKIE_VARS['user'];
$link=mysql_connect("localhost","dbuser","dbpass")or die("Impossible de se connecter : " . mysql_error());
$db=mysql_select_db("db",$link);
$sql="SELECT * from Contacts WHERE ID="$ContactID"";
$res=mysql_query($sql,$link);
$form="";
$FirstName=mysql_result($res,0,"FirstName");
$FamilyName=mysql_result($res,0,"FamilyName");
$Country=mysql_result($res,0,"Country");
$DaytimePhone=mysql_result($res,0,"DaytimePhone");
$Fax=mysql_result($res,0,"Fax");
$EMail=mysql_result($res,0,"E-Mail");
$Language=mysql_result($res,0,"Language");
$Question="";
mysql_close($link);
}
else {
$form="";
$FirstName="";
$FamilyName="";
$Country="";
$DaytimePhone="";
$Fax="";
$EMail="";
$Language="";
$Question="";
}

}

//Affichage du formulaire

if ($form != "") {
print ($form);
}
else {
$form="
<form action="$PHP_SELF" method=post name=Contact id= Contact>

Prénom (*),
$error_firstname,

----

Nom de famille (*),
$error_familyname,

----

Pays (*),
$error_country,

----

E-Mail (*),
$error_email,

----

Téléphone,
,

----

Fax,
,

----

Vos questions,
<textarea name=Question cols=40 rows=5 id=Question>$Question</textarea>$error_question,

----

,

</form>";

print($form);
}
?>

2 réponses

Messages postés
369
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
20 octobre 2013

Slt,

Ca marche en local et pas en ligne... Ca serait pas plutot un probleme coté serveur ?

Laurent
http://www.phpsources.net
Messages postés
6
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
14 mai 2005

Salut Laurent,

Quel genre de problème côté serveur? Que dois-je demander à l'hébergeur?

Marc