首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Javascript维护页

PHP Javascript维护页
EN

Stack Overflow用户
提问于 2013-05-04 19:32:18
回答 2查看 516关注 0票数 0

我在我的index.php中使用了这个

代码语言:javascript
复制
<?
    include('config.php');
    if($site->maintenance > 0){
        echo "<script>document.location.href='maintenance'</script>";
        exit;
    }
?>

在检查数据库连接后,在我的config.php中

代码语言:javascript
复制
$site = mysql_fetch_object(mysql_query("SELECT * FROM problems"));

我在数据库中创建了一个表,并将其命名为problems,但即使我将值设置为0,它也会将我转移到维护。当我用var_dump($site)检查变量$site时,它会输出:

代码语言:javascript
复制
bool(false)

如果我像这样检查它:var_dump($site->maintenance),它会输出:

代码语言:javascript
复制
NULL

我必须做什么来管理数据库的维护,当我想让我的网站工作时,我改变了值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-04 19:40:51

你为什么要用JS来做这个?如果用户JS关闭了怎么办?我会改用PHP

创建一个具有列maintenance_status的维护表,现在它将保存一个布尔值0 1...0 =>关闭,1 =>打开,将只保留一条记录,该记录将创建一次,以后将始终更新它...

因此,稍后您将创建此函数

代码语言:javascript
复制
function check_maintenance($connection) { /* Call this function on every page, 
                                          pass your database connection var 
                                          as a function parameter */
   $query = mysqli_fetch_array(mysqli_query($connection, "SELECT * FROM tbl_maintenance LIMIT 1")); 
   /* Limit 1 is optional if you are using only 1 row as I told you, 
      if you are keeping records of the previous maintenance, probably 
      you've to sort desc and use limit 1 */

   if($query['tbl_maintenance'] == '1') { //Check boolean value, if it's on than redirect
      header('Location: maintenance.php'); //Redirect the user to maintenance page
      exit;
   }
}
票数 2
EN

Stack Overflow用户

发布于 2013-05-04 19:42:40

$sitefalse的事实可能是由查询问题引起的。将mysql代码更改为:

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM problems");
if(!$result) {
    die(mysql_error();
}

$site = mysql_fetch_object($result);

此外,您还应该学习如何在PHP中启用错误消息。我猜有一堆这样的东西。它们在默认情况下是禁用的,因为这在生产系统中可能是一个安全风险。但是当你在开发的时候,你的必须启用。您可以在开发系统的php.ini中启用:

php.ini

代码语言:javascript
复制
...
display_errors=1
...
log_errors=1
...
error_log="/path/to/writable/file"
...
error_reporting=E_ALL

修改php.ini后,不要忘记重新启动web服务器。

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

https://stackoverflow.com/questions/16373810

复制
相关文章

相似问题

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