Probleme redirection php

Fermé
gislaino Messages postés 4 Date d'inscription vendredi 6 septembre 2013 Statut Membre Dernière intervention 27 décembre 2014 - 2 oct. 2014 à 19:59
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 3 oct. 2014 à 11:35
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
A voir également:

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
3 oct. 2014 à 11:35
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
2 oct. 2014 à 20:14
bonjour,

C'est sans doute le chemin de administration.php chez l'hébergeur : )
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
Modifié par mpmp93 le 3/10/2014 à 09:40
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