Probleme redirection php

gislaino Messages postés 4 Statut Membre -  
Pitet Messages postés 2845 Statut Membre -
Bonjour, la communauté, je sais pouvoir compter sur votre aide. Ce script doit servir à se connecter et être redirigé. Si, les informations sont bonnes on est redirigé vers la page d'administration sinon on a un message d'erreur.
Ce script fonctionne très bien en local, mais une fois mis en ligne, la redirection ne fonctionne plus

<?php
    if(isset($_POST['connecter'])){
	    if($login!='' and $password!=""){
		   $objs_user=new Users();
		   $objs_user->setLogin($login);
		   $objs_user->setPass_md5($password);
		 $nbre= $objs_user->connecter_users($login,$password);
		 $conn= $objs_user->rechercher_user();
		 $monresultat=$conn->fetchObject();
		     if($nbre!=0){
			    $_SESSION['usersname']=$monresultat->usersname;
				$sessionuser=$_SESSION['usersname'];
				header("Location: administration.php");
				exit();
			 }
			 else{
			    echo '<div id="msg">Nom utilisateur ou mot de passe incorrect</div>';
			 }
		}
		if($login!='' and $password==""){
		   echo '<div id="msg">mot de passe non renseigné</div>';
		}
		if($login=='' and $password!=""){
		   echo '<div id="msg">nom utilisateur non renseigné</div>';
		}
		if($login=='' and $password==""){
		   echo '<div id="msg">nom utilisateur non renseigné</div>';
		}
	}
?>


Merci d'avance pour votre aide

3 réponses

Pitet Messages postés 2845 Statut Membre 527
 
Salut,

@mpmp39 : si la vérification de la variable se session est bien effectuée sur le fichier adminitration.php, la redirection n'est pas moins sécurisé et l'include n'est pas forcément nécessaire.

La redirection ne fonctionne plus, c'est à dire ?
- erreur 404 Not Found ?
- pas de changement d'url ?
- une erreur php ?


L'erreur vient peut-être d'un affichage inattendu avant l'appel de la fonction header :
- une ligne blanche en haut du fichier
- une notice/warning php avec display_errors sur On
- un fichier encodé en utf8 avec BOM (au lieu de sans BOM)
- ...

En local l'erreur est surement contourné dû au fait que la directive output_buffering soit activée.
2
Utilisateur anonyme
 
bonjour,

C'est sans doute le chemin de administration.php chez l'hébergeur : )
0
mpmp93 Messages postés 7217 Statut Membre 1 340
 
Bonjour,

Vous faites:
header("Location: administration.php");


C'est une erreur. Votre script administration.php n'a pas de sécurité.

Car, que se passe-t-il si un visiteur appelle directement administration.php?

Remplacez par:
include "administration.php"; 


et en tête de administration.php vérifiez si la variable de session $_SESSION['usersname'] est bien remplie.

Cdlt


Le présent est un fragment d'éternité coincé entre le passé et le futur
0