Problème de redirection

Eléphant du PHP | 333 Messages

14 janv. 2007, 04:20

Bonjour tous, petit, même gros problème.

Sur mon site, j'ai une méthode d'authentification plus que simple avec ma Bdd, si le user & pass sont OK ca redirige et crée un cookie et si non bien reste sur la même page avec un message d'erreur.

Le problème est à la redirection, elle ne fonctionne pas, mais je sais que le reste fonctionne, s'il y a erreur il me met mon erreur, et si c'est OK bien mes cookie se crée juste qu'il revien à la même page. Pour pousser mon test, j'ai créer un message "ca fonctionne mais pas de redirection..."

Voici le code, voyer vous l'erreur ??
<?php session_start(); ?>
 
<?
if (isset($_POST['connec_cellier']))
{
    require_once("connec.php");
    $pseudo = $_POST['pseudo'];
    $passe = $_POST['passe'];

    $existe = "SELECT * FROM membres WHERE pseudo='". $pseudo ."' AND passe='". $passe ."'";
    $existence = mysql_query($existe);
	if(mysql_num_rows($existence) == 1)
    {
	while ($donnees = mysql_fetch_array($existence) )
        {
       	$timestamp_expire = time() + 365*24*3600; // Le cookie expirera dans un an
        setcookie('connec', $donnees['connec'], $timestamp_expire); // Info de connection MySQL
        setcookie('user', $donnees['user'], $timestamp_expire); // Usager du compte
        setcookie('proprio', $donnees['proprio'], $timestamp_expire); // Pseudo du compte
		}
        header("Location: ./cellier/index.php");
		$message = "<b>ca fonctionne mais pas de redirection</b>";
    }
    else
    {	
	$message = "<b>Erreur d'authentification<br>S.V.P. Ré-essayer</b>";
	}
}
else
{
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
	<title>DVD.auclairp.com</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<meta name="author" content="Pierre-Alexandre Auclair">
	<link rel="StyleSheet" type="text/css" href="index-home.css">
</head>
<body>
<div id="en_tete">
</div>



<form method="post" action="index.php">
  <legend><font color="#990000">Connection</font></legend>
  <table align="center" border="0" width="400" class="resultat">
  	<tr>
	  <td class="resultat" colspan="3"><?php echo ($message); ?></td>
	</tr>
    
    <tr>
      <td class="resultat"><input type="image" src="images/login.jpg" name="connec_cellier" value="Entrer"></td>
      <td class="resultat"><input type="text" name="pseudo" class="loginbox" value=""></td>
      <td class="resultat"><input type="password" name="passe" class="loginbox" value=""></td>
    </tr>
    <tr>
      <td class="resultat"><A HREF="#" onClick="window.open('passoublier.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=0, copyhistory=0, menuBar=0, width=575, height=300');return(false)"><img src="images/oublier.jpg" border="0" width="67" height="14" alt=""></A></td>
      <td class="resultat">Nom d'usager</td>
      <td class="resultat">Mot de passe</td>
    </tr>
	<tr>
      <td class="resultat"><A HREF="#" onClick="window.open('cellier/listedesvin_nologin.php?order=nom','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=0, copyhistory=0, menuBar=0, width=800, height=600');return(false)"><img src="images/liste.jpg" border="0" ></A></td>
      <td class="resultat"></td>
      <td class="resultat"></td>
    </tr>
  </table>
</form>


<div id="pied_de_page">
<?
include("pied.php");
?>
</div> 
</body>
</html>
J'ai même changer ma redirection pour :
<? header("Location: http://www.yahoo.com"); ?>

et ca ne fonctionne pas.

merci
Ce n'est pas toujours facile d'essayer, mais c'est toujours vallorisant lorsqu'on y arrive !!!

Apprenez, ne le faite pas faire par les autres.

Eléphant du PHP | 445 Messages

14 janv. 2007, 05:56

Bonjour,

Et comme ceci ?
<?php
session_start();

if (isset($_POST['connec_cellier']))
{
    require_once("connec.php");
    $pseudo = $_POST['pseudo'];
    $passe = $_POST['passe'];

    $existe = "SELECT * FROM membres WHERE pseudo='". $pseudo ."' AND passe='". $passe ."'";
    $existence = mysql_query($existe);
    if(mysql_num_rows($existence) == 1)
    {
    while ($donnees = mysql_fetch_array($existence) )
        {
           $timestamp_expire = time() + 365*24*3600; // Le cookie expirera dans un an
        setcookie('connec', $donnees['connec'], $timestamp_expire); // Info de connection MySQL
        setcookie('user', $donnees['user'], $timestamp_expire); // Usager du compte
        setcookie('proprio', $donnees['proprio'], $timestamp_expire); // Pseudo du compte
        }
        header("Location: ./cellier/index.php");
        $message = "<b>ca fonctionne mais pas de redirection</b>";
    }
    else
    {    
    $message = "<b>Erreur d'authentification<br>S.V.P. Ré-essayer</b>";
    }
}
else
{
}
?>
En effet, tu envoie quelque chose au navigateur avant ta fonction header(); c'est peut-être la cause de ton problème :
<?php session_start(); ?>
 
<? ...
LLDC
Ulti

Eléphant du PHP | 333 Messages

14 janv. 2007, 06:43

a vrais dire je n'y comprend rien, j'ai essayer sur un autre pc et ca fonctionne, peut être le cache à vider, mais merci tout d emême de la suggestion
Ce n'est pas toujours facile d'essayer, mais c'est toujours vallorisant lorsqu'on y arrive !!!

Apprenez, ne le faite pas faire par les autres.