2009-02-19 3 views
2

Je suis un débutant en PHP et Javascript ..Charg dans la page

J'ai trouvé un lien de http://cmichaelis.whsites.net/whblog/jquery-extjs-1/example2

A l'intérieur il y a un code disant:

function addPanel(location) 
{ 
tabpanel.add({ 
     autoLoad: {url: location}, 
     title: 'More Information...', 
     closable:true, 
     autoScroll:true 
}).show(); 
} 

comment utiliser:

<a href="javascript:void(0);" 
    onclick="addPanel('loadpage.php?a=http://www.google.com')"> 
    head over to Google 
</a> 

Ce que je veux demander est .. quel est le code de loadpage.php?

Répondre

0

Il semble que loadpage.php puisse être utilisé pour renvoyer le contenu de www.google.com en utilisant file_get_contents.

loadpage.php:

<?php 
    // Simplified output - should sanitise $_REQUEST params etc first.. 
    echo file_get_contents($_REQUEST['a']); 
?> 

loadpage est effectivement agit comme un proxy, permettant à votre javascript pour appeler des pages qui ne sont pas sur votre propre domaine. Comme l'indique @annakata dans les commentaires, le code ci-dessus est obscur comme dangereux. Le code est une illustration de l'idée de base d'un fichier proxy - en production, ce fichier devrait s'assurer que les paramètres $_REQUEST ont été nettoyés, par ex. n'accepte que les valeurs d'une liste blanche.

Le same origin policy est un élément de sécurité de javascript qui vous empêche d'extraire le contenu de votre domaine sur votre page en utilisant javascript.

Certains sites contourner cela en appelant une page proxy sur leur propre serveur (loadpage dans cette instance) qui imprime effectivement le contenu d'une URL cible. Comme cette page proxy est sur votre serveur, ce court-circuite la même origine problème de sécurité, et rend toujours disponible le contenu d'une page d'un autre domaine - ici www.google.com


Oups, je peu bêtement fait pas RTFA, mais juste le code dans la question et l'hypothèse de ce qu'il pourrait faire. @andynormancx est juste dans sa réponse à ce que fait réellement la page liée dans le q.

+0

En l'état actuel qui est ridiculement dangereux - je l'espère, il y a une liste blanche ou d'un bon sens de vérification dans le php – annakata

+0

code très dangereux bien, jeté comme un exemple de ce qui pourrait être aller dans le fichier de chargement, mais répondre maintenant mis à jour pour mettre en évidence les dangers si copié et collé, bravo! – ConroyP

1

La page PHP ne renvoie pas le contenu de google.com comme suggéré dans l'autre réponse. Il émet un iframe pointant vers Google:

<iframe src="http://www.google.com" width="100%" height="100%" frameborder="no"></iframe> 
+0

Alors, quel est le point? Cela pourrait tout aussi bien être fait dans JS sans l'aller-retour supplémentaire au serveur. – annakata

+0

Je ne sais pas ce que le point est, je ne peux pas voir ce qu'il atteint. – andynormancx

+0

Il vous permet d'appeler votre site "Ajax"! – troelskn

Questions connexes