簡體   English   中英

PHP和MySQL - 比較存儲的IP

[英]PHP & MySQL - Compare IPs that are stored

我正在嘗試創建一個系統來存儲最后登錄的IP,並將其與當前的IP進行比較,然后在以后的某些功能中執行某些功能,但是目前,我無法在不進行最后一個else語句的情況下對它們進行比較。 這是代碼。

<?php

$userToPull = $session->userinfo['username'];

$query = "SELECT * FROM users WHERE username='$userToPull'";
            $result = mysql_query($query);      

            while($row = mysql_fetch_row($result)){

                    $userToShow = $row[25];
                    $IPtoVerify = $row[26];

                    }

$lastActivity = RelativeTime($userToShow);
$currIP = $_SERVER['REMOTE_ADDR'];

/*

Shows Partner Stuff

}elseif(!$session->isAdmin()){

echo "<div style='text-align:right;' id='homebox'";
echo "<b>Partner Total:</b> ".$database->getNumMembers()."<br>";
echo $database->num_active_users." partners logged in and ";
echo $database->num_active_guests." guests viewing the site.<br><br>";
echo "</div>";

*/


if(!$IPtoVerify == $currIP){

echo "<div style='text-align:right; background-color: #FAAAB3' id='homebox_partner'";
echo "<b>You are logged on from an unrecognized location.</b><br>";
echo "You will be sent a notification for security purposes.";
echo "<br>This location will automatically be remembered.";
echo "</div><br>";

}elseif($IPtoVerify == $currIP){

echo "<div style='text-align:right;' id='homebox_partner'";
echo "<b>You are logged on from a recognized location.</b><br>";
echo "Your IP is ".$_SERVER['REMOTE_ADDR'];
echo "<br>Your last login was approximately ".$lastActivity;
echo "</div><br>";

}else{

echo "<div style='text-align:right;' id='homebox_partner'";
echo "<b>An error has occurred.</b><br>";
echo "</div><br>";


}

?>

唯一不起作用的是if(!$IPtoVerify == $currIP){ if語句。

IP以正常方式存儲,回聲類似於:100.100.100.100。 (正常時尚)

也許我沒有比較正確,但它在過去對我有用。

此代碼不符合您的想法:

if (!$IPtoVerify == $currIP) {

PHP將其解釋為:

if ((!$IPtoVerify) == $currIP) {

你會想把它寫成:

if ($IPtoVerify != $currIP) {

嘗試($IPtoVerify !== $currIP)而不是(!$IPtoVerify == $currIP)

!$IPtoVerify == $currIP

手段

0==$currIP, 

因為它首先驗證

`!$IPtoVerify` 

除非$ IPtoVerify為1,否則它總是返回0。

添加額外的括號,如

if(!($IPtoVerify == $currIP))...

解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM