Foros del Web » Programando para Internet » PHP »

Modificar datos con ficheros

Estas en el tema de Modificar datos con ficheros en el foro de PHP en Foros del Web. Buenas estoy realizando un script en el cual tienes fotos subidas a traves de un administrador echo tb x mi con un upload, ahora toy ...
  #1 (permalink)  
Antiguo 16/10/2004, 05:24
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 14 años
Puntos: 0
Modificar datos con ficheros

Buenas estoy realizando un script en el cual tienes fotos subidas a traves de un administrador echo tb x mi con un upload, ahora toy haciendo un modificar, y cuando aparece la pantalla de modificar le tengo puesto el nombre d la foto y una etiqueta file para subir otra foto en el sitio de esa. Pongo mejor el codigo

Lo que habia pensado es: tener en variables de sesion el valor antiguo, por si en alguna etiqueta file no se modifica alguna foto, en el update coger el valor de la sesion y sino pues coge el valor nuevo. Lo he intentado asi pero no me funciona:


Modi1.php

session_name('misesion');
session_start();

//una variable por cada foto
session_register('r1');
session_register('r2');
session_register('r3');
session_register('r4');
session_register('r5');

//aqui vendria la conexion a base de datos...
//tb la muestra de datos

//muestro el valor que tiene en la base de datos
<tr>
<td><strong><font color="#FF9900" size="2" face="Arial, Helvetica, sans-serif">Foto 1</font></strong> </td>
<td><?= $linea->foto ?> <input name="userfile" type="file" id="userfile" size="22"></td>
</tr>

//ese valor se lo pongo a cada variable de sesion
$_SESSION[r1]=$linea->foto;
$_SESSION[r2]=$linea->foto1;
$_SESSION[r3]=$linea->foto2;
$_SESSION[r4]=$linea->foto3;
$_SESSION[r5]=$linea->foto4;

Modi2.php

//tengo mi conexion a la base de datos y a la sesion

y le tengo puesto esto


if ($_POST[userfile]=NULL)
{
$_POST[userfile]=$_SESSION[r1];
}
else
{
$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];

if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg") || strpos($tipo_archivo, "jpg")) && ($tamano_archivo < 600000))) {
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 600 Kb máximo.</td></tr></table>";
}else{
if (move_uploaded_file($_FILES['userfile']['tmp_name'],"fotos/".$_FILES['userfile']['name'])){



echo "El archivo ha sido cargado correctamente.<br>";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}

}

Al probarlo me dice:

Se permiten archivos .gif o .jpg
Se permiten archivos de 600 Kb máximo.
La extensión o el tamaño de los archivos no es correcta.

Es decir q no sube el fichero q he modificado, sino q el interpreta q he modificado todos, cuando solo lo he echo con alguno.

Esta es mi duda, gracias.
  #2 (permalink)  
Antiguo 18/10/2004, 08:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
NOO uses session_register() en conjunto con $_SESSION .. o usas un método o el otro pero nunca los dos a la vez.

(más info al respecto: www.php.net/session)

NOOO mezcles $_POST (o $_FILES) y otros acceso a variables externas (arrays "superglobales") con $HTTP_..._VARS .. Usa un métod u otro (recomendable usar los arrays superglobales $_....).

Por lo demás . .no alcancé a entender el problema .. pero intenta corregir lo que te comento, tal vez por ahí (por el valor de tus sesioens que no se están tomando bien o registrando) tengas el problema.

Un saludo,
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 08:50.