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

为何使用jQuery在第二页加载带define校验的PHP页面无法正常工作?

问题原因分析

你的问题核心在于PHP服务器端代码与客户端JS代码的执行上下文完全独立:

  1. 第二页中的define("link", true);是服务器端处理该页面请求时执行的,这个常量仅存在于当前页面的服务器进程上下文里,不会被客户端浏览器保存或传递。
  2. 当客户端执行$("#load").load("sayfa.php");时,浏览器会发起一个全新的HTTP请求去访问sayfa.php。这个新请求的服务器上下文和第二页的请求完全无关,并没有定义link常量,因此sayfa.php里的if(!defined("link"))条件成立,直接执行exit("hata"),导致加载结果为"hata"而非预期内容。

可行的解决思路

  • 通过URL参数传递验证标识:
    修改第二页的JS代码:
    $("#load").load("sayfa.php?valid=1");
    
    对应修改sayfa.php:
    if(!isset($_GET['valid']) || $_GET['valid'] != 1){
        exit("hata");
    }
    
  • 使用Session保存验证状态:
    第二页初始化Session并设置标识:
    session_start();
    $_SESSION['allowed'] = true;
    
    sayfa.php中检查Session:
    session_start();
    if(!isset($_SESSION['allowed']) || $_SESSION['allowed'] !== true){
        exit("hata");
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:36:06