Membres


Pas encore membre ?
inscrivez-vous ici

Connexion :
Login
Code
Mot de passe perdu ?
Liste des membres

php : Codez propre

Php : Codez propre


Php : Codez propre     Posté le 29/04/2005 à 00:00
Chapodepay
Membre
chapodepay
Site perso
207 posts
Inscrit le : 23/04/2005
php : Codez propre sous register_globals = Off et error_reporting = e_all


Vous venez de mettre easyphp1.7 a la place de easyphp1.6 ? ou vous avez une config spéciale sécurisante sur le server vous hébergeant?

tous ces problemes viennent de la nouvelle mode de configurer par défaut php.ini avec :
register_globals = Off
error_reporting = e_all

je cite le message d'alerte que vous avez certainement zappé en installant easyphp1.7 :

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&nbs p;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 :& nbsp;$_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.
  
§ error_reporting = E_ALL [codage propre]
  Les erreurs de codage et les avertissements (warning) sont pris en compte. Cette configuration est plus restrictive mais nécessaire pour un codage propre. Il est  ;donc possible que certains scripts génèrent des avertissements qui n'apparaissaient pas auparavant. Dans ce cas, il s'agira essentiellement de notifications. Si ces notifications sont& nbsp;dues à un codage intentionnel vous pouvez les supprimer en remplaçant dans le fichier php.ini la ligne "error_reporting = E_ALL" par "error_reporting = E_ALL & ~E_NOT ICE"


Déja pourquoi nous avoir fait ça? on demandait rien nous!!
mais en quelque sorte si... car il été bien notre monde ou php avait une grande patience et acceptait notre façon de coder a la barbare en vérifiant k'un truc sur deux... tant que sa fonctionne...
oui mais voila, les petit malin hackers se plaisaient aussi dans ce monde (/me se cache), monde comme deja dit, on vérifiait pas beaucoup de chose, tant que ça fonctionnait, rulez. Bref un paradis a celui ki voulait vous faire sauter votre site, quelque commande par les variables non vérifiées et le tour été joué.
Soyez heureux de ces modifications contraigniantes, car les majors du php veillent sur vous, ou plutot vous force a faire quelque chose de propre pour vous sécurisez vous meme.

commençons, par le plus chiant :
error_reporting = E_ALL
avant c'était : error_reporting = E_ALL & ~E_NOTICE.
cette nouvelle config veut dire en clair : affiche une erreur pour tout truc chelou qui mériterait retouche.
avant c'était plutot : affiche une erreur que si c'est grave.

donc vous voici avec des dizaines ,et des dizaines de ligne d'erreurs sur vos pages php (gros crado en passant).
Les notices ne sont pas bloquantes pour le script (mais peuvent causer d'autre bug), il affiche ces notice comme conseil mais ne stop pas l'execution du script.
Donc codez oui, mais codez propre, ainsi vous n'aurez pas d'erreur affichée. na.

ensuite : register_globals = Off
Qu'elle était bien cette config a ON, nous permettant de nous servir directement des variables définies par l'url (method GET) ou venues d'un formulaire (method POST ou GET...) C'EST FINI !!!
avant, avec une var définie dans l'url ainsi :
page.php?mavar=toto
on pouvait direct faire :

<?
echo $mavar;
?>


et la page affichait sans broncher 'toto'

maintenant, non seulement vous zetes obligé de préciser l'origine de la var avec : $_GET['mavar'] (que c'est fastidueux...) et en + (sa c le comble) de vérifier son existance avant de faire quoi que ce soit avec, c'est a dire de faire :

<?
if(isset($_GET['mavar']))echo $_GET['mavar'];
?>


beaucoup moin drole déja...

Notez que les feignant feront :

<?
@echo $_GET['mavar'];
?>


le @ voulant dire : une erreur? tu sais ou tu peux te la mettre? (déconseillé)



bien sure, partout dans vos scripts vous utilisez des variables que vous ne controler pas toujours l'existance... alors qu'il fodrait.

a la place de

<?
if($untruc)faireuntruc();
?>


mettre

<?
if(isset($untruc))faireuntruc();
?>



etc


by chapodepay

________________________
je fais du monde virtuel la vie que j'aurais aimé avoir
http://www.horslimite.net
webmastering & Co :)
 
Réponse à : Php : Codez propre     Posté le 29/04/2005 à 08:08
sky
Administrateur
Avatar
Site perso
4171 posts
Inscrit le : 13/08/2003
Chapodepay ...
Je te remerci pour ça, mais, ce n\'estpastoi qui l\'a écrit. La page vient de www.sheep-team.org/tutos/14 .

Edite le message ou demande la permission au Sheep-team.

Je ne veit pas piquer des infos sur d\'autre site. Un lien suffit. Si on ne porpose pas des infosnouvelles, ça sert à rien d\'avoir un site web ...

Sky

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Php : Codez propre     Posté le 29/04/2005 à 11:09
chapodepay
Membre
Avatar
Site perso
207 posts
Inscrit le : 23/04/2005
sky... c moi aussi sur la sheep team, regarde bien


php : codez propre sous register_globals = Off et error_reporting = e_all
Tutorial écrit par chapodepay le 9 sept 2004


_______________________
je fais du monde virtuel la vie que j'aurais aimé avoir
http://www.horslimite.net
webmastering & Co :)
 
Réponse à : Php : Codez propre     Posté le 29/04/2005 à 11:37
sky
Administrateur
Avatar
Site perso
4171 posts
Inscrit le : 13/08/2003
Lol, excuse chapo smiley
Merci de l\'avoir mius là ^^ C\'est appréciable !

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Php : Codez propre     Posté le 29/04/2005 à 12:15
chapodepay
Membre
Avatar
Site perso
207 posts
Inscrit le : 23/04/2005
c\'est du 100% chapo :D
les fautes avec ^^

_______________________
je fais du monde virtuel la vie que j'aurais aimé avoir
http://www.horslimite.net
webmastering & Co :)
 
Vous n'est pas connecté en temps que membre, parceque j'en ai marre du spam, SEUL les membres peuvent poster des messages sur le forum.

Nous  -  Plan du site  -  Informations légale  -  Contact  -  © Graphiks.net