-1

我有这个从 html 调用 php 文件。

    <div id="readings">
        <?php require("readenglish.php"); ?>
        <?php require("readfrench.php"); ?>
        <?php require("readspanish.php"); ?>

    </div>

从 php 文件中获取日期很容易,但我必须发送客户端日期。我想在文件名中添加一个带有客户端日期的字符串。

    <div id="readings" style="position: relative; top: -380px; width:100%; height:100%; overflow:hidden; font: 0.9em arial, sans-serif;">
        <?php require("readenglish.php?date="+datestring); ?>
        <?php require("readfrench.php?date="+datestring); ?>
        <?php require("readspanish.php?date="+datestring); ?>

    </div>

这可以做到吗?我必须用javascript计算日期。如果我不必去 ajax 就好了。这将需要完全改变代码结构。

4

2 回答 2

1

1/你不“从 HTML 调用 PHP”,你将 PHP 内容添加到你的文件中,当这个 PHP 被解析时,服务器会将 HTML 发送到客户端:HTML 是 PHP 进程的结果

2/获取客户端日期意味着如果您的客户端将其日期更改为 1990 年,您将相信您收到了 90 年代的请求,而您的服务器的日期与它在其日志中写入的其他日期一致

3/如果您真的需要客户端的日期,您唯一的选择是使用 Ajax 请求、URL 中的 GET 参数或带有 POST(或 GET)数据的 HTML 表单;在所有这些情况下,您都需要使用 Javascript 的 Date 对象填充数据

解决方案 A:在页面开头有一个 JS,如果没有给出日期,它会重新加载。就像是:

<?php if(empty($_REQUEST['date'])) { ?>
  <script type='text/javascript'>
    var d=new Date();
    window.location.href+='?date='+d.toISOString();
  </script>
  <?php die('Reloading with parameters...'); ?>
<?php } ?>

如果您喜欢这种方式,您可以调整此解决方案以填写表单并使用 JS 动态提交,但更多的是键入...

解决方案 B:使用 Ajax 检索并插入带有日期参数的 readxxx.php,但您不想这样做(尽管我不明白为什么它“需要完全更改代码结构”)

解决方案C(我最喜欢的):如果您使用的是PHP 5.1+,您可以使用$_SERVER['REQUEST_TIME'],它会为您提供客户端请求开始的服务器时间(即服务器接收到的时间)

解决方案 D:使用由 JS 构建的 (i) 帧,将日期作为 src 属性中的参数(将需要完全改变代码结构^^)

希望这可以帮助。

于 2012-06-07T07:28:43.343 回答
0

答案很简单:饼干!

于 2012-06-08T19:03:32.177 回答