Redirection non fonctionnelle

Signaler
Messages postés
5
Date d'inscription
dimanche 13 septembre 2009
Statut
Membre
Dernière intervention
29 juin 2010
-
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Je souhaite réalisé pour un site des blogs disponibles sur chaque page des membres ( un par utilisateur).

J'ai codé la partie administration, qui permettra aux utilisateurs de se logguer, mais si tout s'affiche correctement quand je m'y rend, la redirection vers la page d'ajout d'article ne fonctionne pas, et je ne sais pas du tout ou ça coince, puisqu'aucune erreur ne s'affiche.

Pourriez-vous m'aider s'il vous plait ?

Je vous mets le code, la partie html étant très basique, je compte faire quelque chose de plus jolie une fois que le php fonctionnnera


<?php ob_start(); ?>
<?php session_start(); ?>
<?php include ("header.php") ?>



<form method="post" name="users" action="">
Pseudo : 

Mot de passe : 


</form>



<?php
//connexion a la DB
$serveur = 'sql5.power-heberg.net';
$user = 'lecrisilenci2';
$pass = 'klebsiella72';
$bdd = 'lecrisilenci2';
$connect= mysql_connect($serveur ,$user ,$pass) or die('Une erreur a eu lieu lors de la connection mysql');
mysql_select_db($bdd ,$connect) or die ('Un erreur a eu lieu lors du choix de la base de données');



//definition des variables qu'on envoie sur la base de données
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])) ;
$password = mysql_real_escape_string(htmlspecialchars($_POST['password'])) ;
$passhash=sha1($password);


//verifier utilisateur présent dans la DB


if (isset($_POST['pseudo']) AND isset($_POST['password'])
    AND !empty($_POST['pseudo']) AND !empty($_POST['password']))
     {

   
                $sql = "SELECT * FROM `users` WHERE pseudo='$pseudo' AND passhash='$passhash' AND etat = 1";
                $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
                $data = mysql_fetch_array($req);
                if ( $data[0]==1)
                {
     


$_SESSION['pseudo'] = $_POST['pseudo'] ;


 $_SESSION['pseudo'] = $_POST['pseudo'] ;
header('Location: ecrirearticle2.php');




                } 
                else
                { 
                $erreur = 'pseudo ou mot de passe incorret'; 
                }


    }
    else   
    {
    $erreur = 'champ vide';
    }
?>

<?php include ("footer.php") ?>


<?php ob_end_flush(); ?>

5 réponses

Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
Bonjour

header('Location: ecrirearticle2.php');
l'utilisation de header doit se faire avant tout envoi de donnée vers le navigateur (source : ici)

bonne après midi
Messages postés
5
Date d'inscription
dimanche 13 septembre 2009
Statut
Membre
Dernière intervention
29 juin 2010

Il me sembalit pourtant que c'etait pour cela qu'on avait <?php ob_start(); ?> au tout debut du fichier et
<?php ob_end_flush(); ?> à la toute fin...

non ?
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
si tu enlèves ob_start() et on_end_flush, un message d'erreur te sera retourné lors de l'exécution du header(....)

si tu gardes ton code, tel quel, tente de remplacer le header('Location: ecrirearticle2.php');
par :
ob_end_clean();
header('Location: ecrirearticle2.php');
exit();
Messages postés
5
Date d'inscription
dimanche 13 septembre 2009
Statut
Membre
Dernière intervention
29 juin 2010

toujours aucune redirection ...
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Question con : es tu seulement certain d'entrer dans les conditions ?
Tu devrais mettre des echo un peu partout pour t'en assurer.

... par ailleurs tu ne sembles afficher nul part la variable $erreur (??)


Cordialement,



Kohntark -