• 使用 PHP header进行页面跳转中出现的疑惑


      在php中进行页面跳转时,常会用到header(); 而其最常用的两种用法,一是重定向;二是设置页面状态为"404未找到页面"。

    •   header(); 重定向很简单。 通过location:“页面需要跳转到的地址”,即可在打开当前页面时实现页面的跳转。

      如:以下代码实现了,打开当前页面后直接显示php官网页面的效果。

    header("location: http://www.php.net"); // 重定向页面
    exit;
    •   header(); 设置页面状态404却让新手有些费解。

      具体实现方式:

      

    header('HTTP/1.1 404 Not Found'); // 出现找不到网页的提示信息
    header("status: 404 Not Found");

      主要费解的原因有一下几点:

      1. 若在一个新建的php文件中,输入以上代码,页面会直接出现404 Not Found 提示。

      2. 然而,当我尝试在这两行代码后面添加一行输出语句后,发现404 Not Found提示消失,输出语句也正常显示。

    header('HTTP/1.1 404 Not Found');  
    header("status: 404 Not Found");
    echo ("hello");

    但是打开f12,调出开发者工具后,发现了报错。

      通过在网上搜索,发现原来 header('HTTP/1.1 404 Not Found'); 与 其后面的输出语句并不冲突。(原来以为两者之间会存在冲突,即使用了该语句后,之后的代码就不会被执行。)

      即使在前面使用了header('HTTP/1.1 404 Not Found');后面的php代码仍会被执行。只不过查看台中会有报错提示。

    • 最后,关于使用 header("location:"); 实现重定向页面时,网上提出了以下几点建议:

      1、location和":"号间不能有空格,否则会出错。

      2、在用header前不能有任何的输出,包括空格 (这个我亲自试过了,发现即使加了空格,或者输出语句依然能够实现跳转 对此存在疑问)

      3、header后的PHP代码还会被执行。

  • 相关阅读:
    如何使用BackgroundWorker
    Start SQL Service failed with message: "the log scan number passed to log scan in database 'master' is not valid"
    Cmdkey 凭证管理器工具
    PowerShell根据下载link下载文件
    vnc远程到连接linux服务器。
    shell远程取数据的脚本.
    about开源监控nagios.
    Android入门:File文件存储
    Android入门:Layout
    Android入门:Log介绍
  • 原文地址:https://www.cnblogs.com/AimeeCodeWorld/p/6867763.html
Copyright © 2020-2023  润新知