Probleme : header(Location : index.php) PHP
DoI3y
Messages postés
57
Statut
Membre
-
Findusssss -
Findusssss -
Bonjour,
Voila g un petit problème en PHP mon script de connexion fonctionne parfaitement en local mais sur mon serveur il ne ne veut pas accéder à la page index comme indiqué dans le header(Location: index.php); mais il affiche toujours la page login.php....
Voici mon code :
La page login.php
<?php
session_start();
include('../connection/connection.php');
connexion_bdd();
switch (@$_POST['do'])
{
case "login" :
$sql = "SELECT login FROM membre WHERE login = '$_POST[fusername]'";
$result = mysql_query($sql) or die ("Requête en echec ligne 10 login.php");
$num = mysql_num_rows($result);
if ($num > 0) // login trouvée
{
$sql = "SELECT login FROM membre WHERE login = '$_POST[fusername]' AND password = '$_POST[fpassword]'";
$result2 = mysql_query($sql);
$num2 = mysql_num_rows($result2);
if($num2 > 0) // mot de passe OK
{
$_SESSION['auth']="yes";
$logname = $_POST['fusername'];
$_SESSION['logname'] = $logname;
$today = date("Y-m-d h:i:s");
$sql = "INSERT INTO login (login, logintime) VALUES ('$logname', '$today')";
$result = mysql_query($sql) or die ("Requête d'insertion en echec ligne 26 login.php");
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'location.php';
header("Location: http://$host$uri/$extra");
exit();
}
else // mot de passe incorrect
{
$message = "Le nom de Login '$_POST[fusername]' existe, mais le mot de passe ne vas pas ! réessayez.<br>";
include ("login_form.inc");
}
}
elseif ($num == 0) // nom de login introuvable
{
$message = "Le nom de login que vous avez saisi n'existe pas. Essayéz encore.<br>";
include ("login_form.inc");
}
default:
include("login_form.inc");
}
?>
PS : la page login_form.inc contient mon formulaire de connexion...
Merci d'avance
Voila g un petit problème en PHP mon script de connexion fonctionne parfaitement en local mais sur mon serveur il ne ne veut pas accéder à la page index comme indiqué dans le header(Location: index.php); mais il affiche toujours la page login.php....
Voici mon code :
La page login.php
<?php
session_start();
include('../connection/connection.php');
connexion_bdd();
switch (@$_POST['do'])
{
case "login" :
$sql = "SELECT login FROM membre WHERE login = '$_POST[fusername]'";
$result = mysql_query($sql) or die ("Requête en echec ligne 10 login.php");
$num = mysql_num_rows($result);
if ($num > 0) // login trouvée
{
$sql = "SELECT login FROM membre WHERE login = '$_POST[fusername]' AND password = '$_POST[fpassword]'";
$result2 = mysql_query($sql);
$num2 = mysql_num_rows($result2);
if($num2 > 0) // mot de passe OK
{
$_SESSION['auth']="yes";
$logname = $_POST['fusername'];
$_SESSION['logname'] = $logname;
$today = date("Y-m-d h:i:s");
$sql = "INSERT INTO login (login, logintime) VALUES ('$logname', '$today')";
$result = mysql_query($sql) or die ("Requête d'insertion en echec ligne 26 login.php");
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'location.php';
header("Location: http://$host$uri/$extra");
exit();
}
else // mot de passe incorrect
{
$message = "Le nom de Login '$_POST[fusername]' existe, mais le mot de passe ne vas pas ! réessayez.<br>";
include ("login_form.inc");
}
}
elseif ($num == 0) // nom de login introuvable
{
$message = "Le nom de login que vous avez saisi n'existe pas. Essayéz encore.<br>";
include ("login_form.inc");
}
default:
include("login_form.inc");
}
?>
PS : la page login_form.inc contient mon formulaire de connexion...
Merci d'avance
4 réponses
Bonjour,
La syntaxe un peu plus exact serait :
header('Location: http://host.fr/
--> En effet, tout doit être entre les ' '
La syntaxe un peu plus exact serait :
header('Location: http://host.fr/
--> En effet, tout doit être entre les ' '
Vous êtes dans le cas ou normalement, tout est bien configuré et vous n'avez oublié aucune des subtiles manipulations de psychopathe ?
Jetez un coup d'oeil au paramètre output_buffering (ou quelque chose du genre, me souvient plus...) dans le php.ini.
S'il est à off, pas étonnant que ça marche pas...
Moi, j'ai mis 4096, au pif...
Et... n'oubliez pas de redémarrer Apache. ^^
++
Jetez un coup d'oeil au paramètre output_buffering (ou quelque chose du genre, me souvient plus...) dans le php.ini.
S'il est à off, pas étonnant que ça marche pas...
Moi, j'ai mis 4096, au pif...
Et... n'oubliez pas de redémarrer Apache. ^^
++
Remplace le
header('Location: mapage.php');
par
die('<META HTTP-equiv="refresh" content=0;URL=mapage.php>');
GrosLolo.
sorcier21