我的PHP代码中的错误,它从文件中读取数据并保留日志

时间:2016-10-31 03:01:53

标签: php web

我正在写一些php代码,我想比较一个ip地址和用户来自的ip地址。这是代码:

<!DOCTYPE html>

<html>
<?php
// set date and hour
$date=date('H:i:s d-m-Y');
// set ip user
$ip=$_SERVER['REMOTE_ADDR'];
// log text
$ipLog="User entered at " . $date . " from ip address: " . $ip . ".\n";
// write log
$firstLogFile="../../logs/firstLogIP.txt";
// ipcheck
$myfile=fopen("../../logs/ownip.txt", "r") or die("Unable to read ownip file!");
$ownip=fgets($myfile);
fclose($myfile);
if($ip!=$ownip) {
    $handleFirstLog=fopen($firstLogFile, 'a') or die("<br><br>Can't open logfile!<br><br>"); 
    fwrite($handleFirstLog, $ipLog);
    fclose($handleFirstLog);
}
?>

<head>
</head>

<body>
    <div class="container">
        <div class="inner-container">
        <div>
            <?php           
            if($ip!=$ownip) {
                print "ips not equal: " . $ip . " " . $ownip;
            } else {
                print "ips equal";
            }
            ?>
        </div>
        </div>
    </div>
<body>

</html>

如果用户的IP地址不等于我的文件(../../logs/ownip.txt)中存储的IP地址的IP地址,那么这应写入logfile (firstLogIP.txt)你应该看到&#34; ips不等于&#34;在屏幕上。

因此,如果ip等于,则不应写入日志,您应该看到&#34; ips等于&#34;在屏幕上。

虽然我的IP地址和用户的地址($ _SERVER [&#39; REMOTE_ADDR&#39;])相等,但脚本仍然说&#34; ips不等于&#34;并记录IP地址!

有关此错误的任何帮助? THX !!

1 个答案:

答案 0 :(得分:-1)

if($ip !== $ownip) {

代替。 解释:在一些脚本语言如php和javascript中,有两种字符串比较方法:=====。 第一个是快速指针比较字符串,在大多数情况下是无用的,它并不真正比较字符串的内容,而是仅当两个字符串来自同一个源时才起作用。 您最好将所有==替换为===进行字符串比较,这与您的预期完全相同。如果你需要更强的东西,你也有strcmp() ......