8792 sujets

Développement web côté serveur, CMS

Bonsoir à tous.
Voilà mon problème.

Je veux passer des variables globales entre les différentes pages php. Je pense que les variables $_SESSION[‘’] puissent faire l’affaire.

Je mets alors en tête de mon http://www.transcon.info/indexTest.php
<?
session_start();
include "php/functions.php";
$_SESSION['nickName']="variableSession";
?>

Je le test de suite sur http://www.transcon.info/test.php
qui possède le code

<?
session_start();
echo $_SESSION['nickName']." testString";
?>

Jusqu’à là tout va bien la variable s’affiche avec le " testString" qui suit derrière.
Tout se dégrade dès que je change le répertoire http://www.transcon.info/php/test.php
la $_SESSION['nickName'] disparaisse seul commentaire " testString" qui s’affiche.

Même chose pour http://www.transcon.info/js/test.php ..................

Voici mon http://transcon.info/phpinfo.php
Session Support = enabled

Merci pour votre aide.
Salut lamachine !

je ne sais pas si tu as réglé ton problème mais le fait de changer de répertoire n'a pas d'incidence sur les variables de sessions. Par exemple :

page1.php (répertoire racine)

<?php
session_start();
$_SESSION['test']='abcd';
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Page appelante</title>
</head>
<body>
<a href="test/page2.php">test</a>
</body>
</html>


page2.php (répertoire test)

<?php
session_start();
$test = $_SESSION['test'];
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Page appelée</title>
</head>
<body>
<?php
echo $test;
?>
</body>
</html>

Le clic sur le lien test devrait afficher 'abcd'.

Le problème avec les variables de sessions c'est quand le navigateur de ton visiteur n'accepte pas les cookies Smiley decu


Dans ce cas 2 options :

soit le paramètre de php.ini "session.use_trans_sid" est à On (ce qui n'est pas ton cas...) et alors chacun des liens est automatiquement transformé pour renseigner automatiquement la variable PHPSESSID (qui est l'identifiant de la session)
soit le paramètre de php.ini "session.use_trans_sid" est à Off et alors il faut rajouter toi même cette variable dans les liens :
Par exemple :

<a href="test/page2.php<?php if (strlen(SID)) {echo '?'.strip_tags(SID);} ?>">test</a>
ou si tu as déjà des variables passées en GET :
<a href="test/page2.php?var1=aaa<?php if (strlen(SID)) {echo '&'.strip_tags(SID);} ?>">test</a>

Donc pour conclure, si tu veux être sûr de pouvoir utiliser des variables de session il faut que tes liens soient sous la forme :
<a href="test/page2.php<?php if (strlen(SID)) {echo '?'.strip_tags(SID);} ?>">test</a>

Ce qui me fait te dire que si tu n'as qu'1 ou 2 variables à transmettre tu as aussi vite fait de les passer sous la forme :
<a href="test/page2.php?var1=aaa&var2=bbb">test</a>


@+