Page 1 sur 2

Sessions et pseudo frames

Posté : 12 janv. 2006, 21:28
par jherrgot
Salut a tous !

Sur un site construit en pseudo frames, faut-il déclarer le session_start() sur toutes les pages du site ou juste sur la page index puisque c'est sur elle que toutes la pages s'affichent ????

Merci de vos réponses

Jeanmi

Posté : 12 janv. 2006, 21:33
par Truc
Salut,
Les pages qui sont inclus sont considérées comme appartenant à la page courante il suffit donc de déclarer un session_start() sur l'index.

si tu redéclare un début de session sur la même page tu aurais une erreur... en testant tu te serais vite rendu compte par toi même :wink:

Posté : 12 janv. 2006, 21:35
par jherrgot
Merci
Justement c'était pour éviter les erreurs que je demande le site étant deja en ligne :wink:

@+

JM

Posté : 15 févr. 2006, 21:00
par JOHAAANNS
Bonjour,

Je fais un site en pseudo frame...
En local j'arrive a me connecté facilement et ne se deconnecte pas..

J'ai uploader mon site chez free...(en y mettant le dossier 'session')
Il m'est impossible de me connecter....

Ou et je ne sais pas pourquoi quand j'y arrive au bout de qq page je n'ai plus rien...le login du membre ne s'affiche plus !!


J'ai pourtant bien session_start(); tout en haut de ma page index..
Je ne comprend plus rien !!
Merci de m'aider :shock:

Posté : 15 févr. 2006, 21:02
par Cyrano
Sur free.fr, tu as créé un répertoire "session" ou "sessions"

Posté : 15 févr. 2006, 21:14
par JOHAAANNS
'sessions' .. mais je ne pense pas que le probleme vient de la. Car chez 'levillage.org' ca me fait exactement la meme chose..
J'ai 2 sites... le premier fonctionne correctement et j'utilise les templates Dreamweaver...et ca marche...
Preferant utiliser les pseudos frames j'ai tout changer...
Mais quand je me connecte au bout de qq clics je suis deconnecté

Posté : 15 févr. 2006, 21:31
par JOHAAANNS
on peut voir le resultat la :
http://johaaanns.free.fr
Login : essai Mot de passe : essai
Cliquez 3 fois par exemple sur forum et au bout de la 3eme fois la session disparait ??

Posté : 15 févr. 2006, 21:56
par Cyrano
Je viens de faire l'essai et il a fallu que je clique sur [Déconnecter] pour fermer la session, même en cliquant dix fois sur [Forum] ou encore en navigant entre [Forum] et [Accueil] plusieurs fois de suite, ça reste la même session et je ne suis pas déconnecté.

Posté : 15 févr. 2006, 22:04
par JOHAAANNS
C'est curieux je viens de refaire l'essai avec firefox et IE au bout de 3 cliques sur [forum] en dessous de bienvenue le login disparait...?

Posté : 15 févr. 2006, 22:10
par Cyrano
Ok, j'avais pas vu la disparition du pseudo, mais la session est toujours active puisque le bouton de déconnexion est toujours présent, sinon, le formulaire d'identification reprendrait sa place... :-k

Posté : 15 févr. 2006, 22:36
par JOHAAANNS
oui c'est exactement ca !! qu'en penses tu ?

Posté : 15 févr. 2006, 22:41
par Cyrano
J'en pense que tu dois avoir une variable qui n'est alimentée que lors de la validation du formulaire d'identification : une fois qu'on recharge la page ou qu'on change de page, la variable n'a plus de valeur: il faudrait que le pseudo soit en variable de session.

Posté : 15 févr. 2006, 22:44
par JOHAAANNS
Heu oui :shock: !!!mais que faudrait il faire ???

Posté : 15 févr. 2006, 22:51
par Cyrano
Je viens de te le dire: enregistre le pseudo en variable de session :
$_SESSION['pseudo'] = $pseudo;
Dans la partie validation d'identification: ensuite dans ton menu, remplace le :
echo($pseudo);
par
echo($_SESSION['pseudo']);

Posté : 16 févr. 2006, 00:14
par JOHAAANNS
le truc c'est que c'est ce que j'avais a la base et ca ne marche pas !!
voici ma page index :
<?php
session_start();

 include('connexion/connexion.php');
 include('template.php');
 include ('fonction.php');

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
......
Voici mo menu de gauche :
if (isset($_SESSION['login']))
{
$login = $_SESSION['login'];
$query_connexion = "SELECT * FROM membres WHERE login='".$login."'";
$connexion = mysql_query($query_connexion, $connect) or die(mysql_error());
$row_connexion = mysql_fetch_assoc($connexion);
$totalRows_connexion = mysql_num_rows($connexion);

.....

$template->assign_block_vars('connexion', array(
			  'ID' => $row_connexion['id'],
			  'BIENVENUE' => "Bienvenue",
			  'TXTRANG' => "Rang",
			  'TXTAVATAR' => "Avatar",
			  'TXTMEMBRE' => "Membre depuis le",
			  'TXTANNIF' => "Anniversaire",
			  'TXTGROUPE' => "Nom du groupe",
			  'LOGIN' => stripslashes($row_connexion['login']),
			  'AVATAR' =>  stripslashes($avatar),
			  'DATE_MEMBRE' => $row_connexion['date'],
			  'DATE_ANNIV' => $row_connexion['date_anniv'],
			  'NOM_GROUPE' => $groupe,
			  'TXT_NBMESSAGE' => $pluriel,
			  'NB_MESS'=> $row_connexion['nbre_message'],
			  'ALLMESS' => "Voir tous les messages",
			  'VOSCONTRIB' => "Vos contributions",
			  'PROFIL' => "Votre profil",
			  'DECO' => "Déconnection",
			  'AV_IMAGE' => $row_systeme_rangs['image'],
			  'AV_NIVEAU' => $row_systeme_rangs['niveaux']
			  ));
voici ma page login :
<?php 
include('connexion/connexion.php');
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
  extract($_POST);
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "SELECT pwd FROM membres WHERE login='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);

  if($data['pwd'] != md5($pass)) {
    header ("Location:index.php?page=bad_logg"); 
    exit;
  }
  else {
    session_start();
    $_SESSION['login'] = $login;
		//// Insertion d'une date et de l'adresse ip du membre en cours////
		if(isset($_SERVER["REMOTE_ADDR"])) 
				{ // Si on peut déterminer l'adresse IP
				$ip_en_cours = $_SERVER["REMOTE_ADDR"];
				}
				else 
				{ // sinon
				$ip_en_cours = "Non identifiable";
				}
		
			$an = date ("Y");
			$mois = date("m");
			$jour = date("d");
			$heure = date("Hi");
			$date = $an.$mois.$jour.$heure;
			$up_membres ="UPDATE membres SET date_derniere_cnx='$date',adresse_ip ='$ip_en_cours'
			 WHERE login='".$login."'";
			$req_up = mysql_query($up_membres) or 
			die('Erreur SQL !<br>'.$up_membres.'<br>'.mysql_error());

    header("Location:index.php");
    // ici vous pouvez afficher un lien pour renvoyer
    // vers la page d'accueil de votre espace membres
  }   
}
else {
  header ("Location:index.php?page=oubli_champs");
   exit;
}
	?>
Peut etre pourras tu y voir plus clair !!!