Rediriger une iframe dans sa page d'origine

Petit nouveau ! | 6 Messages

11 oct. 2005, 00:05

Bonjour, :)

Impossible de trouvé de reponse à mon probleme sur les autres "post".
(ex de "post" : http://www.webrankinfo.com/forums/viewtopic_5823.htm, proche de la reponse que je recherche (dur de tout comprendre) )

Voila, j'ai une page "index001.php", qui contient :
- une iframe "vierge.php" (nom de l'iframe : "photo")

Je cherche a faire en sorte que quand je lance une page seul
(exemple : cp0006.php) , elle soit redirigé vers l'iframe nommé "photo" de l' "index001.php"...

--------------------------------------------
pour le fichier cp0006.php :
--------------------------------------------
<html> 
<head> 
<title>Page cp0006</title> 

<?php $cpfile = basename(__FILE__,'.php') ?>
<script type="text/javascript"> 
if (parent.frames.length < 1) 
{ 
window.location.href ="index001.php?i=<?php echo $cpfile; ?>" ; 
} 
</script>
</head> 
<body> 
<p>page cp0006</p> 
</body> 
</html>
--------------------------------------------
pour le fichier index001.php :
--------------------------------------------
<html> 
<head> 
<title>Page d'index</title> 
</head> 
<body onload="window.photo.location.href = '<?php echo $_GET['i']; ?>.php';"> 
<p>Page d'index</p> 
<iframe width="99%" height="1300" src="vierge.php" frameborder="0" vspace=0 scrolling=no name=photo></iframe> 
</body> 
</html> 
--------------------------------------------

Si je lance seul cp0006.php, ca marche, il est redirigé...

Mais si je lance seul index001.php,
l'iframe nommé "photo" ne lance rien (ca ne fonctionne pas !!!)

Je suis obligé de taper : index001.php?i=vierge

Avez vous une idée pour que je ne soit pas obligé de tapé "?=vierge" ???

MERCI D'AVANCE
Modifié en dernier par g2lyon le 12 oct. 2005, 14:51, modifié 8 fois.

Mammouth du PHP | 568 Messages

11 oct. 2005, 12:18

Ton soucis viens du fait qu'au chargement de index001.php, tu as glissé un onLoad dans le body... Du coup, l'iframe photo charge obligatoirement ce que tu lui donne dans $_GET["i"]... Comme il est vide => erreur !

Donc, vérifies l'existence de $_GET["i"]... S'il n'existe pas, tu charges vierge.php, sinon la page adequat...

De plus, ton <?php echo $_GET['i']; ?> peux directemetn être mis à la place du src de l'iframe...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Petit nouveau ! | 6 Messages

11 oct. 2005, 13:37

Donc, vérifies l'existence de $_GET["i"]... S'il n'existe pas, tu charges vierge.php, sinon la page adequat...

De plus, ton <?php echo $_GET['i']; ?> peux directemetn être mis à la place du src de l'iframe...
Oui mais comment vérifie-on l'existance de $_GET["i"]...

En tapant en php ? :

if ($_GET["i"] == "") (si $_GET["i"] est egal à rien)
{
i=vierge
}

C'est Ca ???

Mammouth du PHP | 568 Messages

11 oct. 2005, 13:50

Regarde la fonction isset().
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Petit nouveau ! | 6 Messages

11 oct. 2005, 17:06

J'ai essayer ceci dans index001.php, mais ca ne fonctionne pas :? :cry:

<?php
if isset($_GET['i'] == NULL)
{
$_GET['i'] = "vierge";
}
?>

Mammouth du PHP | 568 Messages

11 oct. 2005, 17:12

Et c'est tout à fait normal... Tu fais une mauvaise utilisation de la fonction isset()... Regarde mieux la documentation... La fonction isset() doit être utilisée avec un ou plusieurs paramêtres... Et elle te retournera True si la variable est définies, False si elle ne l'est pas...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Petit nouveau ! | 6 Messages

11 oct. 2005, 17:23

Avec seulement un mois de PHP en autodidacte, là, je ne comprends plus rien... :? :oops:
De plus, et même si j'essaye de les utiliser, les variables comme $_GET['i'] et isset() ressemble pour moi a du japonnais...
Le manuel PHP est très bien , mais il y a pas assez d'exemple pour que je puisse comprendre... ce n'est pas de la mauvaise Volonté... :oops: Désolé... :oops:
Modifié en dernier par g2lyon le 12 oct. 2005, 09:33, modifié 2 fois.

Mammouth du PHP | 568 Messages

11 oct. 2005, 17:59

Ne t'inquiètes pas...

isset() est une fonction qui appel des paramètre. Ces paramètres sont les variables dont on veux tester l'existance...

dans ton cas donc, il faut en fair eappel par isset($_GET["i"])...

Avec le test :
if(isset($_GET["i"])==TRUE)
ou FALSE comme tu le souhaites...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Petit nouveau ! | 6 Messages

12 oct. 2005, 08:11

:D Youpi !!!
Alors là, un très grand Merci à toi... :wink:
Cela faisait 3 ans que je cherchais une solution de redirection d'une iframe dans sa page d'origine...
Mais à l'époque je debutais en HTML.

------------------------------------------------
Pour aider les futurs débutants PHP (comme moi) qui viendront sur ce post, Voici le corrigé de la page index001.php :
------------------------------------------------
<html> 
<head> 
<title>Page d'index</title> 

<?php
if(isset($_GET['i'])==FALSE)
	{
		 $_GET['i'] = 'vierge';
	}
?>
</head> 
<body> 
<p>Page d'index</p> 
<iframe width="99%" height="1300" src="<?php echo $_GET['i']; ?>.php" frameborder="0" vspace=0 scrolling=no name=photo></iframe> 
</body> 
</html> 
Une dernère petite question qui concerne toujours ce post :

Dans le fichier cp0006.php, il reste un script

Code : Tout sélectionner

<script type="text/javascript"> if (parent.frames.length < 1) { window.location.href ="index001?i=<?php echo $cpfile; ?>" ; } </script>


Puis-je le remplacer par un language en PHP ?

J'ai deja essayé de remplacer le script par :
<?php
if (parent.frames.length < 1)
{
header("Location: index001.php?i=<?php echo $cpfile; ?>");
}
?>

Mais cela ne fonctione pas correctement...
le PHP n'a pas l'air de fonctionner pareil que en javascript pour la fonction if(parent... < 1).
Modifié en dernier par g2lyon le 12 oct. 2005, 10:07, modifié 3 fois.

Mammouth du PHP | 19672 Messages

12 oct. 2005, 08:39

Non, attention, le JavaScript et le PHP ne sont pas interprétés du même coté: le JavaScript l'est par le navigateur, donc coté client, le PHP l'est coté serveur. PHP ne capte donc pas les évènements ni ne fait les iens avec des chemins du DOM (Document Object Model) JavaScript.

En outre, tu veux faire une redirection, mais il semble que dans ton cas, il y a déjà des données qui ont été envoyées au navigateur, tu ne pourras donc pas utiliser la fonction header() sans te faire jeter.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: