【问题标题】:How to make Redirection PHP [closed]如何使重定向 PHP [关闭]
【发布时间】:2013-03-26 18:00:52
【问题描述】:

我试图检查数据库中的 varchar “race”,如果它为空,则重定向到页面。这是我的代码,我确保 var 为空,但即使在重新加载时它也不执行任何操作 我如何进行 php 重定向

    <?php
    $check_bone_query = mysql_query("SELECT bone FROM users WHERE name = '".$user->name."'");
    {
    if($check_bone_query == NULL){
    header('Location: /bone');
    }  
`   }  
    ?>

【问题讨论】:

  • 确保它是唯一发送的标头。在标头调用后添加die;
  • 我如何mysql_fetch_assoc
  • @Jocelyn 我们已经看到,在这种情况下,问题不在于重定向,而是重定向不起作用。

标签: php mysql redirect


【解决方案1】:

您没有获取任何记录,所以可以先使用mysql_fetch_assoc

$row = mysql_fetch_assoc($check_bone_query);
if (is_null($row)) { //or use empty()
  header('Location: /bone'); exit;
}

附:摆脱 MySQL_.* 函数使用 PDOMySQLi

【讨论】:

  • 在极少数情况下,在 php 重定向后不执行 exit; 会关闭浏览器。是的...我已经看到了。很多次。
【解决方案2】:

您是否在页面上加载任何内容(html 代码或回显)之前执行了 header 语句,如果您已经在响应正文中进行了某些操作,则无法使用 header()

所以:

<html>
 some html
</html>
<?php header(location: 'your new location'); ?>

不会工作 但是:

 <?php header(location: 'your new location'); ?>
 <html>
  some html
 </html>

【讨论】:

  • 请问我的回答有什么问题吗?因为如果我做了一些破旧的事情,我想知道下次该怎么做
  • 我没有反对它,但如果您处理的是严格的 php 文档,标题行不必是第一行。我有时在 if/else 语句中使用它
  • 但是当你在 header() 调用之前 echo somthing 时它不会起作用,这不是真的吗?
  • 对,你不会看到回显,但重定向仍然有效
  • 然后我会编辑这个
猜你喜欢
  • 1970-01-01
  • 2010-12-30
  • 2012-12-03
  • 1970-01-01
  • 2013-05-20
  • 2016-12-14
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多