2013-05-04 4 views
0

Я использовал это в моем index.phpPHP Javascript содержание страницы

<? 
    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, он переносит меня на обслуживание. Когда я проверил переменную $site по var_dump($site) выводит:

bool(false) 

и если я проверил это так: var_dump($site->maintenance) выводит:

NULL 

Что я должен сделать, чтобы управлять обслуживание из базы данных и Когда я хочу, чтобы мой сайт работал, я меняю значение?

+1

'SELECT * FROM problems' LOL! : D Похоже, что этот * запрос выполнен успешно. :) (Не считайте это личным) – hek2mgl

+0

LOOOOOL: D окончательно решил проблему и сменил имя: D – user1477332

ответ

2

Почему вы используете JS для этого? Что делать, если пользователь JS отключен? Я бы использовал PHP вместо этого

Создайте таблицу для обслуживания с колонкой «maintenance_status», теперь это будет содержать логическое значение, 0 1 ... 0 => off, 1 => on, будет содержать только одну запись, которая будет создан один раз, а затем будет обновлять его всегда ...

Так что теперь позже создать эту функцию

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

это не работает ... я вхожу в phpmyadmin и устанавливаю значение tinyint 0 ... появляется tinyint (4) я не знаю этого нормального или того, что , и если я установил его в 1 .... tinyint (1) ... не обслуживает страницу – user1477332

+0

@ user1477332 Указывает длину этого целочисленного значения val, которое должно быть принято –

+0

, тогда я делаю ну в phpmyadmin .. но код еще не работает – user1477332

0

Тот факт, что $site является false, может быть вызвано ошибкой с запросом. Измените код 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 не забудьте перезапустить веб-сервер.

Смежные вопросы