PHP - 从AJAX调用的脚本将数据记录到文件中的问题

时间:2015-07-02 13:40:11

标签: php jquery ajax

我刚开始学习PHP,我正在尝试将数据记录到.txt文件中,以便我可以看到程序运行时会发生什么。

我创建了这个函数来写入文件。

的functions.php

<?php
    function logThis($textString){
        $date = date_create();
        $stamp = date_format($date, '[d-m][H:i:s] ');
        $file = fopen("log.txt","a") or die ('fopen failed'); 
        fwrite($file, $stamp . $textString . PHP_EOL);
        fclose($file) or die ('fclose failed');
    }
?>

然后我将此代码包含在我想要记录的页面中

define('INCLUDE_CHECK',true);
include 'php/functions.php';

logThis('Great Success!');
logThis('Log up');

我有一个名为gameReader.php的文件,它从数据库中获取数据并将其格式化为要在网站上显示的JSON数据。我正在使用下面的AJAX创建此文件

var values = []; // Array holding the values

var oReq = new XMLHttpRequest(); //New request object
    oReq.onload = function() {      
        games = JSON.parse(this.responseText);
        console.log('Got '+values.length+' games');

        for (var i=0; i<games.length; i++){
            console.log(values[i]);
        }
        for(var i=0; i<values.length; i++){
            console.log(rootValues[i]+' set.');
            rootValues[i]=values[i];
        }
    };
    oReq.open("get", "gameReader.php", true);
    oReq.send();

当此代码运行时,gameReader.php已创建并运行但不会记录到该文件。我确定这与它被调用的方式有关,但我不知道从哪里开始。

非常感谢任何帮助。

所以我的问题有点乱,所以我会再添加一些。

除了gameReader.php之外,日志功能在我调用它的每个页面上都能正常工作。

gameReader.php不是一个页面,而是一个从数据库中收集数据的php文件会将其混淆并将其作为JSON数组发送出来。

gameReader.php是唯一一个用JavaScript调用的文件

以下是完整的文件(如果有帮助)

index.php日志记录脚本在这里工作正常:2,3,126,127。这也是JavaScript被称为第139行的地方

functions.js这是调用gameReader.php的JavaScript(是上面的JavaScript)

gameReader.php这就是问题所在,运行时尽管第8,9和10行没有输出到log.txt。

另外我确定gameReader.php充满了错误,这就是我需要txt日志记录的原因。我还在学习。

1 个答案:

答案 0 :(得分:1)

你似乎有各种其他与php相关的问题。

尝试使用error_reporting(E_ALL); ini_set('display_errors',1)

运行

在php文件上进一步使用php -l(linter)。

我当前的git版本gameReader.php因为以下内容而无法包含:

Fatal error: Cannot redeclare emptyClass::addladderWinsCoin() in ./gameReader.php on line 87 (1*)

因此没有logThis

(1 *):这意味着您声明方法addladderWinsCoin 2次,这是不正确的

编辑:

您可以使用以下变体来检查php(假设安装了linux和php-cli)

find . -name '*.php' -exec php -nl {} \;