You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHPMailer发送邮件后无法实现页面重定向问题求助

解决PHP重定向报错与PHPMailer输出问题

问题根源

你碰到的Cannot modify header information错误,核心原因是PHPMailer的SMTP调试模式在发送邮件时输出了日志内容(对应错误里的SMTP.php第284行)。而HTTP头信息(比如header()重定向)必须在任何页面输出之前发送,一旦有内容输出,就无法再修改头信息。

具体修复步骤

  1. 关闭PHPMailer的调试输出
    在你的sendEmails()函数里,找到PHPMailer初始化代码,把SMTP调试级别设为0,彻底禁止日志输出:

    $mail->SMTPDebug = 0; // 若之前是1/2则改成0,关闭调试输出
    

    这样PHPMailer就不会在后台输出SMTP交互日志,也就不会提前触发页面输出。

  2. 确保header()前无任何输出
    检查buyProducts.php文件开头,确保<?php标签前没有空格、空行,也不要在header()调用前写echo、HTML标签这类会产生输出的代码。

  3. 优化购物车清空逻辑
    不用循环逐个删除购物车项,直接重置数组更高效:

    $_SESSION["cart"] = []; // 直接清空购物车数组
    
  4. 添加exit()终止脚本执行
    发送header()后必须加exit()或die(),确保脚本立即停止,避免后续代码可能产生的输出干扰重定向:

    header("location: myCart.php?acquistato=c");
    exit(); // 必须添加,保证重定向立即生效
    

修复后的完整代码片段

$sql = "SELECT conti.Saldo FROM conti
        INNER JOIN carte ON(carte.Numero_carta = conti.Numero_carta)
        WHERE conti.Numero_carta = '$numero';";
if ($raw = $con->query($sql)) {
    $ris = $raw->fetch_assoc();
    $new = $ris["Saldo"] - $tot;
    $update = "UPDATE conti
               SET Saldo = '$new'
               WHERE Numero_carta = '$numero'";
    if ($con->query($update)) { 

        // invio email per visualizzazione acquisto
        if(sendEmails($tot)){
            $_SESSION["cart"] = []; // 直接清空购物车

            header("location: myCart.php?acquistato=c");
            exit(); // 终止脚本,确保重定向生效
        }
    }
}

额外安全提醒

你的SQL语句存在SQL注入风险,直接把$numero拼进SQL里非常危险,建议改用预处理语句:

// 预处理查询余额
$stmt = $con->prepare("SELECT conti.Saldo FROM conti INNER JOIN carte ON carte.Numero_carta = conti.Numero_carta WHERE conti.Numero_carta = ?");
$stmt->bind_param("s", $numero); // 根据$numero类型调整参数标识,s代表字符串
$stmt->execute();
$raw = $stmt->get_result();
$ris = $raw->fetch_assoc();

// 预处理更新余额
$stmt = $con->prepare("UPDATE conti SET Saldo = ? WHERE Numero_carta = ?");
$stmt->bind_param("ds", $new, $numero); // d代表数字类型,s代表字符串
$stmt->execute();

内容的提问来源于stack exchange,提问作者user18521537

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 14:05:28