根据标题,我如何才能完成它?检查已经存储在数据库中的IP地址的函数之一应该在不影响其他函数的情况下终止特定的检查函数。我过去使用exit()和die(),但它会停止所有函数。
main.php:
function CheckIfUserIpExist() {
$connection = DBconnect();
$user_ip = $_SERVER["REMOTE_ADDR"];
$sql = "SELECT * FROM views WHERE user_ip = ?";
$stmt = $connection->prepare($sql);
$stmt->bind_param("s", $user_ip);
$stmt->execute();
$stmt->store_result();
$users_ip = $stmt->num_rows;
if($users_ip > 0) {
die();
}
}
function AddUserWhenPageIsViewed() {
$connection = DBconnect();
$user_ip = $_SERVER["REMOTE_ADDR"];
$time_ = date('Y-m-d G:i:s');
$sql = "INSERT INTO views (user_ip, time_) VALUES (?,?)";
$stmt = $connection->prepare($sql);
$stmt->bind_param("ss", $user_ip, $time_);
$stmt->execute();
}
Index.php
CheckIfUserIpExist();
AddUserWhenPageIsViewed();
致以问候。
发布于 2018-07-23 01:21:06
最好是从Check函数返回一个状态
function CheckIfUserIpExist() {
$connection = DBconnect();
$user_ip = $_SERVER["REMOTE_ADDR"];
$sql = "SELECT * FROM views WHERE user_ip = ?";
$stmt = $connection->prepare($sql);
$stmt->bind_param("s", $user_ip);
$stmt->execute();
$stmt->store_result();
$users_ip = $stmt->num_rows;
if($users_ip > 0) {
return false;
}
return true;
}
function AddUserWhenPageIsViewed() {
$connection = DBconnect();
$user_ip = $_SERVER["REMOTE_ADDR"];
$time_ = date('Y-m-d G:i:s');
$sql = "INSERT INTO views (user_ip, time_) VALUES (?,?)";
$stmt = $connection->prepare($sql);
$stmt->bind_param("ss", $user_ip, $time_);
$stmt->execute();
}
然后,当您调用测试函数时,您知道下一步要做什么。如果为true,则用户存在,因此不要调用Add函数;如果为false,则用户不存在,因此创建一个。
if ( ! CheckIfUserIpExist() ) {
AddUserWhenPageIsViewed();
}
发布于 2018-07-23 01:08:10
return就是你需要的
function CheckIfUserIpExist() {
$connection = DBconnect();
$user_ip = $_SERVER["REMOTE_ADDR"];
$sql = "SELECT * FROM views WHERE user_ip = ?";
$stmt = $connection->prepare($sql);
$stmt->bind_param("s", $user_ip);
$stmt->execute();
$stmt->store_result();
$users_ip = $stmt->num_rows;
if($users_ip > 0) {
return;
}
}
function AddUserWhenPageIsViewed() {
$connection = DBconnect();
$user_ip = $_SERVER["REMOTE_ADDR"];
$time_ = date('Y-m-d G:i:s');
$sql = "INSERT INTO views (user_ip, time_) VALUES (?,?)";
$stmt = $connection->prepare($sql);
$stmt->bind_param("ss", $user_ip, $time_);
$stmt->execute();
}
https://stackoverflow.com/questions/51467408
复制相似问题