sessions qui existe mais ne fonctionne pas

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 qui existe mais ne fonctionne pas

par sadeq » 05 déc. 2006, 12:28

Moi j'écrirais le code autrement, sans trop de variables ni de session_destroy() :
<?php 
session_start(); 
?> 
<html> 
<head> 
<title></title> 
</head> 
<body> 
<div> 
<form enctype="multipart/form-data" method="post" name="identform" action="verif.php" /> 
<p>login <input type="text" class="field" name="veriflogin" value="" title="login" /></p> 
<p>password <input type="password" class="field" name="verifpass" value="" title="password" /></p> 
<p><input type="submit" name="connect" value="connect" title="connect" /></p> 
</form> 
</div> 
</body> 
</html> 

page verif.php (traite l'info et enregistre la session)
<?php 
session_start(); 

require_once 'inc/connect.inc.php'; 
require_once 'inc/mysqlConnector.class.php'; 
require_once 'inc/function.inc.php'; 

// ici récuperation de data ... 

$_SESSION['tabses']  = array(); 
$_SESSION['tabses'] ['id_user'] = $row['id_user']; 
$_SESSION['tabses'] ['login'] = $veriflogin; 
$_SESSION['tabses'] ['nom'] = $row['nom']; 
$_SESSION['tabses'] ['prenom'] = $row['prenom']; 
$_SESSION['tabses'] ['initial'] = $row['initial']; 
$_SESSION['tabses'] ['id_groupe'] = $row['id_groupe']; 
$_SESSION['tabses'] ['groupe'] = $row['groupe']; 
$_SESSION['tabses'] ['siege'] = $row['siege']; 


header( 'location:home.php' ); 

home.php
<?php 
session_start(); 

//test si tabses est rempli dans la session
print_r($_SESSION['tabses']); 

?>

par zbang » 22 nov. 2006, 11:14

merci pour ton aide Ajoloca, mais je n'ai malheureusement plus le temps de chercher, je dois me resoudre à le faire tourner avec un wamp (ce que je viens d'installer)

ça tourne c'est le principal :(

encore merci!

par Ajoloca » 21 nov. 2006, 18:42

Je ne vois pas de différences sauf pour certaines valeurs mais qui me semblent plus "système-dépendent" ton XP doit être sur un 32bit et ton 2000 sur un 64. Si c'est pas le cas le 2000 a son comportement.

par zbang » 21 nov. 2006, 18:32

ok, j'ai créé un compte c'est plus simple :-)

par Invité » 21 nov. 2006, 18:29

elle est sensiblement différente

- Registered save handlers: files user pour 2000 et files user sqlite pour xp
- session.bug_compat_42: Off pour 2000 et On pour xp
- session.gc_divisor: 1000 pour 2000 et 100 pour xp
- session.hash_bits_per_character: 5 pour 2000 et 4 pour xp
- session.save_path : d:/apache/sessions pour 2000 et C:/Program Files/wamp/tmp pour xp

la totale ci-dessous


celle du serveur qui fonctionne :

Code : Tout sélectionner

session Session Support enabled Registered save handlers files user sqlite Registered serializer handlers php php_binary wddx Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 On On session.bug_compat_warn On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 100 100 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.hash_bits_per_character 4 4 session.hash_function 0 0 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path C:/Program Files/wamp/tmp C:/Program Files/wamp/tmp session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid 0 0
et celle du serveur 2000

Code : Tout sélectionner

session Session Support enabled Registered save handlers files user Registered serializer handlers php php_binary wddx Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 Off Off session.bug_compat_warn On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 1000 1000 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.hash_bits_per_character 5 5 session.hash_function 0 0 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path d:/apache/sessions d:/apache/sessions session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid 0 0

par Ajoloca » 21 nov. 2006, 18:19

Bien,

Dans le résultat de phpinfo() il y a une section SESSION (en minus)

Regarde-la bien des deux cotés et note les differences.

par Invité » 21 nov. 2006, 18:14

merci :)
Les scripts qui te posent problème fonctionnent ailleurs.
oui
1 - Le système, c'est le même ?
non ça tourne sur un xp et ça ne tourne pas sous un 2000 server
2 - Si oui, les versions des produits sont les mêmes ?
sur l'xp il y a un wamp qui tourne avec APACHE 2.0.58, PHP 5.1.4 and PECL, MYSQL 5.0.22 PHPMYADMIN 2.8.1, SQLITEMANAGER 1.2.0
sur le serveur 2000 : install à la main
apache_2.0.58, php-5.1.4 et mysql-4.1.20
3 - Si oui, as-tu accès aux deux ?
oui totalement
4 - Si oui, as-tu fait une comparaison entre les deux configs (phpinfo()) ?
oui et elle n'est pas identique :-\

par Ajoloca » 21 nov. 2006, 18:05

Je ne suis pas sur qu'une réinstal s'impose.
On vas commencer par le commencement.
Les scripts qui te posent problème fonctionnent ailleurs.
1 - Le système, c'est le même ?
2 - Si oui, les versions des produits sont les mêmes ?
3 - Si oui, as-tu accès aux deux ?
4 - Si oui, as-tu fait une comparaison entre les deux configs (phpinfo()) ?

par Invité » 21 nov. 2006, 17:58

non ça ne change rien

... au pire, il faut que je ré-install quoi? plutôt apache ou php?

par Ajoloca » 21 nov. 2006, 17:33

Re,

En effet, c'est biz... ça.

A ma connaissance 'tabses' n'est pas un mot réservé. Mais par curiosité 2 choses.
1 - Vérifie que tu n'as pas d'espaces (ou caractères louches) entre les ' de $_SESSION['tabses'].
2 - change le nom de ta variabe session exp. 't_session'.

Je ne suis pas sur que ça change grande chose mais...

par Invité » 21 nov. 2006, 17:26

autre chose étrange : une fois serialisé et donc visible en partie dans le fichier de cession, le nom tabses n'y est plus indiqué, alors que sur l'autre serveur, le fichier de cession commence par tabses|



:( je nage

par Invité » 21 nov. 2006, 16:57

ok,

quand je dump $tabses avant de le serialize() tout est dedans

et une fois que je le dump à la sortie, après unserialize() il me donne bool(false)

note: mon fichier cession est incomplet (comme corrompu) il manque la moitier des éléments du tableau

par Ajoloca » 21 nov. 2006, 16:49

Re,

Fais un var_dump($tabses) avant l'affectation de la session.

par Invité » 21 nov. 2006, 16:47

Autant pour moi!!!

ça ne marche tjs pas mais mon fichier de cession n'est plus vide --> il est incomplet maintenant

par Invité » 21 nov. 2006, 16:28

ça ne marche pas ... à mon avis le problème n'est pas dans le code --> mes fichiers de cession sont bien crée mais vide, il contiennent juste le nom de la variable