Foros del Web » Programando para Internet » PHP »

Problema serio al actualizar un registro

Estas en el tema de Problema serio al actualizar un registro en el foro de PHP en Foros del Web. Hola a todos: quisiera exponerles el siguiente problema que me esta dando la actualuizacion de un registro en MySQL. Les comentos, tengo un formulario donde ...
  #1 (permalink)  
Antiguo 07/04/2008, 05:08
 
Fecha de Ingreso: febrero-2004
Mensajes: 47
Antigüedad: 20 años, 2 meses
Puntos: 0
Problema serio al actualizar un registro

Hola a todos:
quisiera exponerles el siguiente problema que me esta dando la actualuizacion de un registro en MySQL.
Les comentos, tengo un formulario donde quiero subir varias imagenes. y lo que quiero es recoger el nombre del fichero, renombrarlo y guardar el nombre renombrado en la base de datos en los campos correspondientes.
Este formulario le paso una variable (ID) que la recoge perfectamente, incluso le he puesto que me diga a quien corrsponde dentro de la BD y lo hace todo perfecto, pero me da error al enviar el formulario.
el codigo es el siguiente:

$directori_foto = "archivos";

$nombre1 = strtr($_FILES['foto1']['name'], "ñ'ÁÉÍÓÚÀÈÌÒÙáéíóúäëïöüàèìòù ", "n-AEIOUAEIOUaeiouaeiouaeiou_");
$tamanio1 = $_FILES['foto1']['size'];
$tipo1 = $_FILES['foto1']['type'];

$nombre2 = strtr($_FILES['foto2']['name'], "ñ'ÁÉÍÓÚÀÈÌÒÙáéíóúäëïöüàèìòù ", "n-AEIOUAEIOUaeiouaeiouaeiou_");
$tamanio2 = $_FILES['foto2']['size'];
$tipo2 = $_FILES['foto2']['type'];

$nombre3 = strtr($_FILES['foto3']['name'], "ñ'ÁÉÍÓÚÀÈÌÒÙáéíóúäëïöüàèìòù ", "n-AEIOUAEIOUaeiouaeiouaeiou_");
$tamanio3 = $_FILES['foto3']['size'];
$tipo3 = $_FILES['foto3']['type'];

global $HTTP_POST_VARS;

$nuevoNombre1 = time().$HTTP_POST_FILES['foto1']['name'];
$nuevoNombre2 = time().$HTTP_POST_FILES['foto2']['name'];
$nuevoNombre3 = time().$HTTP_POST_FILES['foto3']['name'];


$ar1 = "".$nuevoNombre1;
$ar2 = "".$nuevoNombre2;
$ar3 = "".$nuevoNombre3;

copy($_FILES['foto1']['tmp_name'],$nuevoNombre1);
copy($_FILES['foto2']['tmp_name'],$nuevoNombre2);
copy($_FILES['foto3']['tmp_name'],$nuevoNombre3);

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

$colname_Recordset1 = "-1";
if (isset($_GET['id'])) {
$colname_Recordset1 = $_GET['id'];
}
mysql_select_db($database_miconexion, $miconexion);
$query_Recordset1 = sprintf("SELECT * FROM promo WHERE id = %s", GetSQLValueString($colname_Recordset1, "int"));
$Recordset1 = mysql_query($query_Recordset1, $miconexion) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);


