Rechercher : dans
Par :

Charger URL avec PHP

Dernière réponse le 2 sep 2009 à 11:28:29 Marilyne, le 21 avr 2005 à 05:44:29 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Charger URL avec PHP » dans :
[PHP] Transformer une URL en lien hypertexte cliquable VoirGrâce aux expressions régulières, il est possible de transformer en lien hypertexte toute URL de la forme http://URL (ou ftp://URL) ou bien commençant par www. :
PHP - Les classes VoirLa notion de classe Php3 intègre un soupçon de caractéristiques empruntées aux langages orientés objet, c'est-à-dire la possibilité d'utiliser des objets, entités regroupant des données et des fonctions au sein d'une structure et rendant la...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
Connexion à la base de données avec JDBC VoirConnexion à la base de données L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données : la création d'une connexion à la...

1

kilian, le 21 avr 2005 à 08:20:35
  • +1

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....

Répondre à kilian

2

kij_82, le 21 avr 2005 à 08:54:43
  • +1

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 :

// 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.

++ ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

3

kij_82, le 21 avr 2005 à 09:00:58

De même, si tu veux faire des traitements et des formulaires :

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 ?

++ ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

4

gaerebut, le 7 mar 2008 à 17:09:06

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 !

Répondre à gaerebut

5

gaerebut, le 7 mar 2008 à 17:10:24
  • +1

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 ;)

Répondre à gaerebut

6

 enry, le 2 sep 2009 à 11:28:29

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.

Répondre à enry