同じIPからの複数のアカウントを防止しようとしています:
if (! empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
elseif (! empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip = $_SERVER['REMOTE_ADDR'];
}
$stmt = $db->prepare("SELECT 1 FROM users WHERE ip = :ip");
$stmt->bindParam(':ip', $ip, PDO::PARAM_STR);
$result = $stmt->execute();
$row = $stmt->fetch();
if ($row)
{
die("Only one account per IP is allowed !");
}
これは機能しますが、IPごとに2つのアカウントを許可したい場合はどうなりますか?私は試した:
$stmt = $db->prepare("SELECT * FROM users WHERE ip = :ip");
$stmt->bindParam(':ip', $ip, PDO::PARAM_STR);
$result = $stmt->execute();
$row = $stmt->fetch();
if ($row > 1)
{
die("Only one account per IP is allowed !");
}
動作しません。2番目のアカウントは許可されていません。