if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "formulario")) {


$updateSQL = sprintf("UPDATE promo SET foto1=%s, foto2=%s, foto3=%s WHERE id=%s",
GetSQLValueString($_POST['foto1'], "text"),
GetSQLValueString($_POST['foto2'], "text"),
GetSQLValueString($_POST['foto3'], "text"),
GetSQLValueString($_POST['id'], "int"));


mysql_select_db($database_miconexion, $miconexion);
$Result1 = mysql_query($updateSQL, $miconexion) or die(mysql_error());

$updateGoTo = "actualizado.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}


el codigo del formulario es:

<form action="<?php echo $editFormAction; ?>" method='POST' enctype="multipart/form-data" name='formulario' id='formulario'>

<table width="604" border="0">
<tr class="Estilo2">
<td width="195">Insertar Im&aacute;genes</td>
<td width="399" class="Estilo2">&nbsp;</td>
</tr>
<tr class="Estilo2">
<td>&nbsp;</td>
<td><input name="foto1" type="file" id="foto1" value="<?php echo $row_Recordset1['foto1']; ?>" /></td>
</tr>
<tr class="Estilo2">
<td>&nbsp;</td>
<td><input name="foto2" type="file" id="foto2" value="<?php echo $row_Recordset1['foto2']; ?>" /></td>
</tr>
<tr class="Estilo2">
<td>&nbsp;</td>
<td><input name="foto3" type="file" id="foto3" value="<?php echo $row_Recordset1['foto3']; ?>" /></td>
</tr>
<tr class="Estilo2">
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><span class="Estilo2">
<input type='submit' value='Actualizar datos' />
</span></td>
<td>&nbsp;</td>
</tr>
</table>
<input name="id" type="hidden" id="id" value="<?php echo $row_Recordset1['id']; ?>" />
<input type="hidden" name="MM_update" value="formulario" />

</form>

Le estaria muy agradecida a todo el que me ayude.

Saludos

PCMAC
  #2 (permalink)  
Antiguo 07/04/2008, 05:31
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 5 meses
Puntos: 5
Re: Problema serio al actualizar un registro

Ayudaría bastante que pusieses qué error te devuelve PHP.

Porque si no quién quiera ayudarte le toca empaparse todo el código.

Un saludo
__________________
[+]
[+]
  #3 (permalink)  
Antiguo 07/04/2008, 05:43
 
Fecha de Ingreso: febrero-2004
Mensajes: 47
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Problema serio al actualizar un registro

Hola yoseman:

el error que me da es el siguiente:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\Las_Carmelitas\subir.php:53) in C:\AppServ\www\Las_Carmelitas\subir.php on line 107

ojala te sirva de algo

saludos

pcmac
  #4 (permalink)  
Antiguo 07/04/2008, 06:09
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 5 meses
Puntos: 5
Re: Problema serio al actualizar un registro

Hola,

El problema es que cuando intentas cambiar una cabecera habiendo enviado código a la salida del navegador te devuelve ese warning.

Esto se soluciona poniendo al principio del script

Código PHP:
ob_start(); 
Y al final
Código PHP:
ob_end_flush(); 
O sino intentando que ninguna traza del script lleve a una función header() que tenga un print o un echo o html cualquiera delante. No sé si es el caso, pero si antes de tu header tienes algun echo o alguna línea html, o incluso alguna línea en blanco antes de abrir con <?php da ese error...

Pero sólo es un warning, supongo que el resto funciona entonces...

Salu2 ;)
__________________
[+]
[+]
  #5 (permalink)  
Antiguo 07/04/2008, 15:14
 
Fecha de Ingreso: febrero-2004
Mensajes: 47
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Problema serio al actualizar un registro

Hola yoseman:
muchas gracias por tu ayuda.
ya he resuelto el problema.

saludos

pcmac
  #6 (permalink)  
Antiguo 08/04/2008, 15:35
 
Fecha de Ingreso: febrero-2004
Mensajes: 47
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Problema serio al actualizar un registro

Hola yoseman:
ojala y no sea una impertinencia el preguntarte algunas dudas que tengo.
como te dije enel mensaje anterior, ya resolvi lo de subir los archivos a una carpeta del servidor desde el formulario, pero resulta que yo quisiea mejorarlo pues tengo el siguiente problema:

cuando llamo al formulario, leo si existe un nombre de fichero asignado a un pampo en la BD, si existe me muestra el nombre y la foto correspondiente.

