global register
Salut à tous, je suis nouveau ici. Depuis longtemps je cherchais un site d'aide à PHP. Je semble bien en avoir trouvé un qui est de mon calibre. Bon je commence à me débrouillier pas trop mal, mais la je suis rendu à un bug. je veux changer mes codes pour que global register soit à OFF dans la config de php.
Actuellement je passe mes variables par l'url (./index.php?page=calcule&chiffre1=55&chiffre2) et par formulaire html <form> <post>
Je comprend que c'est pas la bonne méthode, pourtant ça fait le travail.
Je sais que je dois utiliser [$_REQUEST[$variable] ou $_POST[$variable]], mais je comprend pas comment passer une variable d'une page à l'autre avec ça tant par formulaire à remplir que parce que mes pages renvoie des info de mysql ou de calcule.
De plus... est t-il possible de déterminer une variable et quelle soit toujours active tant que on lui fait pas un (unset) ou que l'on ferme pas le furteur?
Merci de prendre le temps de répondre à mes questions
le 22/04/2006 à 20:33
i M@N
Hello !
je veux changer mes codes pour que global register soit à OFF dans la config de php.
c'est bien, coder avec les Register_Global à ON c'est MAL.
Actuellement je passe mes variables par l'url (./index.php?page=calcule&chiffre1=55&chiffre2) et par formulaire html <form> <post>
Je comprend que c'est pas la bonne méthode, pourtant ça fait le travail.
Heu, je vois pas en quoi passer des variables en $_GET ou en $_POST c'est pas bon.
Je sais que je dois utiliser [$_REQUEST[$variable] ou $_POST[$variable]], mais je comprend pas comment passer une variable d'une page à l'autre avec ça tant par formulaire à remplir que parce que mes pages renvoie des info de mysql ou de calcule.
Tes données issues de MySQL c'est une chose, celles issues de $_GET & $_POST en sont une autre.
De plus... est t-il possible de déterminer une variable et quelle soit toujours active tant que on lui fait pas un (unset) ou que l'on ferme pas le furteur?
Hum ... une variable de session peut-être?
Côté pratique :
Pour coder avec les Register_Global à OFF, quand tu veux récupérer ta variable $variable qui vient d'un formulaire en $_GET tu fais :
<?php
if (isset($_GET["variable"])) $variable = $_GET["variable"]; else $variable = "";
?>
Pour une variable qui vient d'un formulaire en $_POST tu fais :
<?php
if (isset($_POST["variable"])) $variable = $_POST["variable"]; else $variable = "";
?>
Et à partir de là tu auras $variable disponible dans ton script, c'est ce qui s'appelle initialiser les variables issues de $_GET et $_POST et c'est obligatoire en Register_Global à OFF : niveau sécurité c'est un plus.
Pour enregistrer une variable de session :
<?php
session_start();
$variable = "toto";
$_SESSION["variable"] = $variable;
?>
@+...
One Love, One Heart, One Unity.
Merci beaucoup, je travail ça se soir... Je m'excuse, j'ai du mal m'exprimé, c'étais pas ça je voulais dire à ta réponse 2,
Mais I_Man, je comprendrais jamais pourquoi tu fais toujours :
if (isset($_GET["variable"])) $variable = $_GET["variable"]; else $variable = "";
Si elle n'est pas isset, ca sert à rien de créer un truc vide pour l'afficher : ne l'affiche tout simplement pas.
Et si elle est isset, ben utilise la directement au lieu de déclarer $variable.
le 23/04/2006 à 01:51
Bzh
Bin sa dépend !
Etant donné qu'il est de loin préférable de:
Donc, si tu ne veux pas avoir des warning à tout va, je suis de l'avis d'Iman pour assuré au niveau des déclarations des variables...
Enfin, c'est comme ça que je m'y prends aussi...
Bye...
Ben je code aussi en E_ALL, mais je ne déclare pas des variables vides...
J'utilise juste des variables quand elles sont déclarées.
Non, parce que si on reste logique, ca sert à rien d'afficher un truc vide.
La, votre feinte, c'est pour faire des :
<input type="texte" name="blu" value="<?=htmlentities($blu)?> />
Mais je ne trouve pas cela logique, car $blu existe meme si le formulaire n'est pas soumis.
Alors que l'on peut faire :
<input type="texte" name="blu" value="<?php if isset($_POST['blu']) echo htmlentities($_POST['blu']); ?> />
Qui pour moi, est beaucoup plus logique.
le 23/04/2006 à 14:05
bibi
personnellement je fais comme glob, et j'ai la meme vision des choses.
Je ne vois pas l'intéret de laisser une variable vide, ca sert strictement a rien . Ca se ballade c'est cool , mais elle te servira a rien. avec un if isset , c'est plus logique et ca se voit tout de suite. Enfin bon ...
commit suicide
le 23/04/2006 à 14:25
Bzh
Oui, c'est vrai que c'est pas con...
Je mettais jamais posé la question.
Bye
Un des paradygmes de la programmation sécurisée est de toujours initialiser ces variables avant utilisation.
Dans notre cas, ça empêche les injections directes et ça éclaircit le code.
Mes 2c€.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
le 23/04/2006 à 17:31
Bzh
Oui, je partais plustot sur cette logique... Mais pourquoi initialiser des variables vides si on ne s'en sert pas ?