[Résolu] Paramètres dans url
Bonjour,
Je dev un plugin et je rencontre un problème à la récupération des variables dans les url.
Le plugin utilise sont propre formulaire d'authentification lié à une base mysql. Je gère tout ça avec les sessions php et suivant le cas je génère les url pour accéder aux fonctions du plugin.
Exemple d'une url qui marche :
Une autre qui marche :
Et enfin une qui ne marche pas
Le problème intervient dès que j'ajoute un 2eme paramètre dans l'url.
J'ai poussé le test en écrivant les url moi même dans le code pour ne pas passer par urlRewrite mais le comportement est le même.
J'ai fais un test hors pluxml avec ce code :
Dans ce cas pas de comportement bizarre donc pour moi pas la config du serveur à remettre en cause (en passant c'est un debian jessie avec une installation par défaut dans un container docker).
Avez-vous une idée ?
Je dev un plugin et je rencontre un problème à la récupération des variables dans les url.
Le plugin utilise sont propre formulaire d'authentification lié à une base mysql. Je gère tout ça avec les sessions php et suivant le cas je génère les url pour accéder aux fonctions du plugin.
Exemple d'une url qui marche :
echo '<li><a href="'.$plxMotor->urlRewrite('?static18/portail').'">Tableau de bord</a></li>';
Ce qui donne : http://192.168.x.x:8080/index.php?static18/portail . Sur celle-ci c'est simple pas de GET à récupérer.Une autre qui marche :
echo '<li><a href="'.$plxMotor->urlRewrite('?static18/portail&p=stock').'">Consultation stock</a></li>';
Ce qui donne : http://192.168.x.x:8080/index.php?static18/portail&p=stock . La variable p est bien récupérable par $_GET.Et enfin une qui ne marche pas
echo '<td><a href="'.$plxMotor->urlRewrite('?static18/portail&p=panier&a=add&v='.$data['eancod']).'" title="Ajouter au panier">Ajouter au panier</a>'
Ce qui donne : http://192.168.x.x:8080/index.php?static18/portail&p=panier&a=add&v=3253560059293 . Avec celle-ci je suis automatiquement renvoyé à la page d'accueil et la session php saute.Le problème intervient dès que j'ajoute un 2eme paramètre dans l'url.
J'ai poussé le test en écrivant les url moi même dans le code pour ne pas passer par urlRewrite mais le comportement est le même.
J'ai fais un test hors pluxml avec ce code :
<?php
echo 'test';
echo 'a = '.$_GET['a'];
echo '<br>b = '.$_GET['b'];
?>
<br><a href="test.php">test 1</a>
<br><a href="test.php?a=2">test 2</a>
<br><a href="test.php?a=2&b=1">test 3</a>
Dans ce cas pas de comportement bizarre donc pour moi pas la config du serveur à remettre en cause (en passant c'est un debian jessie avec une installation par défaut dans un container docker).
Avez-vous une idée ?
J'ai un string de l'array
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
J'ai testé tes URL avec l'expression régulière ligne 154 de class.plx.motor.php pour PluXml 5.6, sur regex101.com.
Mais il n'y a rien d'anormal.
Tu as regardé dans les logs d'Apache si PHP ne génère pas une erreur ou en affichant le source de la page renvoyée (Ctrl-U dans le navigateur)
Le problème est de savoir où cela saute. D'où l'intérêt d'un déboggueur.
Si tu n'as pas de débogueur avec xdebug, tu peux utiliser cette astuce.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Je vais créer un autre plugin basique en essayant de reproduire le problème et si ça "marche" je pourrais le mettre à dispo pour test.
Pour télécharger le plugin de test : https://blogoflip.fr/mespartages/s/K3QiCD0eChKX4MK
Je réalise l'appel du plugin par une page statique qui à pour url "portail". Dans mon cas elle à l'id 18. Dans la page statique ajouter le code :
Dans le code, remplacer ?static18 par ?staticXX ou XX est l'id de votre page statique.
Pour accéder à la page saisissez directement l'url : http://votresite/index.php?staticXX/portail. Normalement un formulaire s'affiche, rentrer n'importe quoi comme infos (le nom d'utilisateur est une adresse mail). Une session php est lancée, un print_r($_SESSION) s'affiche et en dessous un petit menu qui permet de reproduire les cas.
Le 1er lien renvoie vers la page statique en ajoutant un paramètre dont la valeur est stock. Les deux suivants ajoutent des paramètres d'url a et v. Si vous avez le même problème que moi alors vous devez revenir à la page d'accueil et votre session a été supprimé.
P.S. : ne tenez pas compte de la propreté du code, c'est juste une version pour reproduire le problème.
J'ai un string de l'array
Un pauvre isset mal placé dans la récupération des variables GET.
Merci pour le temps accordé
J'ai un string de l'array