从html和javascript访问经过身份验证的php页面


Accessing authenticated php page from html and javascript

我正在尝试编写一个简单的html页面来创建两个数据提要的mashup。数据馈送源之一是一个PHP页面,每次请求它时都会生成一个GoogleEarthKMZ文件。我的目标是在我的页面上的地图上实时显示这个提要。

特定的PHP页面需要身份验证,我有用户名和密码。当我将URL插入web浏览器时,它会询问我的凭据,我会提供这些凭据,然后它会下载一个KMZ文件。

我想让我的html页面使用javascript向PHP页面发出HTTP请求,检索返回的KMZ并将其加载到地图上。

我对这类事情完全陌生,所以请让我知道我是否朝着正确的方向前进,这可能吗?

您没有指定在远程端使用哪种类型的身份验证,因此,我将进行一些猜测和假设:

基本HTTP身份验证

如果使用"基本HTTP身份验证"(这将显示一个浏览器弹出窗口,请求领域的用户名/密码),您可以将您的请求URL公式化如下:

http://username:password@host.name/file.name?parameter=x

其中:

  • username是您的实际已知用户名
  • password实际密码
  • CCD_ 3是远程服务器的地址
  • file.name您试图访问的PHP文件
  • 可选:parameter=x从PHP文件获得所需输出所需的任何已知参数

PHP身份验证

如果实际的身份验证是由PHP页面本身完成的,那就另当别论了。在这种情况下,这完全取决于PHP脚本使用哪些变量来执行身份验证,特别是参数的类型。最常见的是使用GETPOST(或者如果使用REQUEST,两者都可以)。

无论哪种方式,您都必须知道正在使用的参数的名称。对于下面的例子,我将假定userpass

在PHP脚本中,如果在php.ini中设置了危险的register_globals,则它们看起来像$_GET['user']$_POST['user']$_REQUEST['user']或简单的$user

GETREQUEST的情况下:

http://host.name/file.name?user=username&pass=password&parameter=x

POST:的情况下

可以使用JavaScript来POST值。这个SO答案给出了一个有效的例子。

其他任何东西

如果使用任何其他方法(还有很多其他方法),则需要更具体的信息来确定确切的方法和有效的解决方案。