pbm de redirection avec header - PHP - Programmation
Marsh Posté le 15-07-2004 à 10:59:20
tu n'écris RIEN (de html, echo etc) avant le header
Marsh Posté le 15-07-2004 à 10:59:34
donne ton code stp
Marsh Posté le 15-07-2004 à 11:00:41
http://www.phpfrance.com/tutorials/index.php?id=33
Marsh Posté le 15-07-2004 à 11:40:28
alors voila mon code
<?
session_name("BP" );
session_start();
$tableaumotedepasse=array( tableau avec les mots de passe );
$_SESSION['IPserveur']="ip du serveur";
$_SESSION['login']=$_POST['login'];
$_SESSION['motdepasse']=md5($_POST['motdepasse']);
if ((@mysql_connect($_SESSION['IPserveur'],logindebase,motdepassedebase))==NULL)
{
// on ne peut pas se connecter au serveur
echo "flag 1. Problème de connexion au serveur MySQL. Veuillez essayer plus tard.<br>";
@mysql_close() or die(mysql_error());
session_destroy();
include("connexion.php" );
}
else
{
mysql_query("USE BP" ) or die("flag 2. impossible d'acceder à la base de données." );
$req="SELECT motdepasse, catégorie FROM utilisateur WHERE login='".$_SESSION['login']."'";
$resultat=mysql_query($req) or die("flag 3. ".mysql_error());
@mysql_close() or die(mysql_error());
$tableauresultat=mysql_fetch_array($resultat,MYSQL_ASSOC);
echo $tableauresultat['motdepasse']."<br>";
echo $_SESSION['motdepasse']."<br>";
if ( $tableauresultat['motdepasse']!=$_SESSION['motdepasse'])
{
// mot de passe incorect ou login inexistant
echo "flag 4. connexion échoué. Mauvais paramètres de connexion. Verifier login et mot de passe.<br>";
session_destroy();
include("connexion.php" );
}
else
{
// mot de passe et login ok -> on va vers le site
$_SESSION['catégorie']=$tableauresultat['catégorie'];
$_SESSION['motdepassecat']=$tableaumotedepasse[$_SESSION['catégorie']];
header("Location: frame_all.php?rep=bp" );
}
}
?>
y a des choses avant le header mais aucune sortie... a moins que ce qu il y a dans les autres if compte, mais pourtant si le login et mot de passe sont ok on ne doit pas rentré dedans
Marsh Posté le 15-07-2004 à 11:44:51
pourtant c'est ça. tu écris dans le if, tu écris dans le else.
enlève tout les echo
Marsh Posté le 15-07-2004 à 11:49:45
oui
Marsh Posté le 15-07-2004 à 11:50:13
car mysqlError() fais un echo...
Marsh Posté le 15-07-2004 à 12:56:18
c'est bon ?
Marsh Posté le 15-07-2004 à 14:27:08
oui apparement c est ca.
je vais devoir faire la redirection en JavaScript je peux pas faire autrement (car le fichier avec le code ci dessus n est pas lancé directement mais il est inclu dans un autre par la fonction include() - cet autre fichier etant en fait l intranet de ma boite et j ai pas le droit d y toucher)
Marsh Posté le 15-07-2004 à 14:33:29
ok
Marsh Posté le 15-07-2004 à 10:58:02
j'ai un petit probleme
je fais une redirection en utilisant header.
en local ca marche niquel avec easyphp mais quand je le mets sur le serveur qui herberge notre intranet ca marche plus ... et je sais pas du pourquoi
Il n'y a pas de messsage d'erreur, la ligne header n'est tout simplement pas executer apparement (j ai mis un echo "test<br>"; avant et apres, les deux marchent!)
es ce possible que la fonction header ne soit tout simplement pas disponible sur le serveur? ca serait gros quand meme