Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
1614 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  $_GET et $_REQUEST ne fonctionne pas dans un tableau global

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

$_GET et $_REQUEST ne fonctionne pas dans un tableau global

n°1946000
Antibug
AntiTerminatux
Posté le 30-11-2009 à 17:33:33  profilanswer
 

Salut les codeurs.
Découvrant tranquillement le PHP dans le cadre du bahu et le prof étant absent j'ai décidé de m'avancer dans mon TD.
On me demande de créer une fonction lisant le contenu d'un tableau et afficher son contenu puis d'utiliser la même fonction sur un tableau global. On doit essayer avec $_SERVER, $_GET et $_REQUEST.
Avec $_SERVER ça fonctionne mais pas avec les deux autres et j'aimerais bien savoir pourquoi et si possible résoudre ça.

 

Voici mon code (bidon) :

 

fonction.php :

Code :
  1. <?php
  2.     function question10($tab){
  3.         foreach($tab as $clef=>$val){
  4.             echo "Clef : ".$clef." --> Valeur : ".$val."<br>";
  5.         }
  6.     }
  7.     
  8. ?>
 

principal.php

Code :
  1. <?php
  2.     echo "<H2> Exercice 10, Affichage de l'ensemble d'un tableau </H2>";
  3.     $tab2 = array(123,456,789,101112,131415);
  4.     echo question10($tab2);
  5.     echo "<H3> Exercice 10, Affichage du tableau global avec $_SERVER </H3>";
  6.     echo question10($_SERVER);
  7.     echo "<H3> Exercice 10, Affichage du tableau global avec $_GET </H3>";
  8.     echo question10($_GET);    //marche pas ???
  9.     echo "<H3> Exercice 10, Affichage du tableau global avec $_REQUEST </H3>";
  10.     echo question10($_REQUEST);    //marche pas ???
  11. ?>
 

Voici ce qui m'est affiché :


 Exercice 10, Affichage du tableau global avec Array
Clef : HTTP_HOST --> Valeur : localhost
Clef : HTTP_USER_AGENT --> Valeur : Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
Clef : HTTP_ACCEPT --> Valeur : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Clef : HTTP_ACCEPT_LANGUAGE --> Valeur : fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Clef : HTTP_ACCEPT_ENCODING --> Valeur : gzip,deflate
Clef : HTTP_ACCEPT_CHARSET --> Valeur : ISO-8859-1,utf-8;q=0.7,*;q=0.7
Clef : HTTP_KEEP_ALIVE --> Valeur : 300
Clef : HTTP_CONNECTION --> Valeur : keep-alive
Clef : HTTP_REFERER --> Valeur : http://localhost/
Clef : PATH --> Valeur : /usr/bin:/bin:/usr/sbin:/sbin
Clef : SERVER_SIGNATURE --> Valeur :
Apache/2.0.63 (Unix) PHP/5.2.11 DAV/2 Server at localhost Port 80

 

Clef : SERVER_SOFTWARE --> Valeur : Apache/2.0.63 (Unix) PHP/5.2.11 DAV/2
Clef : SERVER_NAME --> Valeur : localhost
Clef : SERVER_ADDR --> Valeur : ::1
Clef : SERVER_PORT --> Valeur : 80
Clef : REMOTE_ADDR --> Valeur : ::1
Clef : DOCUMENT_ROOT --> Valeur : /Users/Loick/Documents/PHP
Clef : SERVER_ADMIN --> Valeur : you@example.com
Clef : SCRIPT_FILENAME --> Valeur : /Users/Loick/Documents/PHP/principal.php
Clef : REMOTE_PORT --> Valeur : 61711
Clef : GATEWAY_INTERFACE --> Valeur : CGI/1.1
Clef : SERVER_PROTOCOL --> Valeur : HTTP/1.1
Clef : REQUEST_METHOD --> Valeur : GET
Clef : QUERY_STRING --> Valeur :
Clef : REQUEST_URI --> Valeur : /principal.php
Clef : SCRIPT_NAME --> Valeur : /principal.php
Clef : PHP_SELF --> Valeur : /principal.php
Clef : REQUEST_TIME --> Valeur : 1259598652
Clef : argv --> Valeur : Array
Clef : argc --> Valeur : 0

 

Exercice 10, Affichage du tableau global avec Array

 

Exercice 10, Affichage du tableau global avec Array

 
 

Ah autre chose, à la place de Array j'aimerais que $_SERVER, avec le $ soit affiché. Comment faire ?

 

Merci pour votre aide :jap:


Message édité par Antibug le 30-11-2009 à 17:34:35

---------------
Feed-Back | Moniteur officiel des essais statiques | Groupement Anti Terminatux | Lien leboncoin -> SPAM d'après Terminatux
mood
Publicité
Posté le 30-11-2009 à 17:33:33  profilanswer
 

