Page 1 sur 2

parametrage des sessions ds le php.ini

Posté : 12 juil. 2005, 14:51
par toony21
Bonjour,

Je viens d'installer un easyphp et l'utilisation des sessions n'a pas l'air de bien marcher. Je n'ai pas modifier le php.ini depuis l'installation.
Dès que je lance ma page avec les sessions j'ai le message :

Notice: Undefined index: type in c:\program files\easyphp1-8\www\o-liste.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\o-liste.php:3) in c:\program files\easyphp1-8\www\o-liste.php on line 5

comment dois etre configurer mon php.ini? :roll:

Posté : 12 juil. 2005, 14:54
par zeus
C'est pas un problème de php.ini

Est-ce que tu as mis session_start() et surtout : est-ce qu'il est bien au DEBUT de ton script (avant tout code HTML) ?

Posté : 12 juil. 2005, 15:09
par toony21
oui il est bien présent. mais le pb vient de la configuration de mon php.ini car j'ai testé le script sur un hebergement online et aucun pb. Mais là j'ai installé l'easyphp et ca ne marche pas!
Le pb vient dc de lui...

<?
session_start(); // On démarre la session
$type=$_SESSION['type'];
if ($type!="O"){
header ("Location: accueil-pro.php");
}
?>

Posté : 12 juil. 2005, 15:15
par zeus
Est-ce que tu as un espace ou un saut de ligne avant le header() ?

Parce que le message d'erreur est typiquement celui qui est généré dans ce cas

Posté : 12 juil. 2005, 15:24
par Invité
pourtant non. Le code est écrit comme ci-dessus.
Sans espaces.
C'est la version 1.8 d'easyphp qui est installé. J'ai vu que la variable register_global etait à 0, je l'ai passsé à 1 mais rien ne change.

Personne n'a déja paramétrer son php.ini pour qu'il accepte des sessions ?

Posté : 12 juil. 2005, 15:26
par zeus
Est-ce que tu as ça dans ton php.ini ?

Code : Tout sélectionner

session.use_cookies = 1

Re: parametrage des sessions ds le php.ini

Posté : 12 juil. 2005, 15:31
par rami
Notice: Undefined index: type in c:\program files\easyphp1-8\www\o-liste.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\o-liste.php:3) in c:\program files\easyphp1-8\www\o-liste.php on line 5

comment dois etre configurer mon php.ini? :roll:
Le probleme ne vient pas d'easyphp mais de ton code qui n'est pas propre. 2 solutions s'offrent à toi:
- la facile mais pas propre: tu mets error_reporting à 0 dans ton php.ini
- la plus mieux propre: tu testes l'existence de tes variables avant de les utiliser.

;)
Edit: pour etre plus clair, l'erreur "Warning: Cannot modify header information" est due à la première erreur "Notice: Undefined index: type in c:\program files\easyphp1-8\www\o-liste.php on line 3".

Posté : 12 juil. 2005, 15:33
par toony21
Oui!

[Session]
; Handler used to store/retrieve data.
session.save_handler = files

; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
session.save_path = "${path}\tmp\"

; Whether to use cookies.
session.use_cookies = 1

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 0.
; session.use_only_cookies = 1

; Name of the session (used as cookie name).
session.name = PHPSESSID

; Initialize session on request startup.
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

; The path for which the cookie is valid.
session.cookie_path = /

; The domain for which the cookie is valid.
session.cookie_domain =

; Handler used to serialize data. php is the standard serializer of PHP.
session.serialize_handler = php

Posté : 12 juil. 2005, 15:35
par zeus
On est en train de résoudre pourquoi est-ce que les variables n'existent pas donc
- la facile mais pas propre: tu mets error_reporting à 0 dans ton php.ini
Et s'il a besoin de ces variable ?
- la plus mieux propre: tu testes l'existence de tes variables avant de les utiliser.
Même réponses, s'il a besoin des variables

Le problème n'est pas qu'elles n'existent pas tout le temps, mais jamais

Posté : 12 juil. 2005, 16:02
par toony21
et donc jedois faire quoi?
parce que caché les erreurs ne permmettra poas a mon code de sexecuté correctement...
Pourquoi est ce que mes variable ne sont pas reconnues??

alors que je le rapelle ca tourne TB sur Online!!

Posté : 12 juil. 2005, 16:29
par toony21
Comment se fait il que ses variables n'existent pas alors?

Elle sont rentrées dans un formulaire pourtant...

Posté : 12 juil. 2005, 17:03
par rami
Ca tourne sur online car error_reportong est à 0.

A chaque fois que tu utilises une variable $_POST, $_GET, $_SESSION..., il faut tester son existence avant:
<?
session_start(); // On démarre la session
if(isset($_SESSION['type']))
     $type=$_SESSION['type'];
else $type = null;

if ($type!="O"){
header ("Location: accueil-pro.php");
}
?>


Posté : 13 juil. 2005, 09:27
par toony21
OK merci. J'ai corrigé mon code mais je rencontre un autre problème maintenant :
les variables entre le formulaire et la page qui y fait référence ne s'affichent pas...

pourtant je test bien l'existence des variables mais elles sont vides...
2ème page:
<?
echo "ok";
if (isset($_POST['login'])){
	  $login=$_POST['login'];
}
else {
	  $login="";
}

?>

Posté : 13 juil. 2005, 19:15
par rami
Tu utilises bien la méthode POST dans ton formulaire? (method="POST" dans ta balise <form>)

Posté : 17 oct. 2005, 08:18
par JyLoO
Rien a voir >> register_globals est à off dans son php.ini

Faut apprendre à coder ;)