Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/04/2008, à 17:00

tekman54000

[RESOLU A LA BARBARE...]php de ****** qui m'empeche de dormir :)

Salut a tous, j'ai un vrai dilemne la...
Je suis en train de faire un zoli site php pour administrer mon serveur ftp (via proftpd et MySQL), et aussi pour que mes utilisateurs puissent faire des recherches de fichiers sur celui ci ...
Le probleme.................c'est que je galere avec les $_SESSION qui ..... ne se mettent pas a jour....
Voici les fichiers de code :
index.php :

<?php
session_start(); // On démarre la session AVANT toute chose
function connexion(){
	mb_http_output('UTF-8');
	$con = mysql_connect("localhost","prout","reprout");
	mysql_select_db("proftpd",$con);
	if (!$con){
		$_SESSION['ERREUR'] = "Connexion au serveur localhost impossible\n";
		exit;
	}
	return $con;
}
function deconnexion($conn){
	mysql_close($conn);
}
 
// On s'amuse à créer quelques variables de session :
$_SESSION['login'] = '';
$_SESSION['mdp'] = '';
$_SESSION['logged'] = "index";
 
// Maintenant que le session_start est fait, on peut taper du code HTML
?>
<!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>Gestion de votre accès ftp</title>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	   <link href="CSS/format.css" rel="stylesheet" type="text/css" />
	   <script type="text/javascript">
	//blalblalalqd....
</script>
   </head>
   <body>
		<div id="en_tete">
			<?php include('php_files/en_tete.php'); ?>
		</div>	
   	<div id="menu">        
   		<?php
   			switch ($_SESSION['logged']){
   			case "logged_successfully":
   			include('php_files/menu_logged.php');
   			break;
   			default:
   			include('php_files/menu.php');
   			}
   		?>     
       </div>
		<div id="corps">
		   <h1><?php 
			switch ($page){
			case "connexion":
			include('php_files/connexion.php');
			break;			
			case "cible_connexion":
			include('php_files/cible_connexion.php');
			break;
			case "inscription":
			include('php_files/inscription.php');
			break;
			case "cible_inscription":
			include('php_files/cible_inscription.php');
			break;
			default:			   
		   include('php_files/corps.php');
		   }
		   ?></h1>
		</div>
		<div id="logo">		
		</div>
		<div id="pied_de_page">
		   <p><a href="mailto:prout@gmail.com?subject=Contact au sujet du site FTP">Contacter webmaster</a> site mis en ligne le 11/04/2008 en cours de construction</p>
		</div>
   </body>
</html>

Donc pour resumer je fais un test de la variable : $_SESSION['logged'] pour voir si un utilisateur s'est loggé correctement....
Voici le fichier qui verifie les logins et qui marche a la perfections suite a des echo un peu partout :
/php_files/cible_connexion.php

<?php
if (isset($_POST['login']) AND isset($_POST['mdp'])) // Si les variables existent
{
    if ($_POST['login'] != NULL AND $_POST['mdp'] != NULL) // Si on a quelque chose à enregistrer
    {    
		$_SESSION['login'] = $_POST['login'];
		$_SESSION['mdp'] = $_POST['mdp'];
		if (isset($_SESSION['login'])){//test des affectations des variables superglobales
			if (isset($_SESSION['mdp'])){
				//Requete sur la BD: 
				connexion();
				$pass = crypt($_SESSION['mdp'],'10');
				$query = "SELECT userid, passwd, DATE_FORMAT(accessed,'%W %d %M %Y à %hh:%imin') as accessed, DATE_FORMAT(modified,'%W %d %M %Y à %hh:%imin') as modified, email, LoginAllowed, idgroup FROM proftpd.ftpuser WHERE userid = '".$_SESSION['login']."' AND passwd='".$pass."'";
				$res = mysql_query($query);
				while ($row=mysql_fetch_array($res)){
					if($row['passwd']==$pass){
						if($row['LoginAllowed']==true){
							//$_SESSION['pass']=$pass;
							//$timestamp="%d";
							$_SESSION['derlogin']= $row['accessed'];
							$_SESSION['dermod']=$row['modified'];
							$_SESSION['mailutil']= $row['email'];
							$_SESSION['idgrp']=$row['idgroup'];
						}
						else {
							$ERREUR="Compte en cours de validation par l'administrateur...";
							include "./erreur.php";
							
						}
					}
				}			
				//deconnexion($con);
				$_SESSION['logged'] = "logged_successfully";
				echo "<h1><br>Bonjour ".$_SESSION['login']."</h1>";
				echo "<h5><br>Dernier login : ".$_SESSION['derlogin']."</h5>";
				echo "<h5><br>Dernier Upload : ".$_SESSION['dermod']."</h5>";
				echo "<h5><br>E-M@il de contact : ".$_SESSION['mailutil']."</h5>";
			}
		}
	}
	else { //Cas d'erreur si un des champs n'est pas remplis
		echo "<h1>Erreur</h1>";
		echo "<h5>Le login et le mot de passe ne peuvent etre vide...</h5>";
	}
}
?>

Donc toujours en résumant, la j'ai bien ma valeur de $_SESSION['logged'] qui est bien mise a jour en fonction de ce que renvoie la reponse mysql...
Cependant mon menu ne change pas ....car la valeur de $_SESSION['logged'] dans le fichier index.php (le premier) ne change pas... Je me retrouve donc avec un $_SESSION['logged'] qui prend 2 valeurs differentes??!!!

Je ne comprends plus rien, si une âme charitable se sent partante pour m'aider cela serait vraiment sans refus!!!

merci par avance.

Dernière modification par tekman54000 (Le 15/04/2008, à 20:24)


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#2 Le 15/04/2008, à 17:31

mutah

Re : [RESOLU A LA BARBARE...]php de ****** qui m'empeche de dormir :)

Salut

où est le session_start() dans /php_files/cible_connexion.php ?


Ce n'est pas le chemin qui est difficile, c'est le difficile qui est chemin.

Hors ligne

#3 Le 15/04/2008, à 17:33

tekman54000

Re : [RESOLU A LA BARBARE...]php de ****** qui m'empeche de dormir :)

il n'y en a pas vu que c'est un include a moins que je me trompe... mais le session_start() n'est necessaire uniquement au debut de chaque fichier php "propre" non?


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne

#4 Le 15/04/2008, à 20:24

tekman54000

Re : [RESOLU A LA BARBARE...]php de ****** qui m'empeche de dormir :)

Probleme resolu grace a l'utilisation des fonction set et unset beaucoup plus simple et plus efficace. Par contre ne pas oublier de rafraichir le site ensuite...
Voila desolé pour le derangement smile et merci a ceux qui on participé a ce thread


------------------------------------------------------------------------------------------------
"The day Microsoft makes something that doesn’t suck is probably the day they start making vacuum cleaners"  Ernst Jan Plugge
------------------------------------------------------------------------------------------------

Hors ligne