[PHP] Variable et href avec include existant

Résolu/Fermé
Hohenheim Messages postés 2 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 24 janvier 2008 - 24 janv. 2008 à 10:14
Hohenheim Messages postés 2 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 24 janvier 2008 - 24 janv. 2008 à 10:53
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

3 réponses

croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
24 janv. 2008 à 10:40
Ne serait-ce pas plutôt $_SERVER['PHP_SELF'] ?

Tu trouveras destonnes d'explications sur PHP_SELF avec Google
0
Xil Messages postés 350 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 11 juin 2009 257
24 janv. 2008 à 10:45
Quelle était la syntaxe quand tu as essayé de rajouter le ?commande ?
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)
0
Hohenheim Messages postés 2 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 24 janvier 2008
24 janv. 2008 à 10:53
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 !!!
0