Erreur PHP Redirection
DAG
-
Langage -
Langage -
Bonjour,
J'ai écris le programme suivant :
Ce programme récupère les info d'une page de login html. A partir de là, il vérifie que les infos entrées par l'utilisateur sont bonnes.
J'ai l'erreur suivante que je ne comprend pas :
Warning: Cannot modify header information - headers already sent by (output started at /var/www/Application/bdd/connexion_bdd.php:12) in /var/www/Application/login.php on line 25
Quelqu'un aurait-il la solution ?
Je voudrais bien n'avoir qu'un fichier ou j'ai ma fonction de connexion, Et je voudrais rediriger l'utilisateur vers une page...
Rien de bien compliqué !
Merci d'avance
J'ai écris le programme suivant :
<?php
include 'bdd/connexion_bdd.php';
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass']))
{
extract($_POST);
$sql = "SELECT pwd FROM tbl_user where login=\"$login\";";
$req = mysql_query($sql) or die("Erreur SQL !<br>" . $sql . "<br>" . mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pwd'] != $pass)
{
echo "<p>Mauvais login / password. Merci de recommencer</p>";
include('index.html');
exit;
}
else
{
session_start();
$_SESSION['login'] = $login;
header('Location: /Application/accueil/index.php');
}
}
else
{
echo "<p>Vous avez oublié de remplir un champ.</p>";
include('index.html');
exit;
}
?>
Ce programme récupère les info d'une page de login html. A partir de là, il vérifie que les infos entrées par l'utilisateur sont bonnes.
J'ai l'erreur suivante que je ne comprend pas :
Warning: Cannot modify header information - headers already sent by (output started at /var/www/Application/bdd/connexion_bdd.php:12) in /var/www/Application/login.php on line 25
Quelqu'un aurait-il la solution ?
Je voudrais bien n'avoir qu'un fichier ou j'ai ma fonction de connexion, Et je voudrais rediriger l'utilisateur vers une page...
Rien de bien compliqué !
Merci d'avance
Configuration: Linux Firefox 3.0.1
7 réponses
-
Et bien je pense (j'ai eu la même erreur aussi) qu'il faut que tu enlève un header() dans un de tes fichiers php inclus.
C'est pas bon d'avoir plusieurs header(). -
Dans ce fichier là je n'est qu'un header ... Je ne comprend pas ... J'ai un fichier inclus ou j'ai la config de la connxion à ma base de données. Et si l'utilisateur ne s'est pas bien logé je le redirige via le header vers une autre page.
C'est bizarre, si je dois virer le header je ne sais pas comment je vais faire pour rediriger les utilisateurs... Et si je dois virer mon include, il va falloir que je mette la conf de la connexion dans chaque fichier php ? -
Ah voilà moi aussi j'ai eu le même problème !
Si tu veux rediriger tes utilisateurs (je fais comme ça aussi maintenant), tu remplaces ton code par celui là ! tu verras ca marchera !
<?php
include 'bdd/connexion_bdd.php';
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass']))
{
extract($_POST);
$sql = "SELECT pwd FROM tbl_user where login=\"$login\";";
$req = mysql_query($sql) or die("Erreur SQL !<br>" . $sql . "<br>" . mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pwd'] != $pass)
{
echo "<p>Mauvais login / password. Merci de recommencer</p>";
include('index.html');
exit;
}
else
{
session_start();
$_SESSION['login'] = $login;
echo "Redirection en cours...<meta http-equiv=\"refresh\" content=\"0;URL=/Application/accueil/index.php\">";
}
}
else
{
echo "<p>Vous avez oublié de remplir un champ.</p>";
include('index.html');
exit;
}
?>
PS : le URL=/Application/accueil/index.php\">"; peut etre que tu dois mettre http:// (la vraie URL)
Voilà tu verras moi aussi j'ai le meme probleme que toi j'ai resolu ca par le html -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Salut,
Je viens de faire une mises à jour de mon site sous spip, mais quand je tente de me connecter à l'espace d'administration, j'ai une message Erreur 310 trop de redirections.
Quelqu'un à une solution pour moi?
D'avance merci! -
Bonjour essaye avec ça a la place de header()
<?php
print("<script type=\"text/javascript\">setTimeout('location=(\"page.php\")');</script>");
?>