Fautes de redirection en PHP

Résolu
maitre-gohan -  
 maitre-gohan -
Bonjour tout le monde,

J'ai un problème avec mon code PHP, lors de ma connexion, je fais une redirection si la connexion est bonne. Seulement voilà, ma redirection ne marche pas... je n'est aucune erreur, et j'ai également fais des écho partout, et il s'affiche...

Je mets mon code PHP si sa peux vous aidé ...

session_start();
require("../identifiant/bdd.php");
if(!empty($_SESSION['pseudo'])){
header("location : ../index.php");
}
if(!empty($_POST['connexion'])){
extract($_POST);
$erreur = array();

$verif = true;
if(empty($pseudo) && strlen($pseudo) < 6 ){
$verif = false;
$erreur[] = "Le pseudo est vide ou invalide";
}
$verif1 = true;
if(empty($pass) && strlen($pass) < 6 ){
$verif1 = false;
$erreur[] = "Le mot de passe est vide ou incorect";
}
if($erreur == NULL){
$salt = "2a36bd5196";
$pass = sha1($salt . $pass);
$requete = $bdd->query("SELECT * FROM membre WHERE pseudo = '" . $pseudo . "'");
$reponse = $requete->fetch();
if($pass == $reponse['pass']){
$_SESSION['active'] = true;
$_SESSION['pseudo'] = $pseudo;
header("location :../index.php");
}
}
else{
foreach($erreur as $affiche){
echo $affiche;
}
}
}
?>

Si quelqu'un c'est d'ou viens mon problème ^^ .

Merci.

Cordialement.

Edit : Je viens d'essay" dans un dossier totalement vide, j'ai juste placer header("location :../index.php"); et ben... rien du tout, aucune redirection, page blanche O_o..

9 réponses

Apatik Messages postés 5304 Date d'inscription   Statut Contributeur Dernière intervention   782
 
Tiens, refait les deux fichiers comme dis plus haut et colle ça dans le premier index. (Fait bien un copier/coller, recopie pas à la main)
<code><?php 
  header("location:index2.php");  
?> 
<html><body><p>Pas de redirection</p></body></html>
</code>
1
Apatik Messages postés 5304 Date d'inscription   Statut Contributeur Dernière intervention   782
 
Bonjour,

Si je saisis bien, on a que la partie "après traitement" de la connexion là c'est ça?

Si on a créé une variable de session, on rebalance sur l'index, sinon on fait les tests et on connecte?

Déjà tes tests m'ont l'air foireux:
if(empty($pseudo) && strlen($pseudo) < 6 )

Si $pseudo est vide ET $pseudo compte moins de 6 caractères.

Ca devrait pas être un OU ?

Sinon, est-ce que tu as du HTML avant ce code?
La fonction "header" doit être placé avant tout HTML.
Live free, learn free, help free, Happy Hacking!
Plus que tout en informatique, l'erreur est humaine.
0
maitre-gohan
 
Merci pour ta réponse, en effet, mes condition sont foireuse :D, je vais les modifier tout de suite, de plus je n'est aucun code, avant le code PHP... j'ai également editer mon premier post, j'ai fais un test sur une page vierge de faire une redirection, mais rien ne se passe...

Cordialement Maitre-gohan
0
Apatik Messages postés 5304 Date d'inscription   Statut Contributeur Dernière intervention   782
 
Bon, bein ça veux dire que j'ai pas tout perdu ^^.

Ton fichier, c'est l'index.php? Essaie ça comme code:
<?php
  header("location :index2.php"); 
?>
<html><body><p>Pas de redirection</p></body></html>

et tu fais un index2.php avec
<html><body><p>Redirection ok</p></body></html>


J'ai un doute sur l'adresse de redirection en fait...
0

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

Posez votre question
maitre-gohan
 
Je viens d'éssayé, j'ai mis les deux fichiers dans le même dossier, et sa me marque, pas de redirection...
0
Apatik Messages postés 5304 Date d'inscription   Statut Contributeur Dernière intervention   782
 
Quel navigateur? Il bloquerai pas les redirections par hasard?
Sinon, Php autorise la fonction header? (je cherche où trouver ça desuite)
0
maitre-gohan
 
J'ai déjà tester sous chrome, sous IE, et sous FF....
0
Apatik Messages postés 5304 Date d'inscription   Statut Contributeur Dernière intervention   782
 
Ok, donc déjà t'as un bug de IE 5.5 qui ne prend pas cette redirection. Mais c'est pas ça. J'ai vu un sujet où un type ne pouvait pas faire cette redirection à cause de la configuration du serveur qu'il louait. T'es en local?
Je cherche qu'est-ce qu'il faut modifier pour bloquer ou non l'accès à la modif des header de PHP si jamais tu tourne en local.
Serveur Apache je présume?
0
maitre-gohan
 
Tout a fais ^^ , je suis en local, serveur apache...
0
maitre-gohan
 
Sa marche, j'ai éssayé avec ton code, et je l'ai comparer au mien, c'est juste parce que j'avais des espace dans le header ...

Merci beaucoup.

Cordialement
0
Apatik Messages postés 5304 Date d'inscription   Statut Contributeur Dernière intervention   782
 
Exact, en fait c'était un bête problème de synthaxe:

Les headers ne doivent contenir strictement aucun espace.

Bon courage pour la suite =)
0
maitre-gohan
 
Merci ^^ ... Je ne savais pas ca ^^
0