Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer des données dans l'URL sans $_GET

    5 juillet 2020 à 0:58:16

    Bonjour.

    Je souhaiterais savoir s'il était simple de faire passer des données dans une Url et les récupérer sans $_GET. Par exemple, une url Twitch marche comme ceci : twitch.tv/aristideexe. Ici je veux accéder à la page de AristideExe et l'url ne contient pas une formule nom=valeur. Sauriez comment reproduire ceci ?

    Merci d'avance

    Aristide

    • Partager sur Facebook
    • Partager sur Twitter
      5 juillet 2020 à 14:21:19

      Bonjour,

      Il suffit de récupérer l'url complète avec la variable super globale $_REQUEST de php puis de faire un explode sur /.

      https://stackoverflow.com/questions/6768793/get-the-full-url-in-php

      • Partager sur Facebook
      • Partager sur Twitter
      "Ils ne savaient pas que c'était impossible, alors ils l'ont fait" Mark Twain
        5 juillet 2020 à 14:56:32

        On peut le faire faire via de la réécriture d'URL plutôt que de parser $_SERVER['REQUEST_URI'] à la main.

        Mais généralement, ce genre de tâche est assurée par un routeur (MVC), composant d'un framework.

        • Partager sur Facebook
        • Partager sur Twitter
          5 juillet 2020 à 18:01:32

          Et pour créer une url comme cela automatiquement il faut créer des sous-domaines ou il y a une autre façon ?
          • Partager sur Facebook
          • Partager sur Twitter
            5 juillet 2020 à 18:47:09

            Ce n'est pas un sous-domaine ça. Pour un sous-domaine, l'adresse serait en http://aristideexe.twitch.tv mais c'est possible aussi de le faire avec un sous-domaine (il faut un wildcard DNS si vraiment ce n'est pas limité à quelques noms, un VirtualHost qui les gère tous et parser $_SERVER['HTTP_HOST']).

            > pour créer une url comme cela automatiquement

            La générer ? Le lien (a href) ? Tu mets ce que tu veux dans ton adresse, il suffit d'echo ta chaîne //twitch.tv/<?= $row['name'] ?> quand tu génères dynamiquement le lien.

            La page ? Mais justement tu n'as pas un fichier par personne (ou peu importe la ressource), ça tombe sur un script qui la gère dynamiquement en fonction de la ressource (une requête SELECT pour remonter les infos correspondantes). Tu n'as peut être plus de variable $_GET, du moins au départ, mais ça se traite exactement de la même façon.

            -
            Edité par julp 5 juillet 2020 à 19:10:31

            • Partager sur Facebook
            • Partager sur Twitter
              4 octobre 2020 à 22:21:04

              Bonjour.

              Je reviens vers vous longtemps après avoir posé ma question car j'ai enfin essayé de faire de la manière que vous m'aviez conseillé.

              Or lorsque je redirige avec un <a> vers une url telle que : "site_test.fr/aristide", cela ne fonctionne pas car il ne trouve pas le dossier sur le serveur, évidemment ... Je ne sais donc pas comment faire ce que vous m'aviez dit, pour l'instant j'ai essayé de modifier mon index.php (sans résultat), et j'aurais souhaité que vous m'éclairssiciez sur ce qui a été dit.

              Par exemple, où est-ce que j'utilise la variable super globale $_REQUEST, ou encore, comment faire en sorte que le serveur ne me dise pas que l'url n'existe pas ?

              Merci pour votre temps

              Cordialement

              Aristide

              -
              Edité par AristideProriol 4 octobre 2020 à 22:22:20

              • Partager sur Facebook
              • Partager sur Twitter
                4 octobre 2020 à 22:35:24

                Il te faut une réécriture d'URL ou un FallbackResource (Apache sinon try_files pour nginx, etc).

                On ne peut pas non plus te donner une solution clé en main, ça dépend du serveur http (en dév comme prod), ce que tu veux précisément (ou non !) faire, etc.

                Essayons, pour point de départ :

                1. créer un fichier .htaccess qui contient FallbackResource /index.php
                2. dans ce fichier index.php (à la racine), afficher (echo/var_dump) $_SERVER['REQUEST_URI'] sachant qu'ensuite en fonction de sa valeur (= tu peux faire des if/else if/else, switch/case, utiliser un tableau ou encore faire une requête SQL avec la clause WHERE qui va bien) pour générer une page différente suivant l'URL

                -
                Edité par julp 4 octobre 2020 à 22:48:58

                • Partager sur Facebook
                • Partager sur Twitter

                Récupérer des données dans l'URL sans $_GET

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown