J'utilise un index.php pour contrôler l'accès aux pages.Autorisation d'accès et chemin de fichier dans php
Voici le mécanisme:
index.php redirige la page search.php; Code: index.php/?page=search
le chemin de search.php est: pages/search.php
, search.php comprend header.html, body.html etc.
Maintenant en body.html nous appelons search.php à l'aide: paramètre index.php/?page=search
et body.html inclut ce code: index.php/?page=search?query='.quote_replace(addmarks($query)).
Vous pouvez voir qu'il y a deux '?'. Et c'est juste ce problème.
Lorsque j'examine search.php, il affiche l'adresse URL: example.com/?page=search
.
Lorsque je clique sur le bouton dans search.php alors que dans body.html, il affiche dans l'URL example.com/index.php/?query=&search=1
. De cette manière, le navigateur affiche simplement la page index.php. Mais je veux afficher le résultat de la recherche dans search.php, et il devrait afficher example.com/?page=search/?query=&search=1
. Mais vous pouvez voir /?page=search
disparaît et apparaît ici.
Je suis désolé, la condition est complexe et je ne le décris pas très bien. Si vous ne comprenez pas très bien, je vais vous expliquer.
Alors, avez-vous des conseils à ce sujet? Merci beaucoup.
@thanks Wim, mais je n'ai pas utilisé cette fonction. Je vais essayer. –
@Wim, Votre conseil est si bon. Ai-je besoin d'utiliser urlencode et http_build_query ensemble? Je suis désolé, je ne l'ai jamais utilisé auparavant. Et je n'ai aucune idée maintenant. –
Vous pouvez également utiliser 'urlencode' pour le second cas et construire vous-même la chaîne de requête, mais' http_build_query' est beaucoup plus simple. Et dans tous les cas, vous devrez faire deux jeux de codage sur les mêmes données, car il sera également * décodé * deux fois (une fois que la valeur de * page * est lue, et une fois de nouveau lorsque * requête * et * recherche * sont lus). – Wim