Sessions et pseudo frames

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Sessions et pseudo frames

par JOHAAANNS » 16 févr. 2006, 00:34

C bon j'ai trouvé... j'ai fait une grosse "@*##" car pour le forum j'utilise la variable $login je ne peux avoir 2 valeurs differentes dans une variable.

Encore merci pour ton temps

par JOHAAANNS » 16 févr. 2006, 00:14

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 !!!

par Cyrano » 15 févr. 2006, 22:51

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']);

par JOHAAANNS » 15 févr. 2006, 22:44

Heu oui :shock: !!!mais que faudrait il faire ???

par Cyrano » 15 févr. 2006, 22:41

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.

par JOHAAANNS » 15 févr. 2006, 22:36

oui c'est exactement ca !! qu'en penses tu ?

par Cyrano » 15 févr. 2006, 22:10

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

par JOHAAANNS » 15 févr. 2006, 22:04

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...?

par Cyrano » 15 févr. 2006, 21:56

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é.

par JOHAAANNS » 15 févr. 2006, 21:31

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 ??

par JOHAAANNS » 15 févr. 2006, 21:14

'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é

par Cyrano » 15 févr. 2006, 21:02

Sur free.fr, tu as créé un répertoire "session" ou "sessions"

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

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:

par jherrgot » 12 janv. 2006, 21:35

Merci
Justement c'était pour éviter les erreurs que je demande le site étant deja en ligne :wink:

@+

JM

par Truc » 12 janv. 2006, 21:33

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: