Foros del Web » Programando para Internet » PHP »

Problema actualización BB.DD

Estas en el tema de Problema actualización BB.DD en el foro de PHP en Foros del Web. Hola a tod@s y de antemano gracias por leer este post y si es posible ayudarme a solucionar el problema. Tengo una página desde hace ...
  #1 (permalink)  
Antiguo 14/03/2008, 09:08
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años, 1 mes
Puntos: 0
Sonrisa Problema actualización BB.DD

Hola a tod@s y de antemano gracias por leer este post y si es posible ayudarme a solucionar el problema.

Tengo una página desde hace muchos años pero ha comenzado a dar problemas con la actualización en el servidor a la última versión de PHP. He podido corregir gran parte de los problemas pero éste se me sigue resistiendo creo que es un problema con la sintaxis pero no encuentro donde, lo explico a continuación.

1. Se trata de un formulario que recoge datos de la BBDD y permite modificarlos, la primera parte lo hace sin problemas, pues lee la información perfectamente, pero no la actualiza, al darle a Guardar cambios se limita a recargar la página con la misma información.

2. La conexión es correcta pues lee los datos pero no los graba en la bbdd.


Aquí está el código donde creo que está el problema:

<?php
require_once("../../config.inc.php");
require_once("../../admin.inc.php");

$ruta_pagina_error = "../../";

$id_modulo = 1; // identificador del módulo "Presentación"

function actualizar_modulo($variables, $conec) {
global $id_modulo;

if (!isset($variables["activado"])) $variables["activado"] = "no";
else $variables["activado"] = "si";

$consulta =
"Update modulos set " .
"titulo='" . $variables["titulo"] . "', " .
"presentacion='" . $variables["presentacion"] . "', " .
"disposicion='" . $variables["disposicion"] . "', " .
"activado='" . $variables["activado"] . "' " .
"where id_modulo=" . $id_modulo;
mysql_query($consulta, $conec);
}

function actualizar_imagen($fichero, $conec) {
global $id_modulo;

redimensionar_imagen($fichero["tmp_name"], MAX_IMAGEN_MODULO, 100);
$contenido = leer_fichero($fichero["tmp_name"]);

$consulta =
"update modulos set " .
"imagen='" . addslashes($contenido) . "' " .
"where id_modulo=" . $id_modulo;
mysql_query($consulta, $conec);
}

function quitar_imagen($conec) {
global $id_modulo;

$consulta =
"update modulos set " .
"imagen='' " .
"where id_modulo=" . $id_modulo;
mysql_query($consulta, $conec);
}

function obtener_nombre_modulo($conec) {
global $id_modulo;

$consulta = "select nombre from modulos where id_modulo=" . $id_modulo;
$resultado = mysql_query($consulta, $conec);
$modulo = mysql_fetch_object($resultado);
mysql_free_result($resultado);
return $modulo->nombre;
}

?>



Gracias a tod@s por vuestra ayuda.
  #2 (permalink)  
Antiguo 14/03/2008, 15:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema actualización BB.DD

¿hay algún alma caritativa que me eche una mano, please?
  #3 (permalink)  
Antiguo 17/03/2008, 05:22
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema actualización BB.DD

Revisando nuevamente me he dado cuenta que me faltaba un paso que comentarles:

Desde el formulario se envía al archivo operacionmodulo.php con este código:
Código PHP:
<?php
    
require_once("modulo.inc.php");

    
$conec conectar_bd();

    if (!isset(
$operacion)) $operacion "";
    
    switch (
$operacion) {
        case 
"actualizar_modulo":
            
actualizar_modulo($HTTP_POST_VARS$conec);
            break;
        case 
"actualizar_imagen":
            
actualizar_imagen($HTTP_POST_FILES["fichero"], $conec);
            break;
        case 
"quitar_imagen":
            
quitar_imagen($conec);
            break;
        default: ;
    }
    
    
desconectar_bd($conec);
    
    
header("Location: index.php");
?>
Y este está vinculado al modulo.inc.php con el código

Código PHP:
<?php
require_once("../../config.inc.php");
require_once(
"../../admin.inc.php");

$ruta_pagina_error "../../";

$id_modulo 1// identificador del módulo "Presentación"

function actualizar_modulo($variables$conec) {
global 
$id_modulo;

if (!isset(
$variables["activado"])) $variables["activado"] = "no";
else 
$variables["activado"] = "si";

$consulta =
"Update modulos set " .
"titulo='" $variables["titulo"] . "', " .
"presentacion='" $variables["presentacion"] . "', " .
"disposicion='" $variables["disposicion"] . "', " .
"activado='" $variables["activado"] . "' " .
"where id_modulo=" $id_modulo;
mysql_query($consulta$conec);
}

function 
actualizar_imagen($fichero$conec) {
global 
$id_modulo;

redimensionar_imagen($fichero["tmp_name"], MAX_IMAGEN_MODULO100);
$contenido leer_fichero($fichero["tmp_name"]);

$consulta =
"update modulos set " .
"imagen='" addslashes($contenido) . "' " .
"where id_modulo=" $id_modulo;
mysql_query($consulta$conec);
}

function 
quitar_imagen($conec) {
global 
$id_modulo;

$consulta =
"update modulos set " .
"imagen='' " .
"where id_modulo=" $id_modulo;
mysql_query($consulta$conec);
}

function 
obtener_nombre_modulo($conec) {
global 
$id_modulo;

$consulta "select nombre from modulos where id_modulo=" $id_modulo;
$resultado mysql_query($consulta$conec);
$modulo mysql_fetch_object($resultado);
mysql_free_result($resultado);
return 
$modulo->nombre;
}

?>
Gracias
  #4 (permalink)  
Antiguo 17/03/2008, 16:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Problema actualización BB.DD

Prueba cambiar $HTTP_POST_VARS por $_POST y revisa si ya sirve tu código.

Saludos.
  #5 (permalink)  
Antiguo 18/03/2008, 02:20
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema actualización BB.DD

Gracias, lo pruebo y te cuento.
  #6 (permalink)  
Antiguo 18/03/2008, 02:29
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema actualización BB.DD

He realizado las modificaciones y sigue sin actualizar la BBDD, le digo guardar cambios y me devuelve la misma página sin los cambios. ¿qué otra cosa puede ser?
  #7 (permalink)  
Antiguo 18/03/2008, 04:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema actualización BB.DD

Veo que no es un problema sencillo, por si acaso y puede ayudar (yo ya no sé que hacer para que funcione) remito el código del archivo que contiene el formulario que remite al archivo operacionmodulo.php de antes.

Gracias por vuestra ayuda:

Código PHP:
<?php
    
require_once("modulo.inc.php");
//Inicio la sesión
session_start();

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
    
//si no existe, envio a la página de autentificacion
    
header("Location: index.php");
    
//ademas salgo de este script
    
exit();
}
    
    
$conec conectar_bd();
    
    
// obtiene información general del módulo
      
$consulta "select * from modulos where id_modulo=" $id_modulo;
    
$resultado mysql_query($consulta$conec);
    
