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

cs_ikaros Messages postés 6 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 14 mai 2005 - 15 déc. 2004 à 17:14
cs_ikaros Messages postés 6 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 14 mai 2005 - 16 déc. 2004 à 09:11
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

LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
16 déc. 2004 à 05:07
Slt,

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

Laurent
http://www.phpsources.net
0
cs_ikaros Messages postés 6 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 14 mai 2005
16 déc. 2004 à 09:11
Salut Laurent,

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

Marc
0
Rejoignez-nous