首页 > 解决方案 > PHP 响应真/假和正确的 IF 语句

问题描述

添加到购物车功能可以放置折扣,折扣是通过 xxx-hashid 进行的。我发现问题是当用户想要作弊并输入随机 xxx-123456 我的系统崩溃时。

hashid 来自 Ivan Akimov。

当 hashID (userID) 不存在函数返回代码无效但没有崩溃时,是否可以实现?

public function getIdByHash($hashid) {
    $response = ['valid' => false];
    if ($hashid){
        $response['valid'] = true;
        $hashid = explode("PMX-",$hashid)[1];
        $hashids = new Hashids("",6);  
    return $hashids->decode($hashid)[0];
    } 
        if ($hashid){
            $response ['valid'] = false;
        return $hashids = "PMX-"."dGRLrb";
        }
    } 

标签: phplaravelif-statement

解决方案


你可以试试:

public function getIdByHash($hashid) {
    $response = ['valid' => false];
    if ($hashid){
        $response['valid'] = true;
        try {
            $hashid = explode("PMX-",$hashid)[1];
            $hashids = new Hashids("",6);  
            return $hashids->decode($hashid)[0];
        } catch(\Exception $e) {
            $response ['valid'] = false;
        }
    } 
    return $hashids = "PMX-"."dGRLrb";

} 

推荐阅读