首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP不执行

PHP不执行
EN

Stack Overflow用户
提问于 2020-09-30 07:01:32
回答 2查看 63关注 0票数 0

这个可能要花点时间,但请留下来陪我。

我一直在使用以下代码:

代码语言:javascript
复制
if(isset($_GET['o']) && isset($_GET['q'])){
    echo("WIN 1");
    if($_GET['o'] == "remove") {
        echo("WIN 2");
        $_SESSION['product_'.$_GET['q']]-=1;
        echo("WIN 3");
        if($_SESSION['product_'.$_GET['q']] < 1) {
            unset($_SESSION['product_'.$_GET['q']]);
            echo("WIN 4");
            redirect("checkout.php");
        } else {
            echo("LOSE");
            redirect("checkout.php");
        }
    }
}

它没有执行任何功能,除非我使用以下方法来完成:

代码语言:javascript
复制
exit();

在每个回声之后。我不知道是什么引起了这个问题。

正在传递的URL是:

代码语言:javascript
复制
localhost/cart.php?q=1&o=remove

谢谢!

编辑

我是这样设置会话的(我已经删除了回声):

代码语言:javascript
复制
if(isset($_GET['q'])) {
        $query = query("SELECT * FROM products WHERE product_id=".escape_string($_GET['q'])."");
        confirm($query);
        while($row = fetch_array($query)){
            if($row['product_quantity'] != $_SESSION['product_'.$_GET['q']]){
                $_SESSION['product_'.$_GET['q']]+=1;
                redirect("checkout.php");
            } else if($row['product_quantity_tracking'] == "No") {  //CHECK TO SEE IF IT'S INVENTORY TRACKED
                redirect("checkout.php");
            } else {
                set_message("Sorry! There isn't enough in stock to complete that request!");
                redirect("checkout.php");
            }
        }
    }

这是重定向功能:

代码语言:javascript
复制
function redirect($location){
    header("Location: $location");
}

我希望这能帮到你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-05 06:34:23

因此,由于某种原因,当我在cart.php上单击重定向时,它正在运行页面的其余部分,而不是像预期的那样只是重定向和退出页面。

为了解决这个问题,我必须将代码更改为:

代码语言:javascript
复制
if(isset($_GET['o']) && isset($_GET['q'])){
    if($_GET['o'] == "remove") {
        $_SESSION['product_'.$_GET['q']]-=1;
        if($_SESSION['product_'.$_GET['q']] < 1) {
            unset($_SESSION['product_'.$_GET['q']]);
            redirect("checkout.php");
            exit();
        } else {
            redirect("checkout.php");
            exit();
        }
    }
}

通过在重定向之后添加exit();,它确保没有遵循页面上脚本的其余部分。

谢谢大家的帮助!

票数 0
EN

Stack Overflow用户

发布于 2020-09-30 07:56:52

通过使用exit();,您可以停止执行脚本,并且可以看到使用echo的打印出来的所有内容。

->如果你能看到像'WIN 1','WIN 2',.退出脚本时,它可以很好地运行,直到这行

->您的问题必须在这行之后找到。

我想您的问题在于redirect()函数。有关如何执行重定向:How do I make a redirect in PHP?,请参阅以下内容

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64132439

复制
相关文章

相似问题

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