我正在尝试根据表单输入修改php
页面。修改取决于mysql
数据库查询的值。考虑一下示例文件:
<html>
<head>
<link href="a.php" rel="stylesheet" type="text/css" />
</head>
<body>
<form action="" method="post">
UserName: <input type="text" name="name"><br>
<input type="submit">
</form>
<?php if(isset($_POST)) {
$user=readUserNameFromDataBase($_POST["name"]);
if (empty($user)) { echo "Invalid user name!<br>"; }
}
?>
</body>
</html>
我还需要修改页面的CSS。这是通过收录的css
文件a.php
:
<?php header("Content-type: text/css"); ?>
body {
background: <?php if(isset($_POST)) {
$user=readUserNameFromDataBase($_POST["name"]);
if (empty($user)) { echo "#ff0000;"; }
else { echo "#00ff00;"; }
} else { echo "#00ff00;"; } ?>
}
这里两次访问数据库似乎有些过分,所以我的问题是:
是否可以访问数据库一次,定义变量$user
然后从不同的php
标签访问此变量作为超全局或类似的东西?
答案 0 :(得分:1)
您可以输入一个会话变量,这样您就可以将其保留在该网站上该人的整个访问位置。但是,如果它只是一个页面,你想要保持它,只需引用$user
变量。如果没有设置,那么从数据库中获取它。
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!isset($user))
{
$user = readUserNameFromDataBase($_POST["name"]);
}
if (empty($user)) { /* .. your code .. */ }
}
顺便说一句,检查$ _POST是否设置是一个相当糟糕的主意。因为它是一个超级全球,它总是设置。