Page 1 sur 1

header location et html ?

Posté : 08 janv. 2007, 11:56
par Invité
Bonjour,

j'ai un petit problème, regarder le code et vous comprendrez :
<?
include_once('haut.php');  <== là,y'a du html dedans !!!!!
$blabla = récupération des données en POST;
if(!$nom)
{
echo'votre nom ?<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
include_once('bas.php');
return FALSE;
}
if(!$mail)
{
echo'email?<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
include_once('bas.php');
return FALSE;
}
if(!$message)
{
echo'lmessafe ?<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
include_once('bas.php');
return FALSE;
}
mail("blablablabla");  
header("Location:ok.php");
?>
voilà,je ne sait pas du tout comment faire !

Pouvez vous m'aider ?

Merci :)

Posté : 08 janv. 2007, 12:05
par Ryle
Tu peux opter pour une solution de redirection html (avec les meta) ou javascript (document.location). Mais le plus simple ne serait-il pas de faire un test sur tes variables $mail et $message dès le début de ton script, envoyer le mail et faire le header si nécessaire, et gérer les autres cas nécessitant du html ensuite ?
Ainsi pas de html envoyé avant le header et pas de soucis à avoir :)

Posté : 08 janv. 2007, 12:11
par Invité
Je vient de tester ceci :
<?php
recuperation des données !!!!
if(!$nom)
{
header("Location:non1.php");
return FALSE;
}
if(!$mail)
{
header("Location:non2.php");
return FALSE;
}
if(!$message)
{
header("Location:non3.php");
return FALSE;
}
mail("blablablablablabla");  
header("Location:ok1.php");
?>
Et j'ai une erreur type :
Fatal error: Call to undefined function: formulaires()
Une idée ?

Merci

Posté : 08 janv. 2007, 13:28
par Invité
Je comprend rien,je vient de tenter ceci :
<?php
$nom=formulaires($_POST['nom']);
$mail=formulaires($_POST['mail']);
$message=formulaires($_POST['message']);
$sujet=formulaires($_POST['sujet']);
if(!$nom)
{
include_once('haut.php');
echo'votre nom ?<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
include_once('bas.php');
return FALSE;
}
if(!$mail)
{
include_once('haut.php');
echo'email?<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
include_once('bas.php');
return FALSE;
}
if(!$message)
{
 include_once('haut.php');
echo'lmessafe ?<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
include_once('bas.php');
return FALSE;
}
mail("blablabla");
header("Location:ok.php");
?>
et j'ai encore cette erreur :
Fatal error: Call to undefined function: formulaires()
Par contre,si je met
include_once('haut.php');
juste après <?php , c'est bon mais pas pour le header ?????

Pourquoi si je met pas
include_once('haut.php');
avant la récupération des variables,j'ai cette erreur ?

Help :(

Posté : 08 janv. 2007, 13:55
par Ryle
Est-ce que le fonction formulaires() ne serait pas incluse dans le fichier 'haut.php' par le plus grand des hasards ? Ne te semble-t-il pas normal qu'il ne la trouve pas si ce fichier n'est pas inclu ? :)

Bon par contre à priori, tu n'es pas obligé de l'inclure avant l'appel à la fonction, il suffit qu'il soit dans le script pour que cela fonctionne. Il te suffit donc de l'appeller une fois tes header passés, à partir du moment où tu as besoin d'envoyer du html et des messages d'erreur. Cf mon premier post ;)