2016-05-12 2 views
1

PHPには新しいですが、Javaに慣れています。 私は関数(writeToLog)を含むdd-functions.phpファイルを持っています。 この関数は、log-statementで変数を作成し、それをファイルに書き出します。file_put_contentsは1つの場所では動作しませんが、コード内の別の場所で作業しています

奇妙なことは、あるphpファイル(file1.php)から呼び出されたときに完全に機能することですが、別のphpファイル(file2.php)から呼び出されたときにファイルに何も書き込まれません。 file1.phpとfile2.phpの両方には、functions.phpが1回含まれています。

これはどのように可能ですか?

Function.php

/* Log for user */ 
function writeToLog($user, $analyseName, $remaining_downloads) { 

$uid = $user->ID; 

$userdata = get_userdata($uid); 
if ($userdata->first_name) { 
    $username = $userdata->first_name . ' ' . $userdata->last_name; 
} else { 
    $username = $userdata->user_login; 
} 
date_default_timezone_set('Europe/Oslo'); 
$date = date('d.m.Y H:i:s'); 
$s2member_access_level = get_user_field ("s2member_access_level", $uid); 
$userLog = $uid . "\t" . $date . "\t" . $username . "\t" . $user->user_email . "\t" . $analyseName . "\t" . $remaining_downloads . "\t" . $s2member_access_level . "\n"; 

file_put_contents('analyse-email-click-log.txt', $userLog , FILE_APPEND); 
} 
+0

get_userdataとはとget_user_field? –

+0

いくつかのユーザーデータを取得するWordpressとS2のメンバー関数。 – user1847323

答えて

0

あなたは階層でファイルを拡張することができたりあなただけのincludeステートメントで、このファイルをインクルードする必要があります。

階層

<?php 

    class ClassA extends ClassB { 


    } 

これが原因analyse-email-click-log.txtへのあなたの相対パスでかもしれ

log.php 
<?php 

$logA = 'mylogA'; 
$logB = 'otherlog'; 

?> 

test.php 
<?php 


include 'log.php'; 

echo "Show my $logA"; 

?> 
+0

私はあなたが何を意味するのか分からないのですか?この関数を使用する場所には、両方とも関数ファイルが含まれています:require_once( 'dd_functions.php'); – user1847323

0

を含めます。あなたはこの

/lib.php 
/foo.php 
/sub/bar.php 

ましょうwriteToLogのような3つのphpファイルがある場合

はlib.phpに存在し、/foo.php/sub/bar.phpから/lib.phpファイルが含まれています。 /foo.phpを実行すると、/analyse-email-click-log.txtに書き込まれますが、/sub/bar.phpを実行すると、書き込み権限で保護されている/sub/analyse-email-click-log.txtに書き込まれます。

+0

良いアイデア。しかし、不幸にも3つのファイルはすべて同じディレクトリにあります。 – user1847323

関連する問題