Php 将readfile()与远程URL和SSL一起使用

Php 将readfile()与远程URL和SSL一起使用,php,Php,我有一个基于php的网站,它使用SSL,需要用户在访问任何页面之前登录。我想允许从另一个域访问此站点,以便功能保持不变,但用户的外观、感觉和域会发生变化,并且我只需维护一个版本的代码 在阅读了一些内容之后,我将在辅助服务器上的php文件中使用readfile函数调用来访问主服务器上的相应文件。例如,主服务器上的login.php由一个名为login.php的文件从辅助服务器访问,该文件包含readfile而不包含其他内容 现在的问题是,我甚至不能登录!最初调用login页面时,它看起来很好,但当

我有一个基于php的网站,它使用SSL,需要用户在访问任何页面之前登录。我想允许从另一个域访问此站点,以便功能保持不变,但用户的外观、感觉和域会发生变化,并且我只需维护一个版本的代码

在阅读了一些内容之后,我将在辅助服务器上的php文件中使用readfile函数调用来访问主服务器上的相应文件。例如,主服务器上的login.php由一个名为login.php的文件从辅助服务器访问,该文件包含readfile而不包含其他内容

现在的问题是,我甚至不能登录!最初调用login页面时,它看起来很好,但当输入并提交login user和pwd时,远程服务器似乎没有看到触发表单处理的$\u server['REQUEST\u METHOD']变量,而只是作为空表单加载

你知道我做错了什么,或者我需要改变什么配置吗


谢谢

创建一个PHP文件,然后跨多个站点将其用于相同目的是一个好主意。但是,以这种方式使用该文件的方式取决于托管包的一般基础结构

如果您有一个托管帐户,允许在一个帐户下托管所有受影响的站点,那么您应该能够使用include或require函数调用公共文件login.php

<?php
require( '/home/1234/public_html/common/login.php' );
?>
在这种情况下,PHP文件的所有功能都将像调用页面的一部分一样执行

如果您在多个托管帐户/服务器上有多个站点,则无法再执行上述操作。使用readfile函数将能够收集通过浏览器访问URL时可以看到的输出,但基本功能将丢失-即您无法调用login.php文件并让它在辅助站点上实际执行登录

在这种情况下,您确实需要获取实际PHP文件的副本,并将它们放在辅助服务器/帐户上以使用它们


这可能会使管理文件版本稍微困难一些,但是,这是处理此问题的常见方法,只要您记得将任何文件更新推送到所有受影响的站点,它就可以正常工作。

您可以显示登录时使用的代码吗?您是否向[readfile]提供[context]参数?我想你需要通过上下文传递请求vars用户名和密码。当您将URL传递给readfile时,PHP将在该域上执行,并且只读取输出。感谢您提供的信息。作为回应,辅助站点将不会在同一托管帐户下进行管理-我打算允许客户使用此方式访问主站点,并在登录期间应用进一步检查,以防止未经授权的IP访问任何非我的客户。也许可以像Andy的评论所建议的那样使用上下文变量来做我需要做的事情——我将进一步研究这一点,看看是否可能。或者,是否有其他方法包含主站点的代码,以便在执行时可以看到所有变量?ThxMeans to add-如果可能的话,我宁愿不让客户端看到php代码,因此我尝试了这种方法。这是一个好主意,但不切实际。在增加宕机风险和降低效率之间,所有客户端站点都依赖于服务器始终处于运行状态并可访问,所有页面加载都会增加到中央服务器的中继请求的延迟,以及其他一百万个不良副作用。除了可能违反的合同条款之外,您可能从未实际交付购买的代码。如果您担心代码被重复使用或误用,请查看PHP模糊处理-