$modulo mysql_fetch_object($resultado);
?>
<html>
<head>
<title>Adminsitraci&oacute;n</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="admin.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="95%"  border="0" align="center" cellpadding="0" cellspacing="0" class="tablaConBorde">
  <tr class="cabeceraTabla">
    <td height="30" align="left">::<?php echo strtoupper(obtener_nombre_modulo($conec)); ?>::</td>
    <td align="left" class="textoGrandeNegro">&nbsp;</td>
  </tr>
  <tr bgcolor="#CCCCCC">
    <td colspan="2" align="center" valign="top" class="textoGrandeNegro"><br>
      <table width="90%"  border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="tablaConBorde">
        <tr>
          <td class="cabeceraTablaPequena">Modificar datos del m&oacute;dulo</td>
        </tr>
        <tr>
          <form action="operacionmodulo.php" method="post">
          <input type="hidden" name="operacion" value="actualizar_modulo">
          <td>
          <table width="100%"  border="0" align="center" cellpadding="0" cellspacing="2" class="textoNormalNegro">
            <tr>
              <td width="27%" align="center" bgcolor="#FFCCCC">T&iacute;tulo:</td>
              <td width="73%"><input name="titulo" type="text" class="input" id="titulo" size="80" value="<?php echo pro_in($modulo->titulo); ?>"></td>
            </tr>
            <tr>
              <td align="center" bgcolor="#FFCCCC">Texto de presentaci&oacute;n:</td>
              <td><textarea name="presentacion" cols="80" rows="15" class="input" id="presentacion"><?php echo pro_in($modulo->presentacion); ?></textarea></td>
            </tr>
            <tr>
              <td align="center" bgcolor="#FFCCCC">Disposici&oacute;n:</td>
              <td><select name="disposicion" class="input">
                  <option value="hor" <?php if ($modulo->disposicion=="hor") echo "selected"?>>Horizontal</option>
                  <option value="ver" <?php if ($modulo->disposicion=="ver") echo "selected"?>>Vertical</option>
              </select></td>
            </tr>
            <tr>
              <td align="center" bgcolor="#FFCCCC">Activado:</td>
              <td><input name="activado" type="checkbox" class="input" id="activado" value="activado" <?php if ($modulo->activado=="si") echo "checked"?>></td>
            </tr>
            <tr align="center">
              <td colspan="2"><input name="Submit" type="submit" class="boton" value="Guardar cambios"></td>
              </tr>
          </table>
          </td>
          </form>
        </tr>
      </table>    
    <br>
    <table width="90%"  border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="tablaConBorde">
      <tr>
        <td class="cabeceraTablaPequena">Modificar imagen del m&oacute;dulo</td>
      </tr>
      <tr>
        <form action="operacionmodulo.php" enctype="multipart/form-data" method="post">
          <input type="hidden" name="operacion" value="actualizar_imagen">
        <td>
            <table width="100%"  border="0" align="center" cellpadding="0" cellspacing="2" class="textoNormalNegro">
              <tr>
                <td colspan="2" align="center" bgcolor="#FFFFCC">
                    <?php if ($modulo->imagen) { ?>
                        <img src="../../../imagen.php?id_modulo=<?php echo $id_modulo?>">
                    <?php } else { ?>
                        No hay ninguna imagen asociada al módulo.
                    <?php ?>
                </td>
                </tr>
              <tr>
                <td width="27%" align="center" bgcolor="#FFCCCC">Imagen:</td>
                <td width="73%"><input name="fichero" type="file" class="input" id="fichero" size="60"></td>
              </tr>
              <tr align="center">
                <td colspan="2"><input name="Submit" type="submit" class="boton" value="Guardar imagen">
                  <input name="quitar" type="button" class="boton" value="Quitar imagen" onClick="javascript: location.href='operacionmodulo.php?operacion=quitar_imagen';"></td>
              </tr>
            </table>
            </td>
        </form>
      </tr>
    </table>
    <br></td>
  </tr>
</table> 
</body>
</html>
  #8 (permalink)  
Antiguo 18/03/2008, 09:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Problema actualización BB.DD

Cambia esta linea:
Código PHP:
if (!isset($operacion)) $operacion ""
Por:
Código PHP:
$operacion $_POST['operacion'];
if (!isset(
$operacion)) $operacion ""
Saludos.
  #9 (permalink)  
Antiguo 18/03/2008, 14:20
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema actualización BB.DD

Parece de locos, he realizado el cambio y sigue con el mismo problema, procesa la orden pero no actualiza la base de datos y me devuelve la misma página sin cambios.

Gracias por tu ayuda, pero parece que por ahí no va la cosa, ¿se te ocurre alguna idea?
  #10 (permalink)  
Antiguo 18/03/2008, 14:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema actualización BB.DD

Corrijo, ahí estaba el el problema, no me funcionó inicialmente porque en el archivo tenía el cambio anterior que recomendabas, desaciendo ese cambio también funciona, aquí dejo el archivo final por si alguien tiene el mismo problema.

Gaptor podrías decirme pq se produjo el problema, así me lo aprendo para la siguiente y puede servir de guía a los compañeros para problemas similares y muchas gracias por tu ayuda.

Código PHP:
<?php
    
require_once("modulo.inc.php");

    
$conec conectar_bd();

    
$operacion $_POST['operacion'];
    if (!isset(
$operacion)) $operacion ""
    
    switch (
$operacion) {
        case 
"actualizar_modulo":
            
actualizar_modulo($HTTP_POST_VARS$conec);
            break;
        case 
"actualizar_imagen":
            
actualizar_imagen($HTTP_POST_FILES["fichero"], $conec);
            break;
        case 
"quitar_imagen":
            
quitar_imagen($conec);
            break;
        default: ;
    }
    
    
desconectar_bd($conec);
    
    
header("Location: index.php");
?>
  #11 (permalink)  
Antiguo 18/03/2008, 16:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Problema actualización BB.DD

Ese problema se suscita porque tienes register_globas en Off por lo que todas las variables de entrada en lugar de usar simplemente $var debes de usar el arreglo super global $_POST['var'] o $_GET['var'].

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:07.