dificulté avec easyphp dans le php et avec les sessions

Eléphant du PHP | 90 Messages

08 mai 2006, 14:23

Bonjour,

j'ai quelques soucis avec easy, tout fonctionne correctement en ligne.

et lorsque j'ai voulu tester sous easy j'ai des soucis avec les variables et les sessions.
if (($JJ!='')AND ($MM!='')AND ($AN!=''))
j'ai par exemple un formulaire de naissance
sous easy j'ai le message

Code : Tout sélectionner

Notice: Undefined variable: JJ in c:\program files\easyphp1-8\www\mon_php.php on line 8
bcp de pb de ce types

de même avec les sessions
	if ($utilisateur) {
	
	    session_register("admin"); 

		$_SESSION['level'] = $row_verif['level'];		
		$_SESSION['prenom'] = $row_verif['prenom']; 
		$_SESSION['pseudo'] = $row_verif['pseudo']; 
                header("Location:home.php"); 
	}
///l'authentification est bonne sur le formulaire mais sur pas sur les pages

<?
session_start(); 
if (session_is_registered("admin") && ($_SESSION['level'] == "1"|| $_SESSION['level'] == "2"   ))
 {}
else
{			echo "<center><br><br><b>Accés RESERVE !</b></center>";
	exit();
}
////je suis plus reconnu comme si la session avait échouée....
j'ai testé avec easy 1.6 1.7 1.8 idem

y a t'il quelque chose a configurer

Merci pour l'aide

Mammouth du PHP | 965 Messages

08 mai 2006, 14:28

Code : Tout sélectionner

Notice: Undefined variable: JJ in c:\program files\easyphp1-8\www\mon_php.php on line 8
Tu la definit ou ta variable ?

Eléphant du PHP | 90 Messages

08 mai 2006, 14:40

elle vient de mon formulaire.

Mais des que j'arrive sur la page, j'ai ce message.

Au debut elle vaut rien, la condition n'est pas bonne et le formulaire s'affiche.

Un formulaire basic..

en ligne pas de soucis sur PHP Version 4.4.2

mais avec easy sur PHP Version 4.3.10 passe pas.

Mammouth du PHP | 965 Messages

08 mai 2006, 15:15

Register global ?

quand par exemple tu passe en POST des donnée il faut les redefinir dans ta nouvel page par exemple :
$_POST['JJ'] = $post;
et utiliser par la suite la variable $post.

Je ne sais pas si ca repond a ta question mais j'ai eut le soucis donc au cas ou

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 mai 2006, 16:05

$_POST['JJ'] = $post;
Plustot l'inverse:
$JJ = $_POST['JJ'];
Tu dois certainement avoir les mêmes erreurs en lignes sauf qu'elles ne sont pas affichées.

Donc pour les vareiables du formulaire tu dois les récupérer comme dans le code précédent.

Pour les sessions tu ne dois plus utiliser "session_register()" et "session_is_registered()" mais isset() avec la variable de session:
$_SESSION['admin'] = ""; // ce que tu veux


if (isset($_SESSION['admin']) && ($_SESSION['level'] == "1"|| $_SESSION['level'] == "2"   ))
{}

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 90 Messages

08 mai 2006, 21:09

Effectivement cela reduit mes erreurs,

mais lors de l'affichage de la page du formulaire la premiere fois
$JJ = $_POST['JJ'];
$_POST['JJ'] n'a aucune valeur donc $JJ aussi.

et toujours Undefined index: JJ

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 mai 2006, 22:34

effectivement d'où l'importance de tester l'existence des variables avec isset()
( opérateur ternaire )
$JJ = (isset($_POST['JJ'])) ? $_POST['JJ'] : null;

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 90 Messages

08 mai 2006, 22:38

merci beaucoup

me reste plus qu'a trouver un bon tutorial sur isset

Mammouth du PHP | 19672 Messages

08 mai 2006, 22:44

Pas besoin d'un tuto, je vais te l'expliquer en une ligne:

isset() détermine si le paramètre est défini ou non et retourne TRUE si c'est le cas, FALSE dans le cas contraire: c'est tout.

Donc quand tu fais if(isset($mavar)), les instructions qui suivent le if() seront exécutées si TRUE est retourné, donc si la variable $mavar est définie... (même vide, attention à ce détail !)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 mai 2006, 22:44

le meilleur c'est la doc (édit) ** ou Cyrano :langue: **
Mais tu n'auras pas vraiment besoin d'un tuto étant donné qu'il s'agit d'une simple fonction (beaucoup utilisée) qui teste l'existence du paramètre qui lui est passé.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 90 Messages

08 mai 2006, 23:04

par contre j'ai tjrs un souci avec ma session
	
////Je crée ma session
    session_register("admin"); 
		
		$_SESSION['level'] = $row_verif['level'];		
		$_SESSION['prenom'] = $row_verif['prenom'];
		$_SESSION['pseudo'] = $row_verif['pseudo']; 
je n'arrive tjrs pas a récupérer les infos de session
if (isset($_SESSION['admin']) && ($_SESSION['level'] == "1"|| $_SESSION['level'] == "2"   ))
{}
else
{			echo "<center><br><br><b>Accés RESERVE !</b></center>";
echo $_SESSION['level'];
echo $_SESSION['pseudo'];
	exit();
}
ne passe tjrs pas

Mammouth du PHP | 19672 Messages

08 mai 2006, 23:21

if (isset($_SESSION['admin']) && ($_SESSION['level'] == "1"|| $_SESSION['level'] == "2"   ))
{}
else
{			echo "<center><br><br><b>Accés RESERVE !</b></center>";
echo $_SESSION['level'];
echo $_SESSION['pseudo'];
	exit();
}
Pourquoi faire simple quand on peut faire compliqué :?:
Essaye donc comme ceci :
<?php
if (!isset($_SESSION['admin']) || ($_SESSION['level'] != "1" || $_SESSION['level'] != "2"   ))
{
    echo "<center><br><br><b>Accés RESERVE !</b></center>";
    echo $_SESSION['level'];
    echo $_SESSION['pseudo'];
    exit();
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 90 Messages

08 mai 2006, 23:38

le soucis est que je ne récupere pas mes variables de sessions

donc authentification impossible

Mammouth du PHP | 19672 Messages

08 mai 2006, 23:42

il manquerait pas un session_start() quelque part ici où là ? :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 90 Messages

08 mai 2006, 23:57

il y est.

tout fonctionne en ligne sauf sous easy ou je doit tout modifier
et idem pour les sessions qui ne passent pas.