register_globals = Off dans EasyPHP 1.7

Répondre
i M@N
le 09/10/2003 à 18:50
i M@N
Hello !

J'ai un souci avec EasyPHP 1.7 ...

vala ce qu'ils disent :

EasyPHP 1.7
Configuration PHP
§ register_globals = Off [sécurité, performance]
Depuis la version 4.2.0 de PHP, la valeur par défaut de register_global est à Off dans le php.ini. Dorénavant une variable envoyée par un formulaire (méthode POST) n'est plus récupérée avec $variable mais avec $_POST["variable"]. Toutes les variables globales sont concernées (POST, GET, cookies, environnement et autres variables serveur : $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_REQUEST, $_SESSION). Ceci peut nécessiter la réécriture partielle de certains scripts.
Rq : il est vivement conseillé d’utiliser cette configuration qui est celle adoptée par défaut depuis PHP 4.2.0 et de coder vos scripts en conséquence. Cependant si vous souhaitez utiliser d’anciens scripts sans avoir à les réécrire, vous avez toujours la possibilité de remettre dans le fichier php.ini register_global à On.

oki ... je veux bien moi ... mais dans mes script si j'ai :

<? if (isset($_GET["page"])) $page = $_GET["page"];
else $page = 0; ?>

ERREUR :

Notice: Undefined variable: page in f:\www\frames_center_inc.php on line 4

ou

<? if ($prenom == "" && $email == "") { echo '<table etc... ?> (avec $prenom et $email qui sont des variables de session).

ERREUR :

Notice: Undefined variable: prenom in f:\www\index.php on line 60

Notice: Undefined variable: email in f:\www\index.php on line 60

ou encore :

// on recupere la date de l'instant présent
$date_today = date("Y-m-d H:i:s");

// on décompose la date
sscanf($date_today, "%4s-%2s-%2s %2s:%2s:%2s", &$an_today, &$mois_today, &$jour_today, &$heure_today, &$min_today, &$sec_today);

ERREUR :

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of sscanf(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in f:\www\event.php on line

voire carrément :

if ($this->databaseName && $this->_connectionID) {
$boolDBSelected = @mysql_select_db($this->databaseName);
if(!$boolDBSelected) { /* If DB selection fails */
@mysql_close($this->_connectionID); /* Close the current connection */
return false;
}
}

Notice: Undefined variable: boolDBSelected in f:\www\lib.nbc\nbConnecte.inc.php3 on line 174

Je comprends pas comment je dois faire pour régler ça ...

Merci d'éclairer ma lanterne.

@+...
One Love, One Heart, One Unity.
LA GLOBULE
le 09/10/2003 à 19:23
LA GLOBULE
Pour les variables de session, il faut utiliser $_SESSION['prenom'].

Pour la date, il faut mettre l'option allow_call_time_pass_reference à on.

Quand au probleme de $boolDBSelected, la je ne vois pas....
savageman
le 09/10/2003 à 21:02
savageman
C'est juste des erreurs "notice" Elles n'aparaissaient pas avant (dans easy PHP 1.6)
Tu peux les enlever dans le PHP.ini section ERROR_REPORTING
Faut mettre :"E_ALL ~ NOTICE" ou "E_ALL ~ E_NOTICE" je sais plus trop, mais apres il faut redemarrer ton server apache.
Sinon pour les enlever, il faut:
isset($prenom) (oui je sais c chiant mais c comme ca!)
i M@N
le 10/10/2003 à 13:29
i M@N
Hello !

Bon,

pour le $_SESSION['prenom']
et pour l'option allow_call_time_pass_reference à on oki c bon, merci LA_GLOBULE.

Pour ce qui est des erreurs notice, je veux pas juste les faire disparaître en configurant le PHP.ini, ce que je veux c'est coder mes scripts de façon à ce que il n'y aie pas d'erreur aussi bien avec register_globals = Off que avec register_globals = On.

Je voudrais donc qu'on me donne des explications, des urls où je pourrais trouver ces infos.
Parce que sur easyphp.org, dans leur forum on peut pas dire que ce soit très clair.

Apparemment il faut définir chaque variable.
Comment on fait ça ?
Comment on code un script de façon à se qu'il fonctionne aussi bien avec register_globals = Off et avec register_globals = On ??

savageman : ton explication était bien partie sur le isset, mais donne-moi un vrai exemple stp, parce que là j'ai essayé mais j'ai pas trouvé la bonne syntaxe je pense ...

Merci de m'aider,

@+...
One Love, One Heart, One Unity.
savageman
le 10/10/2003 à 20:10
savageman
if ($this->databaseName && $this->_connectionID) {
$boolDBSelected = @mysql_select_db($this->databaseName);
if(!isset($boolDBSelected)) { /* If DB selection fails */
@mysql_close($this->_connectionID); /* Close the current connection */
return false;
}

Sinon, moi perso j'avais 2 erreurs de notice impossible a enlever... (je pense que ca peut se rencontrer, mais je suis pas sur...
i M@N
le 11/10/2003 à 14:29
i M@N
Hello !

Oki, super Savageman, je te remercie.

En plus du if(!isset($boolDBSelected)) il fallait aussi que j'active l'extension php_gd2 sur mon server Apache (puisque ce script sert à créer une image png à la volée).

@+...
One Love, One Heart, One Unity.
plc2k
le 16/10/2003 à 19:32
plc2k
moi je veux bien aussi, un exemple complet et claire sur la nouvelle methode pour les variables de session serait le bienvenu !!!
depuis la page ou l'on envoi les variable jusqu'à la page ou l'on les recupere.
voila merci
a+
plc2k
le 16/10/2003 à 19:35
plc2k
ok ok )
bolbule pense à tout ...
http://www.lephpfacile.com/tutorials/index.php?page_a_afficher=21
voila ce quil nous faut je pense
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours