【问题标题】:Using a variable value in <meta http-equiv="refresh" content=" url="/>?在 <meta http-equiv="refresh" content=" url="/> 中使用变量值?
【发布时间】:2017-10-23 10:13:54
【问题描述】:

好的,在我的 PHP 文件中,我需要该程序从一个大 if 循环的中间进行重定向。 当我手动设置秒数时,我可以成功使用该命令重定向到另一个页面,例如:

echo '<meta http-equiv="refresh" content="2; url='www.google.com'"/>';

但是,我在后台运行 SQL 查询,从那里我得到刷新“率”。该值我已传递给变量,我想像这样使用变量值:

echo '<meta http-equiv="refresh" content="'.$refreshvalue.'; url='www.google.com'"/>';

我不知道问题出在哪里。在我的程序中,当我手动设置值时,一切都按预期进行,但是当我尝试从变量中获取值时,程序根本不执行重定向。

查询给了我正确的值,我可以将它传递给变量。但我认为语法有问题。我尝试了其他几种方法。

另外,如果您有一个简单的替代方法来使用 'meta' 或 php 函数 header(),我非常有兴趣了解它。

是我的语法错误,还是这里发生了什么?

【问题讨论】:

  • 你想要达到什么目的?似乎您正试图强制 PHP 作为客户端,这可能会给您带来麻烦
  • 有什么原因不能在 PHP 中使用 header() 函数吗?您确实意识到 PHP 首先编译和执行,然后显示其自身的 HTML 副本。使用header()exit() 与在标题中设置元标记的效果不同。由于header标签只在页面显示时执行,不执行
  • @hassan 基本思想是,当另一个 sql 查询返回的行数超过 X 行时,该站点将重定向到另一个站点。我在这里实现的是最终用户希望能够修改重定向之间的时间。
  • 评估这个echo '&lt;meta http-equiv="refresh" content="'.$refreshvalue.'; url='www.google.com'"/&gt;';的输出是什么?
  • @WillParky93 好的,我基本上是在试验这里的想法。在此之前我尝试使用 php 标头,但我也无法在那里使用变量值。

标签: php variables redirect header meta


【解决方案1】:

您确定$refreshvalue 包含一个有效的整数值并且所有引号都正确转义了吗?它应该看起来像这样

$refreshvalue = 2;
echo '<meta http-equiv="refresh" content="' . $refreshvalue . '; url=\'http://www.google.com\'"/>';

【讨论】:

  • 它应该,除非我在这里做一些愚蠢的事情。 $sql = "SELECT secamount FROM seconds WHERE typeid=1"; $result = $mysqli->查询($sql); $刷新值 = $结果;当我在 PHPmyAdmin 中运行查询时,我得到一个整数。
  • var_dump($refreshvalue);以确保价值符合您的预期。
  • mysli::query 返回一个mysqli_result 对象。您必须获取第一行并从中获取列secamount
  • $refreshvalue = $result-&gt;fetch_array()['secamount']
  • 太棒了,谢谢 Philipp 和 Nic。现在我正确处理了查询值,它可以工作了!
【解决方案2】:

您有报价问题。改成这样:

echo "<meta http-equiv=\"refresh\" content=\"" . $refreshvalue . "; url=http://www.google.com/\">";    

如您的问题中所述,您正在使用 ' 在 www.google.com 之前关闭您的字符串 还要注意前面添加的 http://。

【讨论】:

    猜你喜欢
    • 2011-06-06
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2011-01-20
    • 2017-12-09
    • 2011-03-24
    相关资源
    最近更新 更多