ahora bien, yo tengo tres campos para guardar los nombres de tres ficheros que se pueden subir.
si ya he subido un fichero y despues (en otro momento) quiero subir otro fichero pues me quedan dos posibilidades mas, resulta que como no escribi nada en el primer campo del formulario de fichero pues ya tiene uno asignado en la BD, cuando le doy al boto de subir los archivos, resulta que me borra de la BD el nombre de fichero que habia en el primer campo y me sube y guarda los dos restantes, me entiendes?

aqui te envio el codigo completo del formulario a ver si me ayudas con ese problemita.

saludos

PCMAC


<form action="<?php echo $editFormAction; ?>" method='POST' enctype="multipart/form-data" name='formulario' id='formulario'><br />
<br />
<table width="779" border="0">
<tr class="Estilo2">
<td width="140">Insertar Im&aacute;genes</td>
<td width="441" class="Estilo2">&nbsp;</td>
<td width="184" class="Estilo2">&nbsp;</td>
</tr>
<tr class="Estilo2">
<td>&nbsp;</td>
<td>Fichero actual:
<input name="foto1" type="text"id="foto1" value="<?php if (isset($_POST['foto1'])) {
echo htmlentities($_POST['foto1']);
} else {
echo htmlentities($row_Recordset1['foto1']);}
?>" size="37"/>
<br />
Nuevo fichero:
<input name="foto1" type="file" id="foto1" value="<?php echo $row_Recordset1['foto1']; ?>" /></td>
<td>
<?php if ($row_Recordset1['foto1'] <>''){?>
<a href="archivos/<?php echo $row_Recordset1['foto1']; ?>" target="_blank"> <img src="archivos/<?php echo $row_Recordset1['foto1']; ?>" width="100" height="100" /></a>
<?php } ?>
</td>
</tr>
<tr class="Estilo2">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="Estilo2">
<td>&nbsp;</td>
<td>Fichero actual:
<input name="foto2" type="text"id="foto2" value="<?php if (isset($_POST['foto2'])) {
echo htmlentities($_POST['foto2']);
} else {
echo htmlentities($row_Recordset1['foto2']);}
?>" size="37"/>
<br />
Nuevo fichero:
<input name="foto2" type="file" id="foto2" value="<?php echo $row_Recordset1['foto2']; ?>" /></td>
<td>
<?php if ($row_Recordset1['foto2'] <>''){?>
<a href="archivos/<?php echo $row_Recordset1['foto2']; ?>" target="_blank"> <img src="archivos/<?php echo $row_Recordset1['foto2']; ?>" width="100" height="100" /></a>
<?php } ?>

</td>
</tr>
<tr class="Estilo2">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="Estilo2">
<td>&nbsp;</td>
<td>Fichero actual:
<input name="foto4" type="text"id="foto4" value="<?php if (isset($_POST['foto3'])) {
echo htmlentities($_POST['foto3']);
} else {
echo htmlentities($row_Recordset1['foto3']);}
?>" size="37"/>
<br />
Nuevo fichero:
<input name="foto3" type="file" id="foto3" value="<?php echo $row_Recordset1['foto3']; ?>" /></td>
<td>
<?php if ($row_Recordset1['foto3'] <>''){?>
<a href="archivos/<?php echo $row_Recordset1['foto3']; ?>" target="_blank"> <img src="archivos/<?php echo $row_Recordset1['foto3']; ?>" width="100" height="100" /></a>
<?php } ?>

</td>
</tr>
<tr class="Estilo2">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><span class="Estilo2">
<input type='submit' value='Actualizar datos' />
</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<br />
<a href="panel_control.php">Volver al Panel de Control</a>
<input name="id" type="hidden" id="id" value="<?php echo $row_Recordset1['id']; ?>" />
<input type="hidden" name="MM_update" value="formulario" />
</form>
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




La zona horaria es GMT -6. Ahora son las 16:25.