首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中使用多个文件一次访问数据库

问在php中使用多个文件一次访问数据库
EN

Stack Overflow用户
提问于 2014-03-02 19:17:48
回答 1查看 26关注 0票数 0

我正在尝试修改来自php的基于表单输入的页面。修改取决于mysql数据库查询的值。考虑示例文件:

代码语言:javascript
复制
<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中完成的

代码语言:javascript
复制
<?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标记访问这个变量作为超全局变量或类似的东西?

EN

回答 1

Stack Overflow用户

发布于 2014-03-02 19:24:07

您可以放入一个会话变量,这将允许您在站点上该用户的整个访问期间将其保留在那里。但是,如果只想保留一个页面,只需引用$user变量即可。如果没有设置,那么从你的数据库中获取。

代码语言:javascript
复制
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if (!isset($user))
    {
        $user = readUserNameFromDataBase($_POST["name"]);
    }
    if (empty($user)) { /* .. your code .. */ }
}

顺便说一下,检查是否设置了$_POST是一个相当糟糕的想法。因为它是超全局的,所以它总是被设置的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22126863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档