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 :
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
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.
Modifié par tekman54000 (15 Apr 2008 - 20:23)
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.
Modifié par tekman54000 (15 Apr 2008 - 20:23)