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

如何在PHP脚本中正确引入Dotenv管理的TOKEN变量?

正确指定TOKEN变量的解决方法

问题根源

你的process_form.php存在两个关键问题:

  1. 未加载Dotenv环境变量库:测试脚本里有引入vendor/autoload.php并初始化Dotenv的逻辑,但process_form.php完全缺失这部分,导致$_ENV['TOKEN']根本无法被识别。
  2. 变量插值语法错误:"$_ENV['TOKEN']"这种写法在PHP双引号字符串中会触发语法报错——数组索引的单引号嵌套在双引号内不符合PHP解析规则。

修正后的代码写法

修改process_form.php的开头部分,完整引入环境变量加载逻辑并正确获取TOKEN:

<?php
// process_form.php
// 开启错误提示(调试用,生产环境可关闭)
error_reporting(E_ALL);
ini_set('display_errors', 1);

// 引入自动加载文件,加载Dotenv依赖
require 'vendor/autoload.php';
use Dotenv\Dotenv;

// 初始化并加载环境变量,路径与测试脚本保持一致
$dotenv = Dotenv::createImmutable(dirname(__DIR__));
$dotenv->load();

// 正确获取TOKEN:直接取值,避免错误的双引号插值
$TOKEN = $_ENV['TOKEN'];
$TELEGRAM_CHAT_ID = "-1002017740885";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $product = $_POST['product'];
    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    $attachments = $_FILES['attachments'];
    $invoice = $_FILES['invoice'];
/////
?>

额外说明

  • 若一定要使用双引号插值,正确写法为"{$_ENV[TOKEN]}",但直接使用$_ENV['TOKEN']更简洁且不易出错。
  • 确保.env文件路径与测试脚本一致,且PHP具备该文件的读取权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 10:25:33