OVH Cloud OVH Cloud

varaibles globales... again... get pas superglobale??

5 réponses
Avatar
bruno
Bonjours, j'ai des pb bizarres... je n'arrive pas a acceder a $_GET
dans une methode... j'ai meme essayé de le declarer en global...
Je met le code en dessous, le premier est le script appelant la methode
en cause...
le tout devrait par exemple créer la variable globale $id_activite si
un param de meme nom est passé dasn l'URL...
hors, d'apres les echo, $_GET['id_activite '] est nul... dans la
methode...
je comprend pas la...

----1er script----
$recup->GetPost('id_activite');
echo (" POST = {$_POST['id_activite']}, GET {$_GET['id_activite']}",9);
$recup->GetPost('id_CompRequise');
$recup->Get('NB');
$recup->Get('id_Comp');

---2nd script----

class recupGetPost {
function GetPost($var) {
global $dbg;
global $_GET;
if (isset($_GET['{$var}'])) {
$GLOBALS['{$var}'] = $_GET['{$var}'];
echo ("Récuperation de la var GET {$var} = {$_GET['{$var}']}",9);
} else if (isset($_POST['{$var}'])) {
$GLOBALS['{$var}'] = $_POST['{$var}'];
echo ("Récuperation de la var POST {$var} = {$_POST['{$var}']}",9);
} else {
$GLOBALS['{$var}'] = -1;
echo ("pas de récuperation de la var {$var} => valeur -1",9);
echo (" POST = {$_POST['{$var}']}, GET = {$_GET['{$var}']}",9);
}
echo ("Création de la var globale {$var} = {$GLOBALS['{$var}']}",9);

}
}

---fin---

5 réponses

Avatar
bruno modulix
bruno wrote:
Bonjours, j'ai des pb bizarres... je n'arrive pas a acceder a $_GET
dans une methode... j'ai meme essayé de le declarer en global...


pas vraiment la solution...

le tout devrait par exemple créer la variable globale $id_activite si
un param de meme nom est passé dasn l'URL...
(snip)

----1er script----
$recup->GetPost('id_activite');
(snip)

---2nd script----
class recupGetPost {
function GetPost($var) {
global $dbg;
global $_GET;
if (isset($_GET['{$var}'])) {


il n'y a pas d'interpolation de variables quand la chaine est entre
simple quotes.


--
bruno desthuilliers
ruby -e "print ''.split('@').collect{|p|
p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"

Avatar
Marc Quinton
bruno wrote:

class recupGetPost {
function GetPost($var) {
global $dbg;
global $_GET;
if (isset($_GET['{$var}'])) {
$GLOBALS['{$var}'] = $_GET['{$var}'];
echo ("Récuperation de la var GET {$var} = {$_GET['{$var}']}",9);



essaie un print_r($_GET) au bon endroit, je pense que ton acces au tableau
n'est pas correct !

Avatar
dmetzler
Pourquoi faire simple quand on peut faire compliqué ?

<?php

function GetPost($var) {
$GLOBALS[$var] = ($_REQUEST[$var] ? $_REQUEST[$var] : -1);
}

GetPost("mavar");
echo $mavar;

?>


Y'as surement une erreur dans ton code dans tes imbrications de if
(mauvais pour la santé les imbrication de if !)

Sinon la syntaxe pour les variables c'est ${mavar} et pas {$mavar}.
Pour ma part j'évite de l'utiliser systématiquement étant donné que
ça nuit à la lisibilité
Avatar
bruno
j'essaie totu de suite...
...ho! ca fonctionne merci beacoup!

-evitez d'etre idiot et de mette tab['{$var}']
=>je vient de realiser... trois erreures d'un coup!
pfff... le boulet!
Avatar
bruno
par contre apres verif dans la doc php :

syntaxe complexe :
En fait, vous pouvez inclure n'importe quelle valeur qui est dans
l'espace de nom avec cette syntaxe. Il suffit d'écrire une expression
exactement comme si elle était hors de la chaîne, puis de l'entourer
d'accolades {}. Puisque vous ne pouvez pas échapper les accolades,
cette syntaxe ne commence qu'à partir du signe dollar, qui suit
immédiatement l'accolade ouvrante. Vous pouvez utiliser "{$" ou "{$"
pour obtenir un "{$" littéral. Voici quelques exemples ...
cf : =>http://fr3.php.net/manual/fr/language.types.string.php

donc on peut bien noter : {$mavar}