Foros del Web » Programando para Internet » PHP »

Ayuda con formulario PHP

Estas en el tema de Ayuda con formulario PHP en el foro de PHP en Foros del Web. Hola a todos, soy nueva en el foro, de hecho es el primer foro al que me suscribo y comento.. espero no ser de molestia ...
  #1 (permalink)  
Antiguo 18/10/2009, 16:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Ayuda con formulario PHP

Hola a todos, soy nueva en el foro, de hecho es el primer foro al que me suscribo y comento.. espero no ser de molestia jeje..

Bueno, mi problema es el siguiente:

Estoy desarrollando un sistema, el cual en una de sus partes puedo dar de alta "Establecimientos", el formulario lo manejo de la siguiente forma:

Clave (input tipo Text)
Denominacion (input tipo Text)
Propietario (input tipo Text)
Direccion (input tipo Text)
Colonia (input tipo Text)
Region (input tipo Text)
Ruta (input tipo Text)
Foto1 (input tipo File)
Foto2 (input tipo File)

En los campos foto1 y foto2 NO QUIERO ALMACENAR LAS FOTOS, puesto que se cargaría mucho la base de datos, lo unico que quiero almacenar son las RUTAS de la imagen...

El formulario ya funciona, al darle clic en el botón Guardar todos los datos se almacenan en la base de datos excepto Foto1 y Foto2.. la solucion que le di fue que le puse un input tipo Text junto al input tipo File y al momento en que escojen la foto la ruta se copia en la caja de texto, con eso ya los datos se almacenan..

¿alguna sugerencia para no hacer eso tan rústico?

Otra cosita.. la ruta se almacena completa, es decir, ruta absoluta ¿no? y así no me la muestra en la consulta, le tengo que quitar parte de la ruta para que funcione, ejemplo:

la ruta almacenada es -> C:\sistema\fotos\fotox.jpg

pero para que funcione solo tiene que ser -> fotos\fotox.jpg

¿alguna sugerencia para que se almacenen rutas relativas y no absolutas?

Gracias de antemano por su apoyo.. ¡Saludos!
  #2 (permalink)  
Antiguo 18/10/2009, 16:20
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda con formulario PHP

Yo estoy haciendo un sistema y voy a tener, cuando llegue la hora de programar esa parte, el mismo problema que tenes vos! jaja q casualidad.
Lo que habia pensado era solo guardar el nombre del archivo en el campo "imagen", y luego yo poner la ruta completa hasta llegar a la imagen, y concatenarla con el valor del campo "imagen" de la base de datos, se supone q solo deberia contener el nombre del archivo. Luego mantener nombres diferentes de imagenes dependera de mi...q sere quien administre el sitio.

Es lo primero que se me vino a la mente, espero que te sirva.

Saludos.
  #3 (permalink)  
Antiguo 18/10/2009, 16:24
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda con formulario PHP

Cita:
Iniciado por MarioAraque Ver Mensaje
Yo estoy haciendo un sistema y voy a tener, cuando llegue la hora de programar esa parte, el mismo problema que tenes vos! jaja q casualidad.
Lo que habia pensado era solo guardar el nombre del archivo en el campo "imagen", y luego yo poner la ruta completa hasta llegar a la imagen, y concatenarla con el valor del campo "imagen" de la base de datos, se supone q solo deberia contener el nombre del archivo. Luego mantener nombres diferentes de imagenes dependera de mi...q sere quien administre el sitio.

Es lo primero que se me vino a la mente, espero que te sirva.

Saludos.
Hola Mario, pues la tuya es una buena opción, el problema que tengo yo es porque no puedo hacer manualmente todo eso, puesto que son mas de 1000 registros en la base de datos, y además yo no seré quien administre el sistema si no tengo que dejarlo trabajando porque las personas que lo usarán solo saben lo básico de computación..
  #4 (permalink)  
Antiguo 18/10/2009, 16:27
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda con formulario PHP

El problema es que si vos almacenas todas las rutas en la base de datos, entonces al mas minimo cambio que hagas, esas rutas pierden valor. En cambio si las rutas las manejas desde PHP (con una constante o como quieras), es mas facil modificar un valor....y modificar la carpeta y ya esta.

Esperemos que te den una mejor solucion.

Saludos.
  #5 (permalink)  
Antiguo 18/10/2009, 16:38
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda con formulario PHP

Bueno, en eso tienes razón, pero la pregunta sería entonces, ¿como seleccionará el usuario únicamente el nombre de la fotografía? para luego concatenarla con la ruta.. Es interesante tu propuesta. Saludos Mario, gracias por tus respuestas.
  #6 (permalink)  
Antiguo 18/10/2009, 16:39
Avatar de javyjaja  
Fecha de Ingreso: diciembre-2008
Ubicación: cedral S.L.P.
Mensajes: 81
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Ayuda con formulario PHP

si quieres que no salga toda la ruta puedes cortarala,
Código PHP:
<?
 
// Inicializamos las variables
$tamano 50// tamaño máximo
$contador 0;
$texto 'Este es el texto que se c
ortará para que no ocupe más de 50 carácteres'
;
 
// Cortamos la cadena por los espacios
$arrayTexto split(' ',$texto);
$texto '';
 
// Reconstruimos la cadena
while($tamano >= strlen($texto) + strlen($arrayTexto[$contador])){
    
$texto .= ' '.$arrayTexto[$contador];
    
$contador++;
}
echo 
$texto;
?>

y para que no se vea una campo extra en un lado del foton de la imagen, agregalo en un campo oculto Hidden
  #7 (permalink)  
Antiguo 18/10/2009, 17:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda con formulario PHP

