[英]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.