Charger URL avec PHP
Marilyne
-
MastercroW Messages postés 1094 Date d'inscription Statut Membre Dernière intervention -
MastercroW Messages postés 1094 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veux empêcher l'utilisateur d'accéder directement à certaines pages de mon site... s'il n'est pas "loguer".
Alors, je fais le test suivant :
if(!isset($_SESSION['login'])) // Session pas ouverte
header("location:index.php"); // Rediriger vers page connexion
Cependant, j'ai certaine pages qui ne sont utilisées avec la fonction include()...
Je ne peux donc pas utiliser la fonction header puisqu'il y a déjà du code HTML d'inscrit dans le fichier qui appelle le include...
Existe-t-il une autre fonction php qui permet d'ouvrir un URL...
Que me suggérez-vous ? Enlever les include() ???
Merci de vos conseils,
Marilyne
Je veux empêcher l'utilisateur d'accéder directement à certaines pages de mon site... s'il n'est pas "loguer".
Alors, je fais le test suivant :
if(!isset($_SESSION['login'])) // Session pas ouverte
header("location:index.php"); // Rediriger vers page connexion
Cependant, j'ai certaine pages qui ne sont utilisées avec la fonction include()...
Je ne peux donc pas utiliser la fonction header puisqu'il y a déjà du code HTML d'inscrit dans le fichier qui appelle le include...
Existe-t-il une autre fonction php qui permet d'ouvrir un URL...
Que me suggérez-vous ? Enlever les include() ???
Merci de vos conseils,
Marilyne
A voir également:
- Charger URL avec PHP
- Url - Guide
- Easy php - Télécharger - Divers Web & Internet
- Comment changer url iptv - Forum Créer un site
- Atlas pro url serveur invalide - Forum TV & Vidéo
- Comment trouver l'url de IPTV ? ✓ - Forum Box et Streaming vidéo
7 réponses
La solution avec la balise META est mauvaise.
Car si on a une page "suppression.php" qui s'occupe de supprimer toute la base de données, par exemple, et que n'importe qui s'y connecte, il sera redirigé instantanément mais le code php s'executera quand même: la base de donnée sera supprimée.
C'est le problème d'un redirection qui se passe du côté du client.
De plus, si quelqu'un fait view-source:http://monsite.com/suppression.php
Il verra tout le code de la page html produite.
La solution de kij_82 est la bonne car elle empêche l'exécution de code PHP et la lecture du code source.
Car si on a une page "suppression.php" qui s'occupe de supprimer toute la base de données, par exemple, et que n'importe qui s'y connecte, il sera redirigé instantanément mais le code php s'executera quand même: la base de donnée sera supprimée.
C'est le problème d'un redirection qui se passe du côté du client.
De plus, si quelqu'un fait view-source:http://monsite.com/suppression.php
Il verra tout le code de la page html produite.
La solution de kij_82 est la bonne car elle empêche l'exécution de code PHP et la lecture du code source.
MastercroW
Messages postés
1094
Date d'inscription
Statut
Membre
Dernière intervention
163
Très bonne reflexion sur les balises META !
Salut,
Tu as bien la redirection Javascript, mais il suffit de desactiver le javascript pour l'éviter....
Sinon tu as aussi le meta refresh en html...(mais là encore, je me demande si ça marche en dehors du <head>....)
En solution de secours, tu peux toujours terminer la page avec die() et faire une redirection javascript tout en inscrivant un lien vers la page que tu veux rediriger. Comme ça même si la personne a desactivé le Javascript, elle pourra cliquer sur le lien....
Tu as bien la redirection Javascript, mais il suffit de desactiver le javascript pour l'éviter....
Sinon tu as aussi le meta refresh en html...(mais là encore, je me demande si ça marche en dehors du <head>....)
En solution de secours, tu peux toujours terminer la page avec die() et faire une redirection javascript tout en inscrivant un lien vers la page que tu veux rediriger. Comme ça même si la personne a desactivé le Javascript, elle pourra cliquer sur le lien....
Moi je pense que c'est une question d'organisation du site, je parle point de vus arborescance de ton répertoire de travail. De toute façon, même avec des include tu peux toujours rediriger l'utilisateur : il te suffit de programmer d'une certaine facon : Par exemple, si tu veux afficher qqchose en fonction d'une action d'un utilisateur, ta page ressemblera à cela :
Mais tu peux laiser ton test au début de fichier, de cette facon, tu paeux afficher plusieur chose sans changer de fichier et que ton test soit effectif.
++
// Ici ; if(! isset($_SESSION['valid_user'])) header("location: bidule.php"); if(action == truc ) { include "monFormulaire1.php"; } else { include "présentationDeLaPage.php"; }
Mais tu peux laiser ton test au début de fichier, de cette facon, tu paeux afficher plusieur chose sans changer de fichier et que ton test soit effectif.
++
De même, si tu veux faire des traitements et des formulaires :
code de "page.php" :
Et dans ton formualaire la redirection sera la suivante :
code de "page.php" :
if(! isset($_SESSION['valid_user'])) header("location: bidule.php"); if( $_POST['val'] == 1 ) { include "traitement.php"; } else if( $_POST['val'] == 2) { echo "Vous avez répondu coorectement au formulaire !"; } else { include "formulaire.php"; }
Et dans ton formualaire la redirection sera la suivante :
<FORM action=page.php?val=1" .... </ccode> Dans le fichier traitement.php :if( tout les traitement sur le formulaire sont bon) header("location: page.php?val=2");
Voilà, ca répond ou probleme ?
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai eu une solution par un internaute, et elle fonctionne bien.
J'ai eu le même problème qui m'a cassé la tête pendant plusieurs jours.
Remplace le
header('Location: mapage.php');
par
die('<META HTTP-equiv="refresh" content=0;URL=mapage.php>');
GrosLolo.
Je dirais donc merci GrosLolo
Enrique.
J'ai eu le même problème qui m'a cassé la tête pendant plusieurs jours.
Remplace le
header('Location: mapage.php');
par
die('<META HTTP-equiv="refresh" content=0;URL=mapage.php>');
GrosLolo.
Je dirais donc merci GrosLolo
Enrique.
C'est simple, en effet la balise meta refresh marche bien en dehors de <head></head> ;)
donc sa donne sa :
f(!isset($_SESSION['login']))
echo"<META http-equiv=\"refresh\" content=\"0; URL=index.php\">";
Voila ^^
Heu je crois que ça marche pas avec des simple quote pour le echo ! A tester mais je promet rien !
donc sa donne sa :
f(!isset($_SESSION['login']))
echo"<META http-equiv=\"refresh\" content=\"0; URL=index.php\">";
Voila ^^
Heu je crois que ça marche pas avec des simple quote pour le echo ! A tester mais je promet rien !
C'est simple, en effet la balise meta refresh marche bien en dehors de <head></head> ;)
donc sa donne sa :
f(!isset($_SESSION['login']))
echo"<META http-equiv=\"refresh\" content=\"0; URL=index.php\">";
Voila ^^
Heu je crois que ça marche pas avec des simple quote pour le echo ! A tester mais je promet rien !
Salut ;)
donc sa donne sa :
f(!isset($_SESSION['login']))
echo"<META http-equiv=\"refresh\" content=\"0; URL=index.php\">";
Voila ^^
Heu je crois que ça marche pas avec des simple quote pour le echo ! A tester mais je promet rien !
Salut ;)