[PHP] Variable et href avec include existant
Résolu
Hohenheim
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Hohenheim Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Hohenheim Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous !
Alors me voilà nouveau, j'inaugure mon compte, j'espère ne pas m'attirer les foudres de certains je risque de faire des boulettes !
Je développe en ce moment un site web, je fouine a droite a gauche, je recupère de très bon morceaux de code, j'optimise je met en place etc...Pas de soucis ! Jusqu'a mon problème, cette fois je m'en sors pas seul...
Donc désolé pour le petit préambule, voici le plus concret :
J'ai une page d'administration qui comporte deux parties :
- La première, un include d'un fichier menu avec tous les liens nécessaires
- La seconde, un autre include, en fonction du lien cliqué dans le menu
Rien d'extraordinaire pour le moment. Mon souci c'est que j'ai une page incluse (dans la deuxième partie donc) qui comporte un morceaux de code super que j'ai récupéré, il permet d'afficher le contenu de ma BD en page par page (Precedent - 1 - 2 - 3 - 4 - Suivant).
Les liens qui se trouvent sur "Précédent", les chiffres, et "Suivant" se présentent ainsi :
echo "<a href=\"$PHP_SELF?page=$precedent\">Precedent</a>";
echo "<a href=\"$PHP_SELF?page=$i\">sj</a>";
echo "<a href=\"$PHP_SELF?page=$suivant\">Suivant</a>";
Hors le hic, c'est que lorsque je clique sur un de ces liens, je passe pas a la page voulue, je tombe sur la page incluse par défaut de mon menu (j'ai protégé mon include avec un tableau de valeur autorisée).
Avant de cliqué mon url se termine ainsi : admin.php?commande=SuspRetaConst
SuspRetaConst étant une valeur autorisée dans mon include, et qui me permet d'avoir la page que je veux.
Après un clic elle devient ceci : admin.php?page=1
J'ai essayé de rajouter ?commande=SuspRetaConst dans les href, mais rien n'y fais, c'est plutot logique vu qu'il n'y a que "SuspRetaConst" d'autorisé dans mon tableau pour le include...
Mais je vais pas rentré toutes les valeurs possibles pour ?page dans mon tableau ca ferai tous les nombres de 1 à 100 au moins si je veux être tranquille, je suis sur que ce n'est pas une bonne solution, et qu'il y en a une pourtant !
Sinon étant donné que j'ai récuperer ce morceaux de code, je ne connais pas $PHP_SELF et je n'ai trouvé nulle part quelquechose qui l'explique, j'en ai déduit que ca pouvait être une commande pour faire s'appliquer une variable au code lui même, mais la n'est pas trop la question...
Qu'est ce que je dois faire dans mon href (ou ailleurs peut etre) pour réussir a passer la variable page sans que mon include protégé me fasse revenir en arriere ?
Je vous remercie d'avance pour votre aide, excusez moi si j'ai été long je voulais bien décrire le problème, c'est peut etre meme pas clair, mais je suis là pour plus d'info si il y a besoin !
Merci et bonne journée
Alors me voilà nouveau, j'inaugure mon compte, j'espère ne pas m'attirer les foudres de certains je risque de faire des boulettes !
Je développe en ce moment un site web, je fouine a droite a gauche, je recupère de très bon morceaux de code, j'optimise je met en place etc...Pas de soucis ! Jusqu'a mon problème, cette fois je m'en sors pas seul...
Donc désolé pour le petit préambule, voici le plus concret :
J'ai une page d'administration qui comporte deux parties :
- La première, un include d'un fichier menu avec tous les liens nécessaires
- La seconde, un autre include, en fonction du lien cliqué dans le menu
Rien d'extraordinaire pour le moment. Mon souci c'est que j'ai une page incluse (dans la deuxième partie donc) qui comporte un morceaux de code super que j'ai récupéré, il permet d'afficher le contenu de ma BD en page par page (Precedent - 1 - 2 - 3 - 4 - Suivant).
Les liens qui se trouvent sur "Précédent", les chiffres, et "Suivant" se présentent ainsi :
echo "<a href=\"$PHP_SELF?page=$precedent\">Precedent</a>";
echo "<a href=\"$PHP_SELF?page=$i\">sj</a>";
echo "<a href=\"$PHP_SELF?page=$suivant\">Suivant</a>";
Hors le hic, c'est que lorsque je clique sur un de ces liens, je passe pas a la page voulue, je tombe sur la page incluse par défaut de mon menu (j'ai protégé mon include avec un tableau de valeur autorisée).
Avant de cliqué mon url se termine ainsi : admin.php?commande=SuspRetaConst
SuspRetaConst étant une valeur autorisée dans mon include, et qui me permet d'avoir la page que je veux.
Après un clic elle devient ceci : admin.php?page=1
J'ai essayé de rajouter ?commande=SuspRetaConst dans les href, mais rien n'y fais, c'est plutot logique vu qu'il n'y a que "SuspRetaConst" d'autorisé dans mon tableau pour le include...
Mais je vais pas rentré toutes les valeurs possibles pour ?page dans mon tableau ca ferai tous les nombres de 1 à 100 au moins si je veux être tranquille, je suis sur que ce n'est pas une bonne solution, et qu'il y en a une pourtant !
Sinon étant donné que j'ai récuperer ce morceaux de code, je ne connais pas $PHP_SELF et je n'ai trouvé nulle part quelquechose qui l'explique, j'en ai déduit que ca pouvait être une commande pour faire s'appliquer une variable au code lui même, mais la n'est pas trop la question...
Qu'est ce que je dois faire dans mon href (ou ailleurs peut etre) pour réussir a passer la variable page sans que mon include protégé me fasse revenir en arriere ?
Je vous remercie d'avance pour votre aide, excusez moi si j'ai été long je voulais bien décrire le problème, c'est peut etre meme pas clair, mais je suis là pour plus d'info si il y a besoin !
Merci et bonne journée
A voir également:
- [PHP] Variable et href avec include existant
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Vba range avec variable ✓ - Forum VB / VBA
- Impossible d'afficher le rapport de tableau croisé dynamique sur un rapport existant - Forum Excel
3 réponses
Ne serait-ce pas plutôt $_SERVER['PHP_SELF'] ?
Tu trouveras destonnes d'explications sur PHP_SELF avec Google
Tu trouveras destonnes d'explications sur PHP_SELF avec Google
Quelle était la syntaxe quand tu as essayé de rajouter le ?commande ?
ou
?
Je demande car tu ne précise pas, et ca pourrait venir de là, quand il y'a plusieurs variables GET dans une Url, il faut les séparer par '&', le '?' ne sert qu'à séparer l'url de base des variables GET.
Pour $PHP_SELF, c'est en fait une variable serveur : $_SERVER['PHP_SELF'].
Si la directive register_globals est à ON dans le php.ini, alors on peut accéder à la variable directement par $PHP_SELF.
Pour des raisons de sécurité, il est préférable d'utiliser les tableaux superglobaux $_GET,$_POST, $_SERVER, $_REQUEST, $_ENV et $_COOKIES.
D'ailleurs, la directive register_globals sera abandonnée et supprimée dans PHP6
https://www.php.net/manual/fr/security.globals.php
https://www.php.net/manual/en/security.globals.php (pour le beau cadre d'alerte :p)
admin.php?commande=SuspRetaConst?page=1
ou
admin.php?commande=SuspRetaConst&page=1
?
Je demande car tu ne précise pas, et ca pourrait venir de là, quand il y'a plusieurs variables GET dans une Url, il faut les séparer par '&', le '?' ne sert qu'à séparer l'url de base des variables GET.
Pour $PHP_SELF, c'est en fait une variable serveur : $_SERVER['PHP_SELF'].
Si la directive register_globals est à ON dans le php.ini, alors on peut accéder à la variable directement par $PHP_SELF.
Pour des raisons de sécurité, il est préférable d'utiliser les tableaux superglobaux $_GET,$_POST, $_SERVER, $_REQUEST, $_ENV et $_COOKIES.
D'ailleurs, la directive register_globals sera abandonnée et supprimée dans PHP6
https://www.php.net/manual/fr/security.globals.php
https://www.php.net/manual/en/security.globals.php (pour le beau cadre d'alerte :p)
Merci beaucoup pour vos réponses ! L'éclaircissement sur le PHP_SELF est super !
Et effectivement je crois que j'ai utilisé deux fois "?" et non pas un "&" je vais essayer ca tout de suite et j'éditerai mon message en conséquence :)
--- EDIT ---
Bon et bien voilà :P Je me sens un peu bête mais j'ai modifié mes href ainsi :
echo "<a href=\"admin.php?commande=SuspRetaConst&page=$precedent\">Precedent</a>";
echo "<a href=\"admin.php?commande=SuspRetaConst&page=$i\">$j</a>";
echo "<a href=\"admin.php?commande=SuspRetaConst&page=$suivant\">Suivant</a>";
Tout marche pour le mieux c'est impécable !
Merci encore, rapidité, efficacité YouHou !!!
Et effectivement je crois que j'ai utilisé deux fois "?" et non pas un "&" je vais essayer ca tout de suite et j'éditerai mon message en conséquence :)
--- EDIT ---
Bon et bien voilà :P Je me sens un peu bête mais j'ai modifié mes href ainsi :
echo "<a href=\"admin.php?commande=SuspRetaConst&page=$precedent\">Precedent</a>";
echo "<a href=\"admin.php?commande=SuspRetaConst&page=$i\">$j</a>";
echo "<a href=\"admin.php?commande=SuspRetaConst&page=$suivant\">Suivant</a>";
Tout marche pour le mieux c'est impécable !
Merci encore, rapidité, efficacité YouHou !!!