Iframe et variable PHP

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

J'ai un site structuré de cette façon : http://img15.hostingpics.net/pics/653001Sanstitre.png

J'aimerais que l'utilisateur soit obliger de se connecter au fichier index.php pour pourvoir voir le contenue du fichier accueil.php (qui se trouve dans l'iframe). Malheureusement, si l'utilisateur connait le nom du fichier "accueil.php", il pourra y accéder via l'URL sans passer par l'index.php

Y a t-il un moyen de bloquer cela pour que l'utilisateur soit obliger de se connecter au fichier index.php ?

Cordialement,

4 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Dans accueil.php, si utilisateur non identifié, rediriger vers index.php.
    0
    1. Utilisateur anonyme
       
      Bonjour,

      Comment dois-je l'identifié ?

      Cordialement,
      0
    2. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      Comme tu le fais dans index.php.
      0
    3. Utilisateur anonyme
       
      Bonjour,

      Dans l'index.php, je ne l'identifie pas. Donc je ne comprends pas trop votre démarche que je dois suivre.

      Cordialement,
      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    matmatdu61 n'a pas parlé d'authentification sur son site ....
    je pense que ce qu'il cherche est simplement l'utilisation d'un fichier htaccess
    https://www.commentcamarche.net/contents/7-apache-les-fichiers-htaccess

    Une autre possibilité est de stocké dans une variable de SESSION le fait que l'utilisateur est bien passé (ou non) par la page index.php pour afficher sa page accueil.php ...

    Par exemple :
    dans la page index.php
    
    
    //démarrage des sessions
    session_start();
    
    $_SESSION['fromindex'] = true;
    


    Dans la page accueil :
    //démarrage des sessions
    session_start();
    
    // récupération de la variable de session
    $fromindex = isset($_SESSION['fromindex'])?true:NULL;
    
    // si elle $fromindex  = true ...
    // Tu affiches ton IFRAME
    if(!$fromindex ){
    
      //ici tu places le code de ton iframe  
    
    
    }else{
     echo "Merci de passer par la page index.php";
    }
    


    ... mais la solution du fichier htaccess est la plus sûr ...
    car sinon.. une fois l'utilisateur passé par la page d'accueil .. rien ne l'empechera d'accéder directement à ta page accueil même sans passer par l'iframe !

    0
    1. Utilisateur anonyme
       
      Bonjour,

      Oui j'ai testé avec une variable session, mais comme vous l'avez dis, si il passe une fois, rien ne l'empêche après de ne plus y passer.

      Je vais regarder le htaccess et je vous redis.

      Merci déjà pour votre aide.
      0
  3. Utilisateur anonyme
     
    Bonjour,

    J'ai testé le .htaccess, sauf celui-ci bloque le fichier tout le temps (A moins que j'ai mal utilisé les permissions).

    J'ai trouvé un système en javascript qui permet d'envoyé un 'message' d'un fichier à un autre. Ça fonctionne sauf la fonction qui reçoit le message ne s'exécute juste si un message est envoyé.

    Index (j'envoie le message à l'iframe) :
    document.getElementById("iframe").contentWindow.postMessage("test", "http://localhost");

    Accueil (si il y a un message, la fonction s'exécute et affiche ce message dans une alert) :
    function listener(event) {
    if(event.origin !== "http://localhost") { return; }
    alert(event.data);
    }

    if (window.addEventListener) {
    addEventListener("message", listener, false);
    } else {
    attachEvent("onmessage", listener)
    }

    Si l'utilisateur vient de index.php, je vais bien le savoir via le l'alert. Sauf si celui-ci ne vient pas de l'index.php, je ne reçois rien, donc je ne le sais pas. Est-il possible de savoir si une fonction c'est bien exécuter ou non ? Car en plus de ça, la function listener ne s'exécute pas dans l'ordre d'appel.

    Cordialement
    0
  4. Utilisateur anonyme
     
    Bonjour,

    Beaucoup plus simple : regarder si l'iframe a un parent.

    Pour ceux que ça intéresse, je vous mets le code :
    window.onload = function() {
    var isInIFrame = (window.location != window.parent.location);
    if(isInIFrame==true){
    alert('oui');
    }
    else {
    alert('non');
    }
    }


    Merci de votre aide.
    0