Premier pas sous PHP5...

Eléphanteau du PHP | 19 Messages

15 déc. 2007, 19:26

Et la je me dit mais, tu es nul...

En effet je me retrouve avec une masse de 'Notice: Undefined variable:'

J'en perd mon latin, suis je obligé d'initialiser chaque variable de mon script?
if (isset($_GET["module"]))
{
	$module=$_GET["module"];
}else{
	$module="";
}
Ca rend le script immédiatement plus lourd, si je doit faire de la sorte pour chaque option de ma page!!

Quelle solution utilisé vous?

Merci
Modifié en dernier par PseT le 20 déc. 2007, 12:56, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 déc. 2007, 19:54

Il se rattache à quelque chose ce message parce que là ça fait un peu "cheveu sur la soupe" :x

Tu peux regarder ce post pour commencer.
Et ensuite expliquer plus clairement ton soui.

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

Eléphanteau du PHP | 19 Messages

15 déc. 2007, 20:05

Merci pour le lien, très instructif.

Il faut donc initialisé toutes les variables sous PHP5.

ViPHP
AB
ViPHP | 5818 Messages

15 déc. 2007, 20:41

Merci pour le lien, très instructif.

Il faut donc initialisé toutes les variables sous PHP5.
Oui, et éviter les short tags (<?php plutôt que <?), et faire attention à ne pas déclarer plusieurs fois la même fonction (pour les choses les plus courantes).

Eléphanteau du PHP | 19 Messages

15 déc. 2007, 22:01

<? sur mon serveur le script n'est pas interprété, donc la l'erreur est très vitre trouvé.

Merci

[/php]

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 59 Messages

17 déc. 2007, 20:00

moi perso j'utilise directement $_GET["module"] ou autre dans tout mes scripts

ça m'évite de recopier $_GET["module"] dans $module

et en plus de cette façon quand j'utilise une variable envoyé par l'utilisateur je le remarque tout de suite

(parce que $_GET["module"] c'est très identifiable au milieu du code alors que $module ça ressemble à n'importe quelle autre variable que j'aurais définie moi même et qui présente donc moins de danger)

Eléphanteau du PHP | 19 Messages

20 déc. 2007, 12:56

Merci pour votre aide, je maitrise maintenant :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 déc. 2007, 14:44

moi perso j'utilise directement $_GET["module"] ou autre dans tout mes scripts

ça m'évite de recopier $_GET["module"] dans $module

et en plus de cette façon quand j'utilise une variable envoyé par l'utilisateur je le remarque tout de suite

(parce que $_GET["module"] c'est très identifiable au milieu du code alors que $module ça ressemble à n'importe quelle autre variable que j'aurais définie moi même et qui présente donc moins de danger)
Et qu'en est-il de la protection de ces données ?

La base de la sécurité en PHP, c'est de ne jamais faire confiance à des données provenant de l'utilisateur, donc de ne jamais utiliser directement $_POST, $_GET, ...
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 59 Messages

27 déc. 2007, 22:27

La base de la sécurité en PHP, c'est de ne jamais faire confiance à des données provenant de l'utilisateur
Je suis tout à fait d'accord mais on peut les vérifier sans les copier ailleur.

Par exemple si $_GET["category"] doit être numérique:
if(!is_numeric($_GET["category"]))$_GET["category"]=1;//ou message d'erreur
ça marche aussi pour afficher des messages d'erreur quand un formulaire est mal remplis

Pour moi c'est plus court et plus clair justement pour identifier où sont les variables envoyées par l'utilisateur et s'en méfier niveau sécurité.

Ce qui compte c'est de vérifier ce que contient la variable non? pas de l'appeler autrement...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 déc. 2007, 22:37

Ce que tu dis se tiens, mais j'ai une autre manière de voir ...

Pour moi, tout ce qui est dans $_GET, $_POST, ... n'est pas protégé, et tout ce qui est dans une variable personnelle est valide ;)

Il s'agit de 2 manières de voir différentes mais qui se tiennent ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 18 Messages

28 déc. 2007, 14:42

on peut combiner vos deux façons de voir, en considérant que $_GET['pseudo'] est unsafe, et que $G_pseudo est safe, tout en restant facilement identifiable dans le code comme une var utilisateur ;)