OVH Cloud OVH Cloud

Variables de Session

14 réponses
Avatar
Shewy80
Bonjour à tous.

J'ai un problème avec mes variables de session.
J'ai fait 3 pages bidon, qui envoie les variables de l'une à l'autre.

J'ai fait tester ces pages par un ami les fonctionnent bien.
Chez moi rien qui marche.

Pouvez vous m'aider ??
J'utilise EasyPHP.

voici le contenu de mes 3 pages :
session1.php >> session2.php >> session3.php

//-------------------------session1.php---------------------
<?php
session_start();

$_SESSION['host'] = 'localhost' ;
$_SESSION['pass'] = 'icilemotdepasse' ;
$_SESSION['db'] = 'baseas1' ;

echo "<br> Saisie de l'utilisateur : <br>";

echo "<form action='session2.php' method='post'>";
echo "<input type='' name='user' value='as1'>";
echo "<input type='submit' value='valider'>";
echo "</form>" ;

//Avec ce lien : ça marche ! mais j'en veux pas
//echo '<br /><a href="session2.php?' . SID . '">page 2</a>';

?>

//-------------------------session2.php---------------------
<?php
session_start();

$_SESSION['user']=$_POST['user'];

echo " <b><u> Données de connexion a Mysql : </u></b> <br>";

echo "host = {$_SESSION['host']} <br>\n ";
echo "user = {$_SESSION['user']} <br>\n ";
echo "pass = {$_SESSION['pass']} <br>\n ";
echo "db = {$_SESSION['db']} <br>\n ";

// connection à la DB NE PAS MODIFIER !
////////////////////////////////////////////////////////////////////////////
/////////////////
// $link = mysql_connect ($host,$user,$pass) or die ('Erreur :
'.mysql_error() ); ////
// mysql_select_db($db) or die ('Erreur :'.mysql_error());

echo "<a href='session3.php'><br>passer à la page suivante";

?>

//-------------------------session3.php---------------------
<?
session_start();

echo "host = {$_SESSION['host']} <br>\n ";
echo "user = {$_SESSION['user']} <br>\n ";
echo "pass = {$_SESSION['pass']} <br>\n ";
echo "db = {$_SESSION['db']} <br>\n ";

session_destroy();

?>

4 réponses

1 2
Avatar
Frederic Bouchery
Maintenant je te donne un exemple de construction classique : j'ai un
seul fichier "public", index.php, et je fais un switch selon la variable
$action
Beurk, le frontcontroler et de surcroît les switch, perso, j'en suis revenu.

:-)

Si cette convention de nommage te permet de te souvenir que ce sont des
fichiers "privés" (qui donc, sur le fond, devraient carrément être **en
dehors** de DOCUMENT_ROOT) alors n'hésite pas à l'utiliser.
Tout à fait d'accord avec le Monsieur !!


- y coller un .htacess <DENY FROM ALL> pour être peinard sous apache
Perso, je préfère :

<files ~ ".(inc|class).php$">
deny from all
</files>

ah, oui, j'vous avez pas dit : l'extension ".inc", c'est (pardonnez-moi)
du crétinisme avancé. Cette extension est le fruit du cerveau torturé
(mais logique dans ce cadre) des codeurs C/C++ mais n'a rien à faire
chez nous les zamidupéhachepés.
Le nombre d'applications où je peux voir des "config.inc", c'est
vraiment tendre le bâton pour se faire battre. Il suffit que la personne
n'utilise pas apache ou oublie de mettre un htaccess, et c'est la fin
des haricots.

Même si c'est un fichier de configuration où l'on ne fait que de la
déclaration de variables (par exemple pour la connexion au server sql,
ou autre), il n'est pas nécessaire d'utiliser une telle chose puisque la
déclaration de variable ne montre rien au client.
heu ... même si tu utilises bêtement l'extension ".inc" comme beaucoup ?



Fred.


Avatar
John GALLET
Re,

Même si c'est un fichier de configuration où l'on ne fait que de la
déclaration de variables (par exemple pour la connexion au server sql,
ou autre), il n'est pas nécessaire d'utiliser une telle chose puisque la
déclaration de variable ne montre rien au client.
heu ... même si tu utilises bêtement l'extension ".inc" comme beaucoup ?




Bonne remarque, mais...

Comme je parlais de tester if(!defined("MACONSTANTE")) exit();
malheureusement, si le code est en .inc, de toutes façons, comme tu le
dis, Séraphin des Halicots a encore frappé... Qu'on définisse ou qu'on
fasse, ça servira pas à grand chose dans le cas d'un appel http direct, ce
type de protections... D'un autre côté, on n'en a pas besoin, on n'exécute
rien (on montre tout son code à la terre entière mais il n'est pas
directement appelable).

a++;
JG



Avatar
Sebastian 'CrashandDie' Lauwers
Frederic Bouchery wrote:

Même si c'est un fichier de configuration où l'on ne fait que de la
déclaration de variables (par exemple pour la connexion au server sql,
ou autre), il n'est pas nécessaire d'utiliser une telle chose puisque la
déclaration de variable ne montre rien au client.



heu ... même si tu utilises bêtement l'extension ".inc" comme beaucoup ?


Vous avez déjà vu de la déclaration de variables dans un fichier texte?

J'ai la mauvaise habitude d'être hautain, et de me dire que je ne suis
pas bête à ce point, en tout cas, évitez de prendre les autres pour ce
qu'ils ne sont pas.

Fred.


S.



Avatar
Frederic Bouchery
heu ... même si tu utilises bêtement l'extension ".inc" comme beaucoup ?



Vous avez déjà vu de la déclaration de variables dans un fichier texte?

J'ai la mauvaise habitude d'être hautain, et de me dire que je ne suis
pas bête à ce point, en tout cas, évitez de prendre les autres pour ce
qu'ils ne sont pas.


Cette remarque était liée à la précédente.
Je vois beaucoup de gens qui mettent leurs variables de configuration
dans un fichier avec l'extension ".inc".
Donc a moins de mettre un "ForceType application/x-httpd-php" pour
".inc" ou un "deny from all". Ca pose de sérieux problèmes.

Loin de moi l'idée de dire que tu es bête. Cette remarque était là pour
enfoncer le clou sur le danger du ".inc" et des personnes qui osent
encore en parler (voir le contenu de ce thread).


1 2