0

最後にログオンした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 のようになります。(通常のファッション)

たぶん私はそれらを正しく比較していませんが、過去に私にとってはうまくいきました.

4

3 に答える 3

2

このコードはあなたが思っていることをしません:

if (!$IPtoVerify == $currIP) {

PHP は次のように解釈します。

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

次のように記述します。

if ($IPtoVerify != $currIP) {
于 2012-05-14T15:27:18.807 に答える
0

($IPtoVerify !== $currIP)代わりに試してください(!$IPtoVerify == $currIP)

于 2012-05-14T15:25:47.970 に答える
0
!$IPtoVerify == $currIP

意味

0==$currIP, 

最初に検証するため

`!$IPtoVerify` 

$IPtoVerify が 1 でない限り、常に 0 を返します。

次のようなブラケットを追加します

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

問題を解決します。

于 2012-05-14T15:29:52.077 に答える