global register

Répondre
vitesse
le 22/04/2006 à 19:12
vitesse
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
i M@N
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. smiley

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. smiley

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? smiley

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.
vitesse
le 22/04/2006 à 22:26
vitesse
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,
LA GLOBULE
le 22/04/2006 à 23:35
LA GLOBULE
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.
Bzh
le 23/04/2006 à 01:51
Bzh
Bin sa dépend !

Etant donné qu'il est de loin préférable de:
<?php

//Choix de la tolerance des erreurs
error_reporting(E_ALL);

?>


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...
LA GLOBULE
le 23/04/2006 à 12:12
LA GLOBULE
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.
bibi
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
Bzh
le 23/04/2006 à 14:25
Bzh
Oui, c'est vrai que c'est pas con...

Je mettais jamais posé la question.

Bye
LupusMic
le 23/04/2006 à 15:20
LupusMic
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.
Bzh
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 ? smiley
Répondre
LoadingChargement en cours