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