Rediriger une page

Fermé
texas24 - 25 nov. 2015 à 09:28
 Utilisateur anonyme - 26 nov. 2015 à 14:43
Bonjour,

Je n'arrive à conserver la cohérence des url
j'ai différent fichier php à plusieurs niveau des mes dossiers

Exemple :
Dossier1\Dossier2\Page -> Va chercher DossierA\DossierB\Page (j'utilise include)
ou
Dossier1\Dossier2\Page -> ouvre la page DossierA\DossierB\Page (j'utilise include)
ou
DossierA\DossierB\Page -> ouvre la page DossierA\DossierB\Page (j'utilise include)

Soit ça ne trouve pas, soit ça donne DossierA\DossierB\DossierA\DossierB\Page

Je suis à l'adresse 127.0.0.1/projet/DossierA/DossierB/Page et je veux retourner à http://127.0.0.1/projet
$_SERVER['HTTP_REFERER'] = http://127.0.0.1/projet
et quand je fais include : include($_SERVER['HTTP_REFERER']);
réponse du navigateur : Warning: include(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in C:\wamp\www\projet\...

Merci de votre aide, j'ai vraiment besoin de comprendre comment construire mes url

Comment faire que mes chargements de pages soit toujours depuis la racine de mon site ?

Bonne journée

3 réponses

Bonjour

Tu confonds les accès internet (http) et le système de fichiers du serveur.
Le "include" est fait pour aller chercher des fichiers dans le serveur, donc sur la même machine que ton script. Il n'utilise pas internet, donc pas de http:donc pas de $_SERVER['HTTP_REFERER'].
En fait la possibilité existe en php mais n'a pas été validée dans ta configuration comme l'indique le message d'erreur. Ne cherche pas à modifier ta configuration, tu n'as pas besoin de cette fonctionnalité.
Pour les include, il faut utiliser un chemin (dossier) du système de fichiers du serveur. Le dossier qui contient la racine de ton site est accessible par la variable $_SERVER['DOCUMENT_ROOT'] qui devrait être la base de tous les fichiers dans tes include. Fais un echo $_SERVER['DOCUMENT_ROOT'] pour te rendre compte
Les include se font avec des noms de fichiers, pas des url. Les url servent pour les liens et les redirections.
1
Merci de l'information.
donc dans mon cas ce n'est pas include qu'il me faut mais autre chose.
grace au message je viens de comprendre mon erreur sur le include
que dois-je utiliser pour ouvrir une nouvelle page ?
0
Utilisateur anonyme
26 nov. 2015 à 12:19
dans mon cas ce n'est pas include qu'il me faut
Ce n'est pas ce que j'ai dit. Je ne sais pas ce que tu cherches à faire, et j'avais pensé que si tu avais mis include, c'était que tu avais besoin de include.

Qu'entends-tu vraiment par "ouvrir une nouvelle page" ? Remplacer la page actuelle par une autre ? Normalement, ceci se fait quand le visiteur de ton site clique sur un lien (balise <a>) ou sur un bouton qui déclenche du javascript.
0
quand je fais
<form method="post" action="vue/check.php">
et que l'utilisateur fait <input type="submit" value="Valider" />
je perd la session, les globals
0
Utilisateur anonyme
26 nov. 2015 à 14:43
Les formulaires sont aussi un autre moyen de changer de page, même si ce n'est pas leur finalité.

Que tu perdes les global, il n'y a rien de plus normal. Quand tu envoie un formulaire ou que tu cliques sur un lien, tu déclenches un nouveau script. Même si c'est éventuellement le même script, c'est une autre instance (exécution) du script, et, globales ou pas, les variables sont perdues.
Sauf les variables de session (c'est leur rôle) que tu devrais pouvoir récupérer dans le nouveau script. Ce n'est pas normal que tu ne les récupères pas. Le plus plausible, c'est que tu n'as pas mis
session_start();
au début de chacune de tes pages. L'as-tu bien mis ?
0