Iframe et variable PHP

Résolu/Fermé
Utilisateur anonyme - 4 juin 2015 à 19:44
 Utilisateur anonyme - 6 juin 2015 à 14:16
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

NHenry Messages postés 15117 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 10 mai 2024 331
4 juin 2015 à 19:59
Dans accueil.php, si utilisateur non identifié, rediriger vers index.php.
0
Utilisateur anonyme
4 juin 2015 à 20:05
Bonjour,

Comment dois-je l'identifié ?

Cordialement,
0
NHenry Messages postés 15117 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 10 mai 2024 331
4 juin 2015 à 22:55
Comme tu le fais dans index.php.
0
Utilisateur anonyme
6 juin 2015 à 13:36
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
jordane45 Messages postés 38173 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 4 665
4 juin 2015 à 23:03
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
Utilisateur anonyme
4 juin 2015 à 23:24
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
Utilisateur anonyme
5 juin 2015 à 14:13
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
Utilisateur anonyme
6 juin 2015 à 14:16
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