Je suis plus que débutante en php et il m'a fallu plus d'une semaine (et l'aide d'un ami qui m'a corrigé certaines erreurs) pour arriver à écrire une page php qui fonctionne et récupère les données d'un formulaire (avec certains champs obligatoires et d'autres facultatifs) et les faire s'insérer dans ma BDD...
Evidemment, ce script renvoie un message après la validation du formulaire : soit il indique les champs manquants, soit il confirme que tout est OK.
Maintenant, je voudrais le modifier et faire en sorte qu'au lieu du message confirmant que tout est ok délivré par <?php echo $msg_ok;?>, je voudrais qu'un lien soit fait vers une page "merci.html" qui comporte elle-même un autre lien.
Comme j'ai voulu personnaliser la page comportant les messages "champs manquants" et "confirmation ok" avec un cadre adaptable à la hauteur du message généré qui comporte un bandeau en haut et un pied de page , j'ai créé, à part, une page "header.php' et une page "footer.php" que j'ai mis en include, et ai placé le <?php echo $msg_ok;?> dans une table avec un fond comportant les côtés droit et gauche du cadre.
Et maintenant je suis bloquée parce que je ne sais pas ce qu'il me faut faire pour que seulement lorsque le formulaire est OK, ce soit la page "merci.html" qui s'affiche et non le message généré par <?php echo $msg_ok;?>. J'ai essayé d'utiliser le "refresh" mais j'ai dû mal m'y prendre car que le formulaire soit ou non correctement complété, la page php renvoie sur la page "merci.html".
Comme je ne suis pas certaine d'être très claire dans mes explications, voici le contenu de ma page php après les "formules d'usage" : balise php et données connexion BDD (soyez indulgents avec moi sur sa rédaction, c'est mon premier "vrai" script, il fera certainement brouillon pour beaucoup d'entre vous...)
CODE
//message erreur champs obligatoires
$msg_erreur = "Erreur. Vous n'avez pas complété tous les champs. Utilisez la fonction retour de votre navigateur pour remplir les champs omis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
//recuperation des données table coordonnees et vérification des champs obligatoire
if (empty($_POST['nom']))
$message .= "Nom<br/>";
$entreprise=$_POST['entreprise'];
$adresse=$_POST['adresse'];
$ville=$_POST['ville'];
$tel=$_POST['tel'];
$fax=$_POST['fax'];
if (empty($_POST['email']))
$message .= "Email<br/>";
$site=$_POST['site'];
if (empty($_POST['siret']))
$message .= "Siret ou N° TVA intracommunautaire<br/>";
if (empty($_POST['profession']))
$message .= "Profession<br/>";
$skype=$_POST['skype'];
$msn=$_POST['msn'];
if (empty($_POST['produits']))
$message .= "Vous a-t-on déjà présenté, ou avez-vous déjà acheté des produits similaires à ces pots ?<br/>";
if (empty($_POST['recontact']))
$message .= "Souhaitez-vous que nous vous recontactions lors de la mise sur le marché de ces pots ?<br/>";
include ("header.php");
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {
?>
<html>
<body>
<div align="center">
<table width="800" border="0" cellspacing="0" cellpadding="0" background="images/accueilcotes.gif">
<tr>
<td>
<div align="center">
<br/> <br/>
<?php echo $message; ?>
<br/>
</div>
</td>
</tr>
</table>
</div>
<?php
// sinon c'est ok
} else {
foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}
// Insertion des données dans la table coordonnees
$query = "INSERT INTO coordonnees(nom,entreprise,adresse,ville,tel,fax,email,site,siret,profession,sky
pe,msn,produits,recontact) VALUES('$nom','$entreprise','$adresse','$ville','$tel','$fax','$email','$site','$siret','$profession','$skype','$msn','$produits','$recontact')";
$result = mysql_query ($query);
if ($result) {
?>
<div align="center">
<table width="800" border="0" cellspacing="0" cellpadding="0" background="images/accueilcotes.gif">
<tr>
<td>
<div align="center">
<br/> <br/>
<?php echo $msg_ok;?>
<br/>
</div>
</td>
</tr>
</table>
</div>
</body>
</html>
<?php
} else {
echo mysql_error();
}
}
include ("footer.php");
mysql_close();
?>
$msg_erreur = "Erreur. Vous n'avez pas complété tous les champs. Utilisez la fonction retour de votre navigateur pour remplir les champs omis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
//recuperation des données table coordonnees et vérification des champs obligatoire
if (empty($_POST['nom']))
$message .= "Nom<br/>";
$entreprise=$_POST['entreprise'];
$adresse=$_POST['adresse'];
$ville=$_POST['ville'];
$tel=$_POST['tel'];
$fax=$_POST['fax'];
if (empty($_POST['email']))
$message .= "Email<br/>";
$site=$_POST['site'];
if (empty($_POST['siret']))
$message .= "Siret ou N° TVA intracommunautaire<br/>";
if (empty($_POST['profession']))
$message .= "Profession<br/>";
$skype=$_POST['skype'];
$msn=$_POST['msn'];
if (empty($_POST['produits']))
$message .= "Vous a-t-on déjà présenté, ou avez-vous déjà acheté des produits similaires à ces pots ?<br/>";
if (empty($_POST['recontact']))
$message .= "Souhaitez-vous que nous vous recontactions lors de la mise sur le marché de ces pots ?<br/>";
include ("header.php");
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {
?>
<html>
<body>
<div align="center">
<table width="800" border="0" cellspacing="0" cellpadding="0" background="images/accueilcotes.gif">
<tr>
<td>
<div align="center">
<br/> <br/>
<?php echo $message; ?>
<br/>
</div>
</td>
</tr>
</table>
</div>
<?php
// sinon c'est ok
} else {
foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}
// Insertion des données dans la table coordonnees
$query = "INSERT INTO coordonnees(nom,entreprise,adresse,ville,tel,fax,email,site,siret,profession,sky
pe,msn,produits,recontact) VALUES('$nom','$entreprise','$adresse','$ville','$tel','$fax','$email','$site','$siret','$profession','$skype','$msn','$produits','$recontact')";
$result = mysql_query ($query);
if ($result) {
?>
<div align="center">
<table width="800" border="0" cellspacing="0" cellpadding="0" background="images/accueilcotes.gif">
<tr>
<td>
<div align="center">
<br/> <br/>
<?php echo $msg_ok;?>
<br/>
</div>
</td>
</tr>
</table>
</div>
</body>
</html>
<?php
} else {
echo mysql_error();
}
}
include ("footer.php");
mysql_close();
?>
Merci pour votre aide...
