Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Función modo mantenimiento php

Hola a todos, bueno encontre un script para crear un modo mantenimiento. El script es funcional, pero me gustaria saber, como poner una funcion o variable, para poder activar y desactivar desde la administración, es decir, para que sea mas comodo en vez de editar el script en cada momento.

mi idea es o bien dar el valor desde admin, con un true o false, o bien valor 0 o 1...
==================
<?php
function maintenance($mode = FALSE){
if($mode){
header(“Location: http://misitio.com/maintenance.php”);
exit;
}else{
header(“Location: http://misitio.com/”);
exit;
}
}
?>
==================

Go to your index.php or any other index handler page, add this to the line just after the PHP open tag.
require_once(“maintenance.php”);

Then, if you wish to enter maintenance mode, just add the following line after the require_once line.
maintenance(TRUE);
alguna idea?
Editado
1
Puntos
3833
Visitas
6
Resp
Por zapikero hace 102 meses
Avanzado Sitio web
Respuesta #1
Hola, lo puedes de hacer de una manera muy sencilla, pones una columna en tu base de datos con estado 0 o 1 y según ese estado metes un header o el otro:
<?php
require_once('conexion.php');

//CONSULTA BASE DATOS
    mysql_select_db($database_conexion, $conexion);
    $query_DatosWeb = "SELECT estado FROM datos";
    $DatosWeb = mysql_query($query_DatosWeb, $conexion) or die(mysql_error());
    $row_DatosWeb = mysql_fetch_assoc($DatosWeb);

    //Si el estado es 0 redireccionar al index
    if($row_DatosWeb['estado']==0){
    	header("Location: http://misitio.com");
    }
    //Si el estado es 1 redireccionar a mantenimiento
    else if($row_DatosWeb['estado']==1){
    	header("Location: http://misitio.com/maintenance.php");
    }
    
    mysql_free_result($DatosWeb);

?>
salu2
1
Puntos
Por alber hace 102 meses
Administrador
Respuesta #2
Perfecto! funciona de lujo, pero mi pregunta es, si esto lo pongo en todas las paginas del sitio, siempre redirecionara a index no?
1
Puntos
Por zapikero hace 102 meses
Avanzado Sitio web
Respuesta #3
vale, para esto ultimo lo solucione quitando la fila del header
    	header("Location: http://misitio.com");
dejandolo asi
<?php
require_once('conexion.php');

//CONSULTA BASE DATOS
    mysql_select_db($database_conexion, $conexion);
    $query_DatosWeb = "SELECT estado FROM datos";
    $DatosWeb = mysql_query($query_DatosWeb, $conexion) or die(mysql_error());
    $row_DatosWeb = mysql_fetch_assoc($DatosWeb);

    //Si el estado es 0 redireccionar al index
    if($row_DatosWeb['estado']==0){
    }
    //Si el estado es 1 redireccionar a mantenimiento
    else if($row_DatosWeb['estado']==1){
    	header("Location: http://misitio.com/maintenance.php");
    }
    
    mysql_free_result($DatosWeb);

?>
1
Puntos
Por zapikero hace 102 meses
Avanzado Sitio web
Respuesta #4
Para optimizar el código podrías Solo estudiar el estado de valor 1, porque si no hará nada el estado 0 ¿De que sirve estudiarlo? ¡Ahorra bytes!
// Si el estado vale 1. No quiero a nadie aquí, estamos de mantenimiento.
if($row_DatosWeb['estado']==1)
     header("Location: http://misitio.com/maintenance.php");
Estoy un 90% seguro de que ni siquiera las llaves debes poner, porque estás ejecutando una sola línea después del IF.
0
Puntos
Por Jose hace 102 meses
Experto Sitio web
Respuesta #5
claro ten en cuenta que estamos hablando de códigos de ejemplo, se entiende que si es 0 no tienes que hacer nada con lo cual el código quedaría así:
<?php
require_once('conexion.php');

//CONSULTA BASE DATOS
    mysql_select_db($database_conexion, $conexion);
    $query_DatosWeb = "SELECT estado FROM datos";
    $DatosWeb = mysql_query($query_DatosWeb, $conexion) or die(mysql_error());
    $row_DatosWeb = mysql_fetch_assoc($DatosWeb);

    //Si el estado es 1 redireccionar a mantenimiento
    if($row_DatosWeb['estado']==1){
    	header("Location: http://misitio.com/maintenance.php");
    }
    
    mysql_free_result($DatosWeb);

?>
0
Puntos
Por alber hace 102 meses
Administrador
Respuesta #6
Buenas de nuevo!! después de un tiempo, usado esta función, me queda la duda, como hacerlo para que el administrador del sitio pueda verlo?

a día de hoy ya lo tengo en mysqli....

gracias y un saludete!!!
0
Puntos
Por zapikero hace 78 meses
Avanzado Sitio web
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate