我希望用户能够动态更改网站的标题。
我已尝试过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>
提前致谢!
答案 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;在我的会议期间,但你不会。