【问题标题】:PHP Javascript maintenance pagePHP Javascript 维护页面
【发布时间】:2013-05-04 11:32:17
【问题描述】:

我在 index.php 中使用了这个

<?
    include('config.php');
    if($site->maintenance > 0){
        echo "<script>document.location.href='maintenance'</script>";
        exit;
    }
?>

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

$site = mysql_fetch_object(mysql_query("SELECT * FROM problems"));

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

bool(false)

如果我像这样检查它:var_dump($site-&gt;maintenance) 它输出:

NULL

我必须做些什么来管理数据库的维护以及当我希望我的网站工作时我更改值?

【问题讨论】:

  • SELECT * FROM problems 哈哈! :D 看起来 this 查询成功了。 :)(不要把它当作个人)
  • LOOOOOL :D 终于解决了问题并改了名字 :D

标签: php javascript maintenance


【解决方案1】:

您为什么要为此使用 JS?如果用户 JS 关闭了怎么办?我会改用 PHP

maintenance_status 列创建一个维护表,现在这将保存一个布尔值,0 1... 0 => 关闭,1 => 开启,将只保留一条记录,该记录将被创建一次, 以后会一直更新...

所以现在你稍后创建这个函数

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;
   }
}

【讨论】:

  • 这不起作用...我登录到 phpmyadmin 并将 tinyint 值设置为 0 ...看起来 tinyint(4) 我不知道这是正常的还是什么,如果我将其设置为 1 .. .. tinyint(1) ... 没有维护页面
  • @user1477332 它表示要接受的整数val的长度
  • 那么我在 phpmyadmin 中做得很好.. 但代码还没有工作
  • @user1477332 只有1也有效
  • 现在它正在和我一起工作.. 感谢您的帮助(错误来自行)我只是创建了新行而不是编辑第一行...再次感谢人....但最后一个问题---> 如果用户 JS 关闭了怎么办?用户会出现什么样的错误??????
【解决方案2】:

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

$result = mysql_query("SELECT * FROM problems");
if(!$result) {
    die(mysql_error();
}

$site = mysql_fetch_object($result);

您还应该学习如何在 PHP 中启用错误消息。我猜他们有很多。默认情况下禁用它们,因为这可能是生产系统中的安全风险。但是,当您进行开发时,您必须启用它们。可以在开发系统的php.ini开启:

php.ini:

...
display_errors=1
...
log_errors=1
...
error_log="/path/to/writable/file"
...
error_reporting=E_ALL

修改php.ini后别忘了重启web服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 2013-02-03
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多