Erreur PHP Redirection

Fermé
DAG - 6 août 2008 à 18:48
 Langage - 9 sept. 2012 à 18:35
Bonjour,
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

7 réponses

Fyl26 Messages postés 20 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 25 octobre 2010 3
6 août 2008 à 18:50
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().
1
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 ?
1
Fyl26 Messages postés 20 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 25 octobre 2010 3
6 août 2008 à 21:16
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
1
Yes Fyl26, c'est ça !
Ca marche nickel maintenant !
Je te remercie.

A+
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fyl26 Messages postés 20 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 25 octobre 2010 3
7 août 2008 à 09:45
De rien, autant pour moi !
1
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!
0
Bonjour essaye avec ça a la place de header()
<?php
print("<script type=\"text/javascript\">setTimeout('location=(\"page.php\")');</script>");
?>
0