我正在为项目编写一个大拇指向上/向下评级系统,评级系统应该只允许用户评级一次。我在数据库中有一个名为 rating 的 SQL 表,其中包含列:id、itemname、commentno。另一个表ip_check具有:id,commentno,ip。
注释号将是一个外键,获取 ip 的语法应该是这样的:<?php $ip = $_SERVER['REMOTE_ADDR']; ?>
,因为我在线检查了几个像这样的链接。
现在添加 mysql if 条件的正确和最简单的方法是什么。我也检查了这个链接,但我仍在寻找更具体的东西,对此有什么帮助吗?
为了保存和在Mysql中,我建议使用Mysql函数INET_NTOA()和INET_ATON()
要验证和获取 IP 地址,我使用此函数:
function is_ip($ip) {
global $localIPs;
$test = 0;
$pattern='/^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)'.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/';
$ip = explode(',', $ip);
$ip = array_map('trim', $ip);
foreach ($ip as $key => $value) {
if(array_search($value, $localIPs)===false && preg_match($pattern, $value)) $test = $value;
}
if(!empty($test)) return $test;
else return false;
}
function get_ip() {
$ip='';
if(!empty($_SERVER['HTTP_X_REAL_IP']) && is_ip($_SERVER['HTTP_X_REAL_IP'])) $ip=is_ip($_SERVER['HTTP_X_REAL_IP']);
elseif(!empty($_SERVER['HTTP_CLIENT_IP']) && is_ip($_SERVER['HTTP_CLIENT_IP'])) $ip=is_ip($_SERVER['HTTP_CLIENT_IP']);
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && is_ip($_SERVER['HTTP_X_FORWARDED_FOR'])) $ip=is_ip($_SERVER['HTTP_X_FORWARDED_FOR']);
else $ip=is_ip($_SERVER['REMOTE_ADDR']);
return $ip;
}