[RESOLU] index.php?monmot=route&mot=Rechercher

Eléphant du PHP | 153 Messages

30 mai 2019, 20:52

Bonjour les amis PhpFrance.

Voilà j'aimerais récupérer le nom dans un lien
J'ai bien compris qu'il fallait faire ça :

index.php?monmot=route&mot=Rechercher

Code : Tout sélectionner

$NomUrl= pathinfo($_SERVER['PHP_SELF'],PATHINFO_FILENAME); $Extension= pathinfo($_SERVER['PHP_SELF'], PATHINFO_EXTENSION);
Il m'affiche bien ce que je lui demande
Exemple : Index.php
$NomUrl va me donner : index
$Extension va me donner : php

Par contre lorsque je veux mettre ce lien : exemple.html
Là il ne marche pas le $NomUrl me donne : index
et $Extension me donne php

Attention je ne veux pas utiliser .htaccess

Merci pour votre aide ;)

Mammouth du PHP | 2703 Messages

30 mai 2019, 22:30


Avatar du membre
Mammouth du PHP | 1609 Messages

30 mai 2019, 23:10

Bonsoir jefekoi, pourquoi n'écris tu pas simplement le nom du fichier en dur ?
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

31 mai 2019, 06:03

Bonjour, Saian et merci à Or 1
Disons que j'ai déjà fait pleins de fichiers xml pour google (l’alphabet) avec des liens html c'est pour ce que tu sais. ... courir.html ... chanter. html etc ....
J'avais pensé de faire http:....../courir : http:....../chanter : etc ....

Qu'est ce que tu en penses ?

bonne journée

Eric

Avatar du membre
Mammouth du PHP | 1609 Messages

31 mai 2019, 09:51

Désolé mais en fait je comprends pas bien la problématique.
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

31 mai 2019, 12:22

Dans mon formulaire je voudrais récupérer :

Soit un lien html. Exemple : /parler.html (==> pour obtenir "parler")
Soit la variable monmot. Exemple : index.php?monmot=conduire (==> pour obtenir "conduire")

Voilà ce que j'aimerais faire.

Eric

Avatar du membre
Mammouth du PHP | 1609 Messages

31 mai 2019, 14:31

Tu veux récupérer un lien, qu'est ce que tu entends par là ? quand tu cliques le lien, dans la page qui est appelée tu veux récupérer le lien c'est ça ? soit la page existe vraiment et donc vu que t'es dedans ben le nom de la page tu le connais, soit t'as de la réécriture d'url (la page parler.html n'existe pas réellement) et donc le nom du paramètre $_GET dépend de la règle de réécriture qui doit être dans le htaccess.

Le paramètre monmot qui est dans l'url après le ? ça se récupère via la super global $_GET qui est un tableau associatif de tous les paramètres passés en méthode GET. Ça se lit comme ça : $_GET['monmot']
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

31 mai 2019, 16:34

J'ai deux sites le premier a des liens (liens html) se dirigeant vers le second et c'est sur le second que je veux récupérer le nom exemple ..../parler.html je voudrais récupérer "parler"

Eléphant du PHP | 153 Messages

31 mai 2019, 16:40

J'avais fais comme ça mais ce n'est pas bon pour récupérer le nom du lien en html

Code : Tout sélectionner

$NomUrl= pathinfo($_SERVER['PHP_SELF'],PATHINFO_FILENAME); // affiche index $Extension= pathinfo($_SERVER['PHP_SELF'], PATHINFO_EXTENSION); //affiche php if (isset($_GET['monmot'])<>"") {$motBrut=$_GET['monmot'];}

Avatar du membre
Mammouth du PHP | 1609 Messages

31 mai 2019, 17:16

Ok alors il faut que tu regardes dans le HTTP_REFERER car le PHP_SELF concerne le script qui est en train de s'exécuter et non pas le page depuis laquelle il a été appelé. ;)
Attention HTTP_REFERER n'est définit que si tu arrives sur la page depuis un lien. Si tu accèdes directement à la page l'index n'existe pas.
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

01 juin 2019, 08:50

J'ai testé et ceci à l'air de marcher, dis moi ce que tu en penses
J'ai dérivé par rapport à ce que tu me propose mais je n'ai pas trouvé d'autres solutions

Code : Tout sélectionner

$file = basename($_SERVER['REQUEST_URI']); $extension = pathinfo($file, PATHINFO_EXTENSION); if (substr($extension, 0, 3)=="php"){ echo "oui php";} if ($extension=="html") {echo "oui html";}
Avec ça il me reste plus qu'a récupérer soit la variable $_GET['monmot'] soit le nom dans le html "parler.html"

Eléphant du PHP | 153 Messages

01 juin 2019, 09:15

ou cette deuxième solution :

Code : Tout sélectionner

$path_parts = pathinfo(basename($_SERVER['REQUEST_URI'])); $resultat=$path_parts['filename']; // depuis PHP 5.2.0 if ($resultat=="index") {$monmot= $_GET['monmot'];} if ($resultat<>"index") {$monmot= $resultat;}

Eléphant du PHP | 153 Messages

01 juin 2019, 09:55

Superbe ça marche bien, tu iras tester si tu le veux bien :)

Avatar du membre
Mammouth du PHP | 1609 Messages

01 juin 2019, 10:55

Héhé je viens de tester ça et je vois que ça marche impeccable. +la petite dédicace ;)
Beau travail ! j'ai testé quelques anagrammes trouvés sur le web et ta base semble bien complète.

PS : et donc tu as bien une réécriture d'url et effectivement dans ton cas c'est pas le HTTP_REFERER ni le PHP_SELF qui t'intéressaient mais bien le REQUEST_URI. :)
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

01 juin 2019, 12:21

J’attendais ta réponse pour mettre résolu :)

Une fois de plus merci à toi ;)

Eric