n°1946008
stealth35
Posté le 30-11-2009 à 17:40:05  profilanswer
 

alors petit precision :
 
$_REQUEST = $_GET + $_POST + $_COOKIE  (pas sur de l'ordre)
 
ton _GET  contient les valeurs passées par l'adresse   ex :  index.php?test=toto
 
ton _POST contient les valeurs passées par un formulaire par exemple
 
donc si tu passes rien la dedan normale que rien ne s'affiche
 
pour que ca affiche $_SERVER met des simple quote
 
$test = 'toto';
 
echo "$test"   =  toto
echo '$test'    =  $test

n°1946011
skeye
Posté le 30-11-2009 à 17:42:37  profilanswer
 

A priori, tes tableaux $_GET et $_REQUEST sont vides, d'où le manque d'affichage.
 
Concernant les "Array" c'est parce-qu'en php les variables dans des chaines de caractères entre doubles quotes sont évaluées - si tu ne veux pas que ce soit évalué utilise de simples quotes.


---------------
Can't buy what I want because it's free -
n°1946021
Antibug
AntiTerminatux
Posté le 30-11-2009 à 17:56:17  profilanswer
 

stealth35 a écrit :

alors petit precision :

 

$_REQUEST = $_GET + $_POST + $_COOKIE  (pas sur de l'ordre)

 

ton _GET  contient les valeurs passées par l'adresse   ex :  index.php?test=toto

 

ton _POST contient les valeurs passées par un formulaire par exemple

 

donc si tu passes rien la dedan normale que rien ne s'affiche

 

pour que ca affiche $_SERVER met des simple quote

 

$test = 'toto';

 

echo "$test"   =  toto
echo '$test'    =  $test


Merci pour l'explication, et donc si je veux afficher quelque chose dans mon post je suis obligé de faire un formulaire (chose qu'on n'a pas encore fait), ou on peut ruser pour essayer ?
Car pour le moment il m'affiche la même chose dans le post et le get.

skeye a écrit :

A priori, tes tableaux $_GET et $_REQUEST sont vides, d'où le manque d'affichage.

 

Concernant les "Array" c'est parce-qu'en php les variables dans des chaines de caractères entre doubles quotes sont évaluées - si tu ne veux pas que ce soit évalué utilise de simples quotes.


Ok c'est corrigé, je me doutais bien qu'il y avait un simple quote qui trainait mais savait pas trop où ;).

Message cité 1 fois
Message édité par Antibug le 30-11-2009 à 17:59:16

---------------
Feed-Back | Moniteur officiel des essais statiques | Groupement Anti Terminatux | Lien leboncoin -> SPAM d'après Terminatux
n°1946027
skeye
Posté le 30-11-2009 à 18:01:10  profilanswer
 

Antibug a écrit :


Merci pour l'explication, et donc si je veux afficher quelque chose dans mon post je suis obligé de faire un formulaire (chose qu'on n'a pas encore fait), ou on peut ruser pour essayer ?


Appelle ton script via un navigateur avec http://tonserveur/tonscript.php?toto=3, ça te fera déjà quelquchose dans GET et REQUEST...:D


---------------
Can't buy what I want because it's free -
n°1946029
Antibug
AntiTerminatux
Posté le 30-11-2009 à 18:04:09  profilanswer
 

skeye a écrit :


Appelle ton script via un navigateur avec http://tonserveur/tonscript.php?toto=3, ça te fera déjà quelquchose dans GET et REQUEST...:D


Yep c'est ce que j'ai fait pour remplir le Get comme me l'avait suggéré stealth35.
Effectivement ça fonctionne, et ce même avec plusieurs paramètres.


---------------
Feed-Back | Moniteur officiel des essais statiques | Groupement Anti Terminatux | Lien leboncoin -> SPAM d'après Terminatux
n°1946031
skeye
Posté le 30-11-2009 à 18:05:01  profilanswer
 

ah oui j'avais raté les messages d'avant.[:petrus75]


Message édité par skeye le 30-11-2009 à 18:05:05

---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  $_GET et $_REQUEST ne fonctionne pas dans un tableau global

 

Sujets relatifs
tri d'un tableauTableau indexé par un enum
[VBA] Remplir une table Access à partir d'un tableauExcel VBA, API SendMessage ne fonctionne pas
Redirection 301 qui ne fonctionne pas : help !Probleme d'espace autour des images dans tableau
assigner un tableau à un tableau ?!{C++} Tableau de structure
vb excel - MAJ un tableauCacher/Faire apparaitre dynamiquement une ligne dans un tableau
Plus de sujets relatifs à : $_GET et $_REQUEST ne fonctionne pas dans un tableau global


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware