Intégrer une page externe et de taille variable dans une autre

Intégrer une page externe et de taille variable dans une autre - HTML/CSS - Programmation

Marsh Posté le 26-01-2007 à 10:15:16    

Hello à tous :)
 
Petit problème que je n'arrive pas à résoudre :
 
J'ai écrit un petit script PHP (qu'on va appeler flashs.php) qui choisit aléatoirement parmi les fichiers flash (de tailles variables) qui sont dans son répertoire (pour effectuer une rotation). Ce script doit être appelé par différents sites, qui ne sont pas forcément sur le même serveur.
 
Mon problème est le suivant : comment l'inclure dans les différents sites ?
 
J'ai essayé la méthode iFrame, du style :
 

Code :
  1. <iframe id="nomIframe" src="http://..../flashs.php">


 
Et dans le flashs.php :
 

Code :
  1. parent.document.getElementById('nomIframe').height=$height;
  2. parent.document.getElementById('nomIframe').width=$width;


 
Ca marche si flashs.php et la page qui l'intègre sont sur le même serveur, malheureusement sinon ça échoue (protection je suppose, pour qu'une page intégrée "étrangère au serveur" ne puisse pas modifier n'importe comment la page qui l'intègre).
 
J'ai évidemment essayé un simple include("http://..../flashs.php" ), ça ne marche pas non plus, l'include d'une page externe est impossible.
 
Contraintes :
- je ne peux pas toucher aux configurations des serveurs
- l'idée est de centraliser les flashs à un seul endroit, je ne veux donc pas les mettre sur tous les serveurs pour faire des includes internes. Et je ne peux à priori pas séparer flashs.php de ses flashs, vu que le script doit d'abord les lister avant de choisir dans la liste, et qu'à ma connaissance ça ne peut que se faire s'ils sont sur un même serveur
 
En bref, tant que ma taille est fixe, aucun problème (en utilisant iFrame), mais comment gérer une taille variable ? :sweat:  
 
Merci d'avance pour vos réponses ! :hello:

Reply

Marsh Posté le 26-01-2007 à 10:15:16   

Reply

Marsh Posté le 30-01-2007 à 01:09:46    

sisi en js tu peux modifier des style de tes elements
 
le javascript c'est coté client, il s'en fou que le script arrive tout droit d'un codage main ou d'une génération par script ephp externe, aucune protection (il y a protection au niveau du code php sur des fichiers locaux alors que le script est distant.)
 
a vu de nez je dirai que le probleme viens de la propriété id qui n'est pas reconnu par iframe...
et je t'encourage a laisser les frames de coter...
tu peux utiliser un div et du php pour la remplacer, et utiliser les css et les propriétés d'overflow si tu as besoin d'une scrollbar
 


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 30-01-2007 à 01:14:58    

Non non, si on a deux pages qui ne viennent pas du même domaine il n'est pas possible d'inter agir entre les deux via js. Sécurité oblige.

Reply

Marsh Posté le 30-01-2007 à 01:23:41    

En revanche ce qui est possible c'est que ton flash "distant" soit lu par un script php et renvoyé au client. Ce qui fait que pour le navigateur ça vient du même site alors que ce n'est pas héberger sur le même.

 

Sauf que ça pose deux problèmes : les gros fichiers, ça ne passera surement pas. Deuxième problème : les indisponibilités ou lenteurs du ou des serveurs sur le/lesquels tu lis tes flash.


Message édité par dwogsi le 30-01-2007 à 01:38:16
Reply

Marsh Posté le 30-01-2007 à 09:34:45    

heu oui dwogsl a raison, j'était déja partit sur mon "les iframes, cest tabou, on y viendra tous à bout" :D
 
si le code est généré à partir d'uns cript externe mais qu'il es thbergé sur le même probleme ça pose pas de soucis: d'ou l'idée de gérar le script php sur le servuer qui affiche les flash


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 31-01-2007 à 12:29:31    

J'ai essayé un  
 

Code :
  1. echo(file_get_contents("http://..../flashs.php" ));


 
En vain, c'est bloqué, la variable allow_url_fopen étant à false dans le php.ini...
 
Du coup, impossible aussi de lire un flash distant non ?
 
En gros, y'a rien à faire c'est ça ? :sweat:
 
Edit : j'ai eu l'idée de tenter de faire ça en Ajax, en faisant en gros du
 

Code :
  1. req = new XMLHttpRequest();
  2. [...]
  3. req.open("GET", "http://webtools.fr.ubi.com/skytool/sky.php?type=test", true);
  4. [...]
  5. document.getElementById("Ajax" ).innerHTML = req.responseText;


 
Ca marche sur un serveur moins sécurisé, mais ça ne marche pas sur ce serveur, ça me fait une erreur JS "permission refusée" :sweat:


Message édité par Luigi le 31-01-2007 à 15:07:16
Reply

Marsh Posté le 31-01-2007 à 22:04:01    

tu le lis comment  ton flash ?
 


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 01-02-2007 à 10:14:59    

Heu... Ben pour le moment je le "lis" pas, je génère simplement une balise object; mais d'après ce que j'ai compris dwogsi proposait de le lire via le PHP (donc avec un fread ou équivalent), ce qui visiblement n'est pas possible à cause du allow_url_fopen qui est à false... :/

Reply

Marsh Posté le 01-02-2007 à 10:22:28    

Oui c'est bien ce que je proposais. Mais ta config ne le permet effectivement pas.
Ceci dit, je crois que je comprends pas vraiment d'où vient ton problème... Pourrais-tu détailler? Parce que finalement rien de t'empêche de mettre dans une page du code html faisant référence à un fichier flsh sur un autre serveur.

Reply

Marsh Posté le 01-02-2007 à 12:04:50    

Désolé je suis peut être pas très clair :D
 
En fait, sur un serveur, j'ai un répertoire contenant un certain nombre de flashs, de tailles différentes (en fait, deux tailles différentes), et un script qui permet d'en choisir un au hasard et qui l'affiche.
 
Disons que j'ai :
- flash1.swf (120*600)
- flash2.swf (160*600)
- flash3.swf (120*600)
 
Mon script.php (sur le même serveur donc) génère un code du type :
 


  <object [...] width="<?=$width?>" height="<?=$height?>">
  <param name="movie" value="<?=$flashChoisi?>">
  <param name="quality" value="high">
  </object>


 
où $width, $height et $flashChoisi dépendent donc du flash qui a été choisi au hasard. Donc par exemple :
 


  <object [...] width="160" height="600">
  <param name="movie" value="flash2.swf">
  <param name="quality" value="high">
  </object>


 
Donc dans ce cas, aucun problème de taille variable, c'est géré.
 
Mais ensuite, pour l'intégrer sur mes sites qui sont sur des serveurs différents, si j'utilise un iframe, ça donne :
 


<iframe width="???" height="600" src="http://[...]/script.php" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe>


 
Je suis obligé de définir une largeur, alors qu'en fait, la page contenue dans l'iframe peut avoir deux largeur différentes.
 
D'où mon idée d'intégrer directement la page sans iFrame à l'aide du php via include ou echo(file_get_contents()), sauf que j'ai donc été bloqué par la config php... :sweat:


Message édité par Luigi le 01-02-2007 à 12:05:18
Reply

Marsh Posté le 01-02-2007 à 12:04:50   

Reply

Marsh Posté le 01-02-2007 à 12:05:02    

<object src="http://serveur/fichier.flv"> ta essayé ? :o


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 01-02-2007 à 12:07:29    

Dans mes sites ? Ben non, du coup je n'aurai plus de choix aléatoire du flash :o

Reply

Marsh Posté le 01-02-2007 à 14:04:40    

<object src="http://serveur/flash.php">
Le fichier flash.php lit un flash aléatoirement sur son serveur à lui.
Je vois pas où est le problème.


Message édité par dwogsi le 01-02-2007 à 14:04:54
Reply

Marsh Posté le 01-02-2007 à 18:05:00    

Ben la taille ? La balise object ne prend pas automatiquement la taille de son contenu non ?
 
J'ai fait un test rapidement, la balise n'affiche rien du tout en fait quand je fais ça (même en lui donnant une taille), j'y regarderai de plus près demain...

Reply

Marsh Posté le 01-02-2007 à 20:09:44    

ralalalal mais si çase fait :D
pour la taille ça dépends, comment tu connais la taille à adopter ?
 
suffit d'avoir un script pour choisir la video sur le serveur hébergeant les videos, uet un script qui gere la taille, etc


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 07-02-2007 à 10:51:01    

Bon j'ai pas eu le temps de faire le test avant, je viens de le faire, et c'est bien ce que je disais...
 
Si je fais <object src="http://serveur/flash.php">, ça ne m'affiche rien du tout, vu qu'il faut donner une taille à la balise object (comme à la balise iframe), elle ne s'adapte pas à la taille de son contenu. Il faut donc que je fasse :
 
<object src="http://serveur/flash.php" width="120px" height="600px"> et là ça m'affiche la page.
 
Ce qui me ramène au même problème : comment avoir une taille variable ? Comment faire si en fait, mon "flash.php" fait 160 de largeur ?
 
La taille, je la connais seulement dans flash.php (quand il tire au hasard un flash, la taille de ce flash est incluse dans le nom).


Message édité par Luigi le 07-02-2007 à 10:51:27
Reply

Marsh Posté le 07-02-2007 à 21:00:00    

gnéééé
du javascript qui modifie les propriétés de object ?


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 07-02-2007 à 21:02:20    

Soit exactement ce que j'avais fait au départ, comme dit dans mon premier message, mais
 

dwogsi a écrit :

Non non, si on a deux pages qui ne viennent pas du même domaine il n'est pas possible d'inter agir entre les deux via js. Sécurité oblige.


 
:o

Reply

Marsh Posté le 08-02-2007 à 14:38:27    

a oui merde :o
lol c'est la merde...


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 08-02-2007 à 14:38:53    

stockage des flash en sous domaine du site ?


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 08-02-2007 à 14:43:25    

Pas possible, vu que les flashs sont appelés à être utilisés sur divers sites n'appartenants pas au même domaine... :sweat:

Reply

Marsh Posté le 08-02-2007 à 14:46:01    

Dit moi, tes flashs, ils ont une taille aléatoire (ca change en fonction d'une condition X alros qu'on demande le même flash) ou bien ils ne changent jamais de taille.
Dans le second cas, pourquoi tu ne stockes pas simplement la taille des flash une bonne fois pour toute?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed