Frames + PHP

Répondre
Also know as
le 14/01/2007 à 20:13
Also know as
Bonjour,

Voilà j'ai fait ce petit script pour un test tout bête :

http://m.strasser.free.fr/Tests/

Il affiche deux fois la même page.

Il devrait logiquement vous écrire Au revoir.

Maintenant si vous faites :

http://m.strasser.free.fr/Tests/testperso.php

Il vous écrit toujours Au revoir, alors que logiquement il devrait écrire bonjour.

Voici le script de la page Testperso.php :

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
if (parent.frames.length < 1)
<?php $str = "Bonjour";?>
else
<?php $str = "Au revoir"; ?>
</SCRIPT>
</head>
<body>
<?php echo $str; ?>
</body>
</html>

Si quelqu'un peu m'expliquer d'où vient mon problème parce que là je comprend pas trop...

Merci d'avance
bibi
le 14/01/2007 à 20:29
bibi
Tu t'es totalement embrouillé entre le php et le javascript.

Regarde la source de ta page, je pense que tu comprendras tout seul :)
commit suicide
Also know as
le 14/01/2007 à 23:08
Also know as
Ben justement le problème c'est que oui ça pour m'être embrouillé je veux bien l'avouer ^_^.

Mais je ne comprend pas ou exactement...

Pour moi la seule chose que je lui dis c'est, s'il détecte une frame ou pas, il enregistre dans str quelque chose et ensuite l'affiche sur l'écran.

Donc je sais plus du tout là...
bibi
le 15/01/2007 à 00:12
bibi
ok on va voir ce qu'il se passe :)

Alors tout d'abord, ton serveur va voir que c'est une page php, il va la lire et ensuite il va interpréter l'html généré.


<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
if (parent.frames.length < 1)


Jusque la , il lit de l'html classique (pour lui c'est pas du php).

<?php $str = "Bonjour";?>

La il repère du php, il stock donc la chaine "Bonjour" dans la variable php $str. On continue l'analyse ...
else

Ici pour le "else" on est sorti des balises php, pour lui c'est du texte classique

<?php $str = "Au revoir"; ?>


La encore du php, il stock donc la chaine "Au revoir" dans la variable php $str.

</SCRIPT>
</head>
<body>

Ici de l'html de base, le parseur php lit pas.

<?php echo $str; ?>

Ici tu dis "afficher $str". or $str vaudra toujours "au revoir" car ton if et ton else ne sont pas pris en compte par php étant donné qu'ils ne sont pas dans des balises php. donc tu afficheras toujours la derniere chaine affectée a $str, donc ici "Au revoir".

</body>
</html>

de l'html classique.


Tu dois donc tout faire en javascript.

<SCRIPT LANGUAGE="JavaScript">
var str;
if (parent.frames.length < 1) {
str = "Bonjour";
}
else {
str = "Au revoir";
}</script>


et a l'endroit ou tu veux :

<script type="text/javascript">document.write(str);</script>



je suis pas du tout sur que ca marche jsuis pas une masse en javascript, mais c'est le principe.
commit suicide
Also know as
le 15/01/2007 à 17:41
Also know as
AH super ! Merci beaucoup pour ton explication, c'est tres sympa de ta part je comprend mieux mon erreur maintenant :-).

Mais une question, comment faire por tout faire en PHP alors ?

En fait je cherche a forcer l'affichage en frames.

Si les frames existe je veux qu'une page s'affiche sinon je veux qu'une autre s'affiche.

Ca je peux tout faire en HTML mais comment faire si la personne tente de la telecharger manuellement avec flahget par exemple, comment rediriger le telechargement lui meme ???

C'est poru cetet raison que j'essayais quelque chose en PHP, existe t-il un moyen pour savoir si une frame est ouverte ou pas en PHP ???

Merci encore pour ton explication ^_^
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours