Pb avec les variables URL en PHP

Coucou 11 -  
 Coucou 11 -
Bonjour,

Voici mon probleme.

J'utilise EasyPHP 1.7

Je souhaiterai creer un site en utilisant l'url pour passer les variables.
Par exemple
index.php?p=index
Je souhaite recuperer la variable $p
A force de chercher j'ai remarque que je suis oblige de recuperer cette variable en utilisant
$p = $HTTP_GET_VARS ["p"]

Comment faire pour recuperer cette variable sans utiliser $HTTP_GET_VARS

Car si la variable n'est pas declaree dans l'url il affiche une erreur.

Merci d'avance pour vos reponses

8 réponses

  1. Utilisateur anonyme
     
    bonjour
    $_GET["p"] mais cela ne change pas grand chose
    sinon il faut passer par un formulaire avec methode post
    je crois ?
    cordialement.
    0
  2. Willy
     
    Il faut utiliser l'option :

    register_globals;

    A mettre au debut de ta page, car avec certaines versions de PHP, elle est désactivée par défaut et tu ne peux pas appeller directement tes variables. avec cette option activée, tu devrait pouvoir réccupérer "p" en faisant: $p au lieu de: $HTTP_GET_VARS ["p"]
    0
  3. kalamit
     
    Salut,
    En fait, les register globals sont à off dans le php.ini. Tu as deux solutions:
    - soit tu changes cette valeur tout en sachant que c'est une faille.
    - soit tu utilises $_GET['p'].

    La seconde solution est la meilleure. Pour savoir si cette variable est declarée, fais un test au début de ta page:

    <?php
    if (isset($_GET['p'])) {
        $p = $_GET['p'];
    }
    ?>


    Et voili et voilou ! :)

    Kalamit,
    Parle à ma culasse, mon carter est malade. :)
    0
  4. Coucou 11
     
    Merci beaucoup pour votre aide.

    Ca constitue une grave faille de mettre register globals a on?

    Je risque de me servir de ce systeme pour recuperer pas mal de variables qui activeront ou desactiveront des menus et tableaux de la page.

    Est ce qu'il existe une fonction pour recuperer toutes les variables qui sont inscrites dans l'url

    Par exemple

    index.php?p=accueil&info=10&idsess=15643216584524184&nbrimg=10

    En fait je ne saurai pas en debut de page les variables qui seront transmises par l'url.
    Comment faire pour les declarer?

    A+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kalamit
     
    Comment ca tu ne sauras pas les variables à traiter ? Tu les connaitras forcement, sinon quel interet de les transmettre !?

    Kalamit,
    Parle à ma culasse, mon carter est malade. :)
    0
  7. Coucou 11
     
    Oui je les connaitrai car je les utiliserai mais ce que je veux dire c qu'il va falloir que je les declare toutes dans un fichier qui s'execute au demarrage du site? Ca risque pas de surcharger? Il n'y aurait pas une methode pour remplacer la variable $p dans $p = $_GET['p']; par quelque du genre *

    Dsl mais je debute en php.

    Merci
    0
  8. kalamit
     
    Re,
    Bah non justement, ton * correspondrait à mettre le register globals à ON ! :)
    Heu bah non, faut faire un test sur chaque variable, c'est l'ideal... :)

    Kalamit,
    Parle à ma culasse, mon carter est malade. :)
    0