PHP动态标题

时间:2013-07-23 20:19:48

标签: php dynamic web title

我希望用户能够动态更改网站的标题。

我已尝试过Stackoverflow上的所有动态网站标题问题,但没有一个能解决我的问题。

这是我的HTML

<fieldset>
    <legend style='width:500px;'><h3>Website Title</h3></legend>
    <label><h4> Change Website Title </h4></label>
    <form action='Config.php' method='POST'>
    <input type='text' name='websitetitle' placeholder='Website Title'/> <br />
    <input type='submit' value='Update' class='btn btn-small btn-primary' name='update'>
    </form>
  </fieldset>

CONFIG.PHP

   <?php
if(isset($_REQUEST['update'])) {
$title=strip_tags(stripslashes($_REQUEST['websitetitle']));
}

Global.php(标题所在的位置)

 <title><?php include 'Config.php'; echo $title; ?> </title>

提前致谢!

4 个答案:

答案 0 :(得分:0)

您的websitetitle中的变量$_REQUEST看起来有误吗?因为我“不相信”你可以传递“提交”的价值。

<fieldset>
<legend style='width:500px;'><h3>Website Title</h3></legend>
<label><h4> Change Website Title </h4></label>
<form action='Config.php' method='POST'>
<input type='text' name='websitetitle' placeholder='Website Title'/> <br />
<input type='submit' value='Update' class='btn btn-small btn-primary' name='update'>
</form>
</fieldset>

然后

<?php
if(isset($_REQUEST['websitetitle'])) {
$title=strip_tags(stripslashes($_REQUEST['websitetitle']));
}

然后

<title><?php include 'Config.php'; echo $title; ?> </title>

答案 1 :(得分:0)

<?php
    // config.php
    if(isset($_POST['update'])) {
        $title=strip_tags(stripslashes($_POST['websitetitle']));
    }
?>

 <title><?php require_once('Config.php'); echo $title; ?> </title>

<fieldset>
    <legend style='width:500px;'><h3>Website Title</h3></legend>
    <label><h4> Change Website Title </h4></label>
    <form method='POST'>
    <input type='text' name='websitetitle' placeholder='Website Title'/> <br />
    <input type='submit' value='Update' class='btn btn-small btn-primary' name='update'>
    </form>
  </fieldset>

您所做的是在提交表单后将用户重定向到config.php。 你想要做的是重新加载你的实际页面,然后让包含的脚本在设置标题标签之前做它应该做的事情。

答案 2 :(得分:0)

上面的答案看起来不错,但我会使用php会话。您可以摆脱global.php并将config.php更改为

<?php 
    if (issest($_REQUEST['websitetitle'])) {
        $_SESSION['title'] = $_REQUEST['websitetitle'];
    }
?>

然后将$_SESSION['title']放在需要动态标题的位置。 另外,请务必在文档的顶部添加session_start();

答案 3 :(得分:0)

在您的任何代码中没有保存值以便稍后重新迭代。每次您的浏览器加载新页面时,它都会忘记您没有明确告诉它保留的所有内容。

您可以将信息写入数据库,文件,cookie或会话。

对于会话示例:

<?php

$title = ( isset($_SESSION) && isset($_SESSION['title']) ) ? $_SESSION['title'] : 'Original, unaltered page title here';

?>
<!DOCTYPE html>
<html>
  <head>
    <title><?php echo $title; ?></title>
  </head>

收到表单的页面:

<?php

if ( isset($_REQUEST['websitetitle']) && !empty($_REQUEST['websitetitle']) )
{
  if ( !isset($_SESSION) ) session_start();
  $_SESSION['title'] = $_REQUEST['websitetitle'];
}

!isset($_SESSION)条件session_start();的原因是,如果您在已有活动会话时调用session_start(),则会抛出错误。如果您使用的是正确配置的生产系统,则此错误将隐藏在站点外的日志文件中,但仍会在那里用无意义的警告填充您的日志文件。可以将PHP配置为自动生成会话,使我们的调用session_start()也毫无意义。

在我的例子中,除非提交表格,否则我不会开始会话。你不需要为每一个爬过你页面的tom,dick,harry和bot提供会话。您只需要点击&#34;更新&#34;。

的会话

请注意,如果您希望网站标题永久更改和/或为所有用户更改,则会话不是正确的答案。会话是服务器和客户端之间的独占信息存储。如果我将网站标题更改为&#34; Hello World!&#34;然后我会看到&#34; Hello World!&#34;在我的会议期间,但你不会。