2

メッセージが送信されるたびに、通信ベンダーからレポートが送られてきます。HTTP GET 経由で値を受け取る非常に単純な PHP スクリプトを作成しました。fwrite を使用して、クエリ パラメータを CSV ファイルに書き込みます。ファイル名は report.csv で、現在の日付がプレフィックスとして付けられています。

コードは次のとおりです。

<?php
error_reporting(E_ALL ^ E_NOTICE);
date_default_timezone_set('America/New_York'); 
//setting a the CSV File
$fileDate = date("m-d-Y") ;
$filename = $fileDate."_Report.csv";

$directory = "./csv_archive/";

//Creating handle
$handle = fopen($filename, "a");

//These are the main data field
$item1 = $_GET['item1'];
$item2 = $_GET['item2'];
$item3 = $_GET['item3'];

$mydate = date("Y-m-d H:i:s") ;
$pass = $_GET['pass'];

//testing the pass
if (isset($_GET['pass']) AND $_GET['pass'] == "password")
    {
    echo 'Login successful';
    // just making sure the function could write to it
    if (!$handle = fopen($directory.$filename, 'a')){
         echo "Cannot open file ($filename)";
         exit;
    }

    //writing the data I receive through query string
    if (fwrite($handle, "$item1,$item2,$item3,$mydate \n") === FALSE) {
        echo "Cannot write to file ($filename)";
        exit;
    }

    fclose($handle); 
    }
else{
    echo 'Login Failure please add the right pass to URL';   
    }   
?>

スクリプトは私が望んでいることを実行しますが、唯一の問題は一貫性がないことです。つまり、レコードのかなりの部分 (レポートの約半分) が欠落しています。アカウントにログインすると、完全なレポートを取得できます。

これを修正するために何をする必要があるのか​​ わかりません。アドバイスをお願いします。

4

1 に答える 1