Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/03/2006, 01h10   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 24
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 24
Points : 11
Points : 11
Par défaut [Cookies] header et include... une variable ne passe pas...

Bonjour a tous...

Je suis en train de faire mon développement tardif sur serveur linux/apache/mod_php5... mais bon, visiblement, je dois commencer à fatiguer...

j'ai un fichier de config.php qui charge quelque variables utiles... situé dans /$urlpath/config.php

config.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
<?php
 
// Monarch Config file Release 1.0 'Dirty'
 
// Database Related
 
	$dbhost = 'localhost';
	$dbuser = 'monarch';
	$dbpass = 'monarch';
	$dbname = 'monarch';
 
// Other Options, necessary
 
	// Local archive repository
	$archive = "/var/www/monarch/archive/";
 
	// Temporary folder for processing files
	$temp = "/var/www/monarch/temp/";
 
	// Local application path
	$localpath = "/var/www/monarch/";
 
	// Url Path, for example, if Monarch is installed in a virtual host folder (http://www.intranet.local/monarch)
	$urlpath = "/monarch/";
 
	// Internet availability
	$internet = 0; // or 1
 
// Smarty related, don't touch
 
$full_path =         dirname(__FILE__)."/";
 
define ("SMARTY_DIR",$full_path."");
define ("TEMPLATES_PATH",$full_path . "templates");
define ("TEMPLATES_C_PATH",$full_path . "templates_c");
define ("CONFIGS_PATH",$full_path . "configs");
define ("CACHE_PATH",$full_path . "cache");
 
if ($_GET['lang'] != "") {
    $LANGUAGE = $_GET['lang'].".conf";
}
 
if ($LANGUAGE == "")
    $LANGUAGE = "fr.conf";
 
require_once SMARTY_DIR."Config_File.class.php";
require_once SMARTY_DIR."Smarty.class.php";
 
?>
et une petite fonction de rien du tout qui me sert a poser un malheureux cookie... le code est situé dans /$urlpath/func/func.set_cookie.php

func.set_cookie.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<?php
 
$usercookie = $_POST['id_user'];
include ('../config.php');
function set_cookie($usercookie) {
	if (isset($usercookie)) {
		setcookie("monarch_user", $usercookie, time()+3600);
		$host  = $_SERVER['HTTP_HOST'];
		$page = "sommaire.php";
		header("Location: http://$host/$urlpath$page");
 
		} else {
 
			echo "There is an authentification error";
			echo "$usercookie "." bla";
			}
 
}
 
$func_set_cookie_call = set_cookie($usercookie);
 
?>
et bien... étrangement... la variable $urlpath est nulle... et mon header... qui est censé me renvoyer dans sommaire.php... me renvoi sur "http://monip/sommaire.php

elle est passé ou ma valeur $urlpath... ???

merci et bonne soirée [/b]
fastmanu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 01h28   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Puis-je te suggérer de :
  • Ne pas concaténer deux chaînes qui se suivent immédiatement, comme dans "$usercookie "." bla"
  • Ne pas utiliser les guillemets doubles où ils sont inutiles, comme dans "sommaire.php"
  • Utiliser des constantes au lieu de variables de config lorsqu'elles ne doivent pas être modifiées dans le script

La dernière suggestion règlera probablement ton problème car il est impossible d'enlever sa valeur à une constante.


[Edit] C'est un problème de scope : tu vas avoir du mal à utiliser, dans une fonction que tu as définie, des variables qui ont été déclarées à l'extérieur de cette fonction.

Utiliser des constantes règlerait effectivement ce souci tout en étant plus correct.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2006, 01h53   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 24
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 24
Points : 11
Points : 11
Merci pour ta réponse rapide !

En effet... ça passe avec une constante... je n'avais pas essayé... Merci aussi pour les autres petits conseils... c'est vrai que je ne m'atelle pas trop (du moins, depuis peu...) à ce genre de detail...

... pour le "$usercookie"... c'était pour un essai... :p

merci encore...
fastmanu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h52.


 
 
 
 
Partenaires

Hébergement Web