Hola Javy, tardé en responder porque estaba tratando de comprender tu código jeje.. suena lógico, pero por mas que lo volteo no le entiendo, lo que hace es solo contar 50 caracteres y que se corte?? lo que me interesa que se corte es la primera parte de la ruta

C:\sistema\

para que solo quede

fotos\xxxx.jpg

Quiza no comprendi bien el código, saludos y gracias por tu pronta respuesta.
  #8 (permalink)  
Antiguo 18/10/2009, 17:26
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda con formulario PHP

De todos modos todas tus rutas son de la forma C:\sistema\fotos\xxxx.jpg? Porque si eso lo tiene que cargar el usuario.....lo vas a tener dificil para que sean todas iguales.

En caso de que si sean iguales siempre, podemos encontrarle una solucion.

Yo te tarde en responder porque estaba viendo el partido de mi equipo jeje.

Saludos.
  #9 (permalink)  
Antiguo 18/10/2009, 17:55
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda con formulario PHP

Jaja ok ok, no te preocupes, estaba revisando mi código del sistema, todas mis rutas son iguales porque en el manual de los usuarios se les especificará que las fotografías serán almacenadas en la carpeta:

C:\AppServ\www\sistema\fotos

por tanto, la ruta que se debe almacenar en la base de datos es

fotos\nombredelafoto.jpg

Y además de que los datos no me los almacena si están jalados directamente del input tipo File que hay en el formulario, tengo que copiar la ruta a una caja de texto..

Saludos Mario, gracias por tomarte tu tiempo!
  #10 (permalink)  
Antiguo 18/10/2009, 18:00
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda con formulario PHP

Si todas tus cadenas tienen la forma:

C:\AppServ\www\sistema\fotos\archivo.jpg

Entonces si usas la funcion explode podes obtener el pedazo que vos queres:

$variable = explode("\",$rutacompleta,5);
$imagen = $variable[4];

Y creo que ahi deberia guardarte la ruta (fotos\nombredelafoto.jpg).
$rutacompleta vendria a ser C:\AppServ\www\sistema\fotos\archivo.jpg

Se entiende un poco? Pq me lie jeje... de ultima fijate en el manual de php como funciona explode y con los ejemplos vas a entender enseguida todo!

A ver si me contas de q va lo q estas haciendo jeje =)

Saludos.
  #11 (permalink)  
Antiguo 18/10/2009, 18:04
 
Fecha de Ingreso: julio-2005
Mensajes: 66
Antigüedad: 18 años, 9 meses
Puntos: 1
Respuesta: Ayuda con formulario PHP

prueba a namas guardar el nombre de la imagen.. puede generarlo o el oririginal y ya en el html pones la ruta donde el usuario esta subiendo la imgs

saludos
  #12 (permalink)  
Antiguo 18/10/2009, 19:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda con formulario PHP

Gracias por sus respuestas, me puse a investigar la funcion Explode que me dijo Mario, encontré algo como esto para separar una extension de un nombre de archivo:

$archivo=explode("\\", $_POST['foto1']);
$nombre_archivo=array_pop($archivo);
$archivo=explode(".",$nombre_archivo);
$nombre=$archivo[0];

pero si le hacemos algunas modificaciones quiza nos sirva, no?

$archivo=explode("\\", $_POST['foto1']);
$rutacompleta=array_pop($archivo);
$archivo=explode("\\",$rutacompleta);
$rutaatras=$archivo[4];
$rutarelativa=$archivo[5];

¿que piensan?
  #13 (permalink)  
Antiguo 19/10/2009, 01:47
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda con formulario PHP

Que buscas almacenar? fotos\archivo.jpg o archivo.jpg?

Mas arriba mencionaste que queres almacenar lo primero, tenes que limitar el explode porque si no no te va a funcionar:

Código PHP:
$archivo=explode("\\"$_POST['foto1'],5);
$nombrearchivo array_pop($archivo); 
Ese 5 viene a decirle a PHP en cuantos trozos, como maximo, queres partir el archivo en base al valor "\". Entonces el ultimo pedazo te va a quedar como "fotos\archivo.jpg" ... usas la funcion array_pop y ya lo tenes =)

Saludos.
  #14 (permalink)  
Antiguo 19/10/2009, 18:01
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda con formulario PHP

Hola, he estado haciendo pruebas, he logrado avanzar algo con sus consejos de manejar independientemente el nombre de la fotografía, he logrado hacer lo siguiente (a ver si me explico):

1. He puesto un script para que el contenido del input tipo File (el nombre de la imagen) se copie en una caja de texto llamada "nombrearchivo"

<script language="javascript">
function fAgrega()
{
document.getElementById("Text2").value = document.getElementById("Text1").value;
}
</script>

2. He creado una variable que contiene la cadena "fotos\" y otra que extrae el valor de la caja de texto llamada "nombrearchivo"

<?php
$cadena = "fotos\\";
$archivo = $_POST['nombrearchivo'];
?>

3. He creado una caja de texto donde voy a concatenar ambas variables

<input name="foto1" type="text" value="<?php echo "$cadena$archivo"; ?>" />

4. El resultado que obtengo en la caja de texto es solo: fotos\

no me suma la 2ª parte.. ¿donde está mi error? =(
  #15 (permalink)  
Antiguo 10/11/2009, 20:03
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Ayuda con formulario PHP

Hola, ya me quedó, Mario, muchisimas gracias por tu apoyo, solo era de usar la funcion para mover los archivos a la carpeta de imagenes, y otra para almacenar solo el nombre de la imagen en la base de datos $_FILES["foto"]["name"]

Saludos, y gracias a todos
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 04:21.