首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不影响其他函数的情况下结束/终止检查表中的IP地址的函数

如何在不影响其他函数的情况下结束/终止检查表中的IP地址的函数
EN

Stack Overflow用户
提问于 2018-07-23 01:02:33
回答 2查看 18关注 0票数 0

根据标题,我如何才能完成它?检查已经存储在数据库中的IP地址的函数之一应该在不影响其他函数的情况下终止特定的检查函数。我过去使用exit()和die(),但它会停止所有函数。

main.php:

代码语言:javascript
复制
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

代码语言:javascript
复制
CheckIfUserIpExist(); 
AddUserWhenPageIsViewed();

致以问候。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-23 01:21:06

最好是从Check函数返回一个状态

代码语言:javascript
复制
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,则用户不存在,因此创建一个。

代码语言:javascript
复制
if ( ! CheckIfUserIpExist() ) { 
    AddUserWhenPageIsViewed();
}
票数 0
EN

Stack Overflow用户

发布于 2018-07-23 01:08:10

return就是你需要的

代码语言:javascript
复制
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();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51467408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档