Bonjour à tous.
Voilà je suis débutant en php, et je suis confronté à un problème où je n'arrive pas à trouver de réponse... Je vous explique tout.
J'ai fait un livre d'or sur mon site, c'est à dire une page livreDOr.php avec un affichage des messages, puis un formulaire html pour poster.
Le formulaire redirige vers la page messagePoste.php. Cette page récupère toutes les valeurs, fais les tests des booleens, des empty à certains champs etc... Puis ajoute tout ça à la base mysql. Tout marche niquel niveau ajout à la base tout ça.. Mon problème est que lorsque j'ai voulu faire ma dernière vérification, c'est à dire vérifier si certains champs étaient empty avant d'ajouter à la base, j'ai eu un probleme.
SI tel champ OU tel champ est vide, ALORS je redirige vers une page erreur.html. Sinon, je fais mon ajout à la base, et j'indique que la requête a marché ou a échoue pour x raisons.
Et ben mon header:location sensé rediriger vers ma page d'erreur foire et me redirige pas. Pire, la requete n'est même pas exécutée vue qu'il est resté bloqué dans le SI tel champ est vide...
Je sais pas si je m'exprime clairement ( je fournis le code après ).
J'ai cherché sur le net et j'ai trouvé deux autres forums ou ces problèmes étaient survenus : le premier avait trouvé sa solution en faisant avouer à l'hebergeur que le serveur php ne prenait pas en compte le header:location, le deuxieme a trouvé que l'origine du problème était qu'il fallait qu'un header:location en ligne soit la première instruction, avant le html... Donc il a remplacé le header:location par toute sa page html en echo.....
Donc ben moi
- j'aimerai pas que ca soit le serveur php qui reconnaisse pas le header,
- j'aimerai pas remplacer cette instruction par 90 lignes de code
- j'aimerai pas remplacer par une fonction javascript car je suis contre au niveau compatibilité, j'évite le JS
Des solutions siouplait ? :-(
J'vous met l'essentiel de mon code, et je vous remercie par avance !!!
Bonne soirée.
partie du script de ma page messagePoste.php ( celui qui foire )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?php include("connexion.php"); $numMessage = ''; $dateMessage = date('d-m-Y H:i'); $nomPosteur = $_REQUEST['nom']; $prenomPosteur = $_REQUEST['prenom']; $mailPosteur = $_REQUEST['email']; $clientBooleen = $_REQUEST['client']; $message = $_REQUEST['message']; if(!empty($clientBooleen)) $clientBooleen = 'o'; else $clientBooleen = 'n'; if(empty($nomPosteur) || empty($message)) { header('location: erreur.html'); // c'est là que ça blème... echo 'test bug'; // J'ai cette page d'affichée avec ces mots. exit; } else // la requete n'est donc pas executée, la boucle s'est arrêtée avant. { $requete = "INSERT INTO message VALUES ( '".$numMessage."' , '".$dateMessage."' , '".$nomPosteur."' , '".$prenomPosteur."' , '".$mailPosteur."' , '".$clientBooleen."' , '".$message."' );"; $ok = mysql_query($requete,$connexion); if($ok) { echo "<b>Ajout de votre message réussi, merci.</b><br /><br /><a href='livreDOr.php'>Cliquez ici</a> pour revenir sur le livre d'or."; } else { echo "<b>Erreur lors de l'ajout de votre message, veuillez recommencer.</b><br /><br /><a href='livreDOr.php'>Cliquez ici</a> pour revenir sur le livre d'or."; } mysql_close($connexion); } ?>
Partager