【问题标题】:Variable php title tag doesn't work可变的php标题标签不起作用
【发布时间】:2015-03-03 13:06:53
【问题描述】:

以下代码似乎不起作用,我想知道为什么?

<head>
<?php
$pageTitle = $_POST["title"];
"<title>". $pageTitle."</title>";
?>
</head>

我收到以下消息:

注意:未定义的索引:标题

我要做的就是根据用户的输入设置网页的标题。

我忘了说我有两页。一个带有表单和一个 php 文件的 HTML 页面。 HTML 文件的格式如下:

<form action="executer.php" method="POST">

Titel: <input style="margin-left: 83px" type="text" name="titel"><br><br>
Achtergrondkleur:   <select>
                        <option name="blauw" value="blauw">Blauw</option>
                        <option name="groen" value="groen">Groen</option>
                        <option name="geel" value="geel">Geel</option>
                    </select><br><br>
Lettertype: <input style="margin-left: 50px" type="radio" name="lettertype" value="ari">Arial<br>
            <input style="margin-left: 124px" type="radio" name="lettertype" value="comi">Comic Sans<br>
            <input style="margin-left: 124px" type="radio" name="lettertype" value="timi">Times New Roman<br><br>

Lettergrootte:  <select style="margin-left: 32px">
                    <option name="5" value="5">5</option>
                    <option name="10" value="10">10</option>
                    <option name="15" value="15">15</option>
                </select><br><br>
<input type="submit" name="verzenden" value="Verzenden!">

</form>

【问题讨论】:

  • 您是否发布了包含标题元素或明确设置索引的表单?
  • POST 数组中没有名为title 的索引。就这么简单。
  • 您的问题不清楚。 $_POST["name"] 是从哪里来的?这个警告很明显,你不觉得吗?
  • 这里缺少很多东西来给出一个具体的答案。将错误报告添加到您打开 PHP 标记之后的文件顶部,例如 &lt;?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,以查看它是否产生任何结果。你已经足够调试你的代码了。还要确保您的表单包含 POST 方法和 name 属性。
  • 不少问题的答案解决了您之前的代码问题。在发布新问题之前,请阅读meta.stackexchange.com/questions/5234/…,然后返回解决了您的代码问题的答案,并对答案旁边的复选标记执行相同操作。让我们保持 Stack 的成功。

标签: php post title


【解决方案1】:

我收到以下消息:注意:未定义索引:标题

答:表单中的元素没有名称属性。

例如:

<input type="text" name="title">
                   ^^^^^^^^^^^^

另外,请确保您的表单确实具有 POST 方法。

即:

<form action="handler.php" method="post">

只是为了争论,您缺少echo

"<title>". $pageTitle."</title>";

也使用isset()

if(isset($_POST["title"])){
    $pageTitle = $_POST["title"];
     echo "<title>". $pageTitle. "</title>";
}
else{
    $pageTitle = "<title>Title for page was not set.</title>";
     echo $pageTitle;
}

error reporting 添加到文件顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告应该只在暂存阶段完成,而不是在生产阶段。

【讨论】:

  • @Mirwais 不客气。我们现在可以关闭问题并将其标记为已解决。以下是meta.stackexchange.com/questions/5234/… 然后用我的答案旁边的复选标记做同样的事情,干杯!
  • 刚刚收到一个关于错误报告的问题。我正在处理的文件有一个 .php 文件,但它主要包含 html 文本。所以我要做的是在文件中使用 标记,否则我必须回显整个 html 部分。就我而言,我可以将error_reporting放在哪里?我的文件以: 开头
  • @Mirwais 你会做&lt;?php error_reporting(E_ALL); ini_set('display_errors', 1); ?&gt; 然后&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; 等等,如果你想把PHP 放在HTML 中,那很好,但只要你做&lt;body&gt;&lt;h2&gt;Text&lt;/h2&gt;&lt;?php echo "More text"; ?&gt;&lt;/body&gt; 类型的东西。
  • 我明白了。你帮了大忙。谢谢。
【解决方案2】:

你忘了回声吗?

<head>
<?php
$pageTitle = $_POST["title"];
echo "<title>". $pageTitle. "</title>";
?>
</head>

【讨论】:

  • 它显示警告:我收到以下消息:注意:未定义索引:标题。
  • 但你也是对的@ToonSuperLove。他/她忘记包含echo
猜你喜欢
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-29
  • 1970-01-01
  • 2011-01-29
  • 2016-11-09
相关资源
最近更新 更多