Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Duda sobre subida de archivos y nombre

Estas en el tema de Duda sobre subida de archivos y nombre en el foro de PHP en Foros del Web. Estoy creando una "Zona Personal" en mi tienda en la que cada usuario puede administrar sus "animales en adopcion" e introducir nuevos. La cosa es ...
  #1 (permalink)  
Antiguo 19/01/2011, 04:33
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Duda sobre subida de archivos y nombre

Estoy creando una "Zona Personal" en mi tienda en la que cada usuario puede administrar sus "animales en adopcion" e introducir nuevos.

La cosa es que al introducir animales, no pueden subir la foto, y deben enviarmelas a mi para subirlas; el nomrbe de la foto debe ser el IdAnimal; al ir a introducir un animal, te pone un IdAnimal Provisional, pero si alguien introduce un animal antes que esa persona, el nombre de esa foto no sirve; por lo tanto, me gustaria saber como hacer para que los usuarios pueda sibir sus fotos (solo una), y que el sistema, cuando introduce ese "animal", automaticamente renombre las fotos pendientes y las suba al servidor a la carpeta que yo quiera.

Muchas gracias.

Un saludo

PD: Agradeceria que me informarais si existe alguna aplicacion para gestionar este tipo de cosas con Joomla
  #2 (permalink)  
Antiguo 19/01/2011, 04:51
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

Otra opcion que podria hacer (algo mas rara), es en la pagina en la que aparece el buscador de animales, colocar un enlace a otra pagina de mi sitio en la que se sugiera la introduccion de otro/s animal/es.

Si se quisiera modificar, en la ficha del animal, apareceria un formulario para "sugerir las modificaciones". Esos datos irian a parar a una tabla secundaria, y se me mostrarian a mi en otra pagina distina.

Despues yo aceptaria la introduccion o modificacion de los animales que quisiera.

Para ello, igualmente necesito saber como se haria lo de las imagenes, y en este caso, tendria que llamarse de alguna forma intermedia hasta la aprobacion.


¿Cual creeis que seria el mejor sistema y el mas facil de hacer (la "Zona Personal" ya la tengo terminada)?

Muchas gracias

Un saludo
  #3 (permalink)  
Antiguo 19/01/2011, 06:04
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Duda sobre subida de archivos y nombre

Lo sencillo es subirlo por HTTP, osea por un formulario y PHP, desde la misma web.

Para ello tienes el campo File, que sirve para eso precisamente, para seleccionar archivos de tu PC y enviarselos al servidor.

Y después esta la parte del PHP, que debes usar la función move_uploaded_file para colocar la imagen en el directorio correcto y con el nombre que tu quieras.

Aqui tienes la referencia a la función.

Y aqui tienes unos ejemplos, pero te recomiendo que sustituyas $HTTP_POST_FILES, por $_FILES, ya que es el array que se usa actualmente, y el otro esta quedando desfasado si no me equivoco.

Un saludo
  #4 (permalink)  
Antiguo 19/01/2011, 06:12
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

oK, esto es lo que mas necesitaba. Por lo que veo, tambien se le puede restringir el tamaño, etc.

Por otro lado, en cuanto a que tipo de "gestion" utilizo, ¿Cual crees que es mejor ("Zona personal" o "Sugerir Modificacion / Introduccion")?

Muchas gracias
  #5 (permalink)  
Antiguo 19/01/2011, 06:23
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Duda sobre subida de archivos y nombre

Si los animales que se añaden pertenecen a los usuarios, una Zona personal, que fuese como un perfil o algo parecido, para añadir los animales, y después que cada animal tuviera su ficha, también editable, osea:

Código:
Panel de usuario:
    Cambiar Password
    Cambiar Datos
    etc etc
    Añadir animal
    Editar animal
    Ver animales
Así mientras sean opciones y datos de los mismos usuarios.

Un saludo
  #6 (permalink)  
Antiguo 19/01/2011, 06:35
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

Eso es lo que yo habi pensado.

Si tu entras a mi web ElUniversodelperro podras ver el buscador, si le das a buscar te aparecen los animales, y si le das a "Conoce a ..." ves su ficha completa.

El menu de usuario aparece en la parte superior derecha, al lado del perro y el gato de la cabecera.

Actualmente, tengo la "Zona Personal" ya diseñada, el problema es que esta en una pagina aparte, e introducir todo eso en Joomla puede ser complicado, ya que iria en la columna central y todo no cabe.

So quieres y puedes ayudarme mas, puedo colocar los codigos PHP que uzilizo y asi los puedo implementar y mejorar (ya que hay muchos fallos). Uso (index.php, introducir.php, examinar.php y modificar.php)

Una buena idea, seria utilizar la misma estructura que para mostrar la ficha de los animales, pero con todos los campos editable; y a la hora de introducir un animal lo mismo (me gustaria que se pudieran introducir varios a la vez (en la zona personal lo hago) y modificar varios a la vez - los que seleccione el usuario-


Por supuesto, mi "sueño" es que los usuarios de la web, Foro, Zona Personal y tienda se fusionene en 1 unicos sistema de usuarios. La Zona Personal y la web creo que no tendre ningun problema para "unirlos".

Si puedes ayudar, coloco los codigos y miramos los fallos (que son muchos).

Un saludo
  #7 (permalink)  
Antiguo 19/01/2011, 06:45
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Duda sobre subida de archivos y nombre

Pon los códigos y dime en que fallan.

Y sobre lo de introducir a joomla, como lo pretendes hacer?
Sabes crear/editar extensiones o componentes en joomla para implementar tu proyecto en joomla?

Joomla trabaja con componentes y modulos (y mas cosas pero esas son las principales) y cada componente y modulo tiene su front-end (parte visible, en la cual no se puede editar nada, solo ver, como las noticias del dia), y su back-end (parte administrativa, en la cual solo pueden acceder administradores o gente con permisos, y sirve para editar el contenido de ese componente/modulo, el cual se vera en su front-end)

Un saludo
  #8 (permalink)  
Antiguo 19/01/2011, 06:53
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

Pues la idea es hacerlo como lo del apartado busqueda, etc. Con un modulo de Joomla, incluye el contenido de un archivo .PHP

Yo modificare el menu de usuario, y lo hipervinculare a esos apartados de la web. Todo con codigo PHP se podran introducir y modificar los animales.

No hara falta nada que administrar por mi parte. Los usuarios podran añadir y modificar "sus propios" animales. Yo solo comprobare frecuentemente, que no introduzcan amsivamente perros ficticios, con fotos que no correspondan con los animales, etc

No se me ocurre como hacerlo con compoenente, etc; yo creo que asi se podra hacer.

En cuanto a los codigo, sobre todo implementarlos para no usar 200 variables o codigos de mas pudiendose hacer con bucles. Ahora colocare los codigos. Trabajaba con sesiones en PHP, pero si lo voy a hacer a traves de Joomla, no va a ser necesario.

Si crees que hay que hacerlo de alguna otra forma, o tienes cualquier cosa decir, hazlo.

Un saludo y muchisimas gracias por ayudar.
  #9 (permalink)  
Antiguo 19/01/2011, 07:19
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

Puesto que vamos a integrarlo con Joomla, el apartado index.php y examinar.php no son necesarios; asi que solo se necesitan: modificar.php e introducir.php

Estos es el codigo de modificar.php

Puesto que es muy muy largo, este es el enlace a modificar.txt Enlace

Hay que saber que empieza recogiendo valores de variables (se pueden modificar hasta 20 animales a la vez, esto con bucles se acortaria bastante). Despues se realizan los updates, despues se muestran todos los animales que concuerdan con el email, y por ultimo el formulario para modificar los datos de los animales.

Por cierto el codigo raro (selectdependientes) es para lograr que si seleccionas perros, te muestren las razas de los perros y los tamaños de los perros, y si seleccionas gatos, sus razas y sus tamaños. Tambien pasa con lugar (protectora, asociacion, particular), lugar (nombre de la protectora / asociacion) y provincia de la misma. Tuve que hacerlo asi porque no sabia otra forma de hacerlo.

He usado sesiones, que no seran necesarias.


Ahora colocare el de introducir.txt y te explicare como funciona
  #10 (permalink)  
Antiguo 19/01/2011, 07:27
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

Aqui esta el codigo de introducir Enlace

La estructura es la de siempre: recoger valor de variables, realizar inserts (se acortan con bucles), presentar formulario para elegir cuantos animales quieres introducir y depues te aparece el formulario para colocar los datos.

El codigo de mas y scripts es para que cargue bien lo de los campos dependientes (seguro que se puede hacer de otra forma mas facil).

Se resume en esto:
Perro > Razas perro > Tamaños de perro
Gato > Razas gatos > Tamaños de gato

Lugar (particular, etc) > Nombre > Provincia

Ahora voy a ir modificando codigo innecesario para dejarlo mucho mas corto y legible.

Por cierto, visto el codigo, ¿ves posible realizar lo que pretendo?

Muchas gracias por tu ayuda.

Un saludo

Un saludo

Última edición por victor5atodogas; 19/01/2011 a las 07:27 Razón: Otras
  #11 (permalink)  
Antiguo 19/01/2011, 07:52
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Duda sobre subida de archivos y nombre

Bueno de momento solo he mirado las primeas lineas de modificar.php, porque voy a ir poco a poco, y captar tantas variables así, es una burrada, con lo sencillo que es usar un bucle :).

Código PHP:
$numVariables 20//el numero de variables ID, ya que en este caso vamos a recojer idmascota
$id = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i 0$i $numVariables$i++){
$id[$i] = $_POST['idmascota' $i];
}
//ahora tenemos todas las ids almacenadas en el array $id 
Eso si, tendras que hacer cambios en tu formulario, ya que los arrays empiezan desde 0, y tus variables empezaban desde 1.

Espero que el ejemplo te sirva para optimizar tu código, entonces seguire mirando mas cosas.

Un saludo
  #12 (permalink)  
Antiguo 19/01/2011, 08:20
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

Ok, con eso se puede reducir todo bastante. Me voy a ir haciendo los cambios y las cosas que sobran en modificar.txt (tengo que crearlo).

Muchas gacias por ir ayudandome
  #13 (permalink)  
Antiguo 19/01/2011, 09:10
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

Ya he quitado codigo innecesario, reduciendose todo considerablemente.

El original lo encuentras aqui y el "modificado" (mas legible) esta aqui

Creo que con esto podemos avanzar mas y hacer todo mejor sin volvernos locos.

Un saludo
  #14 (permalink)  
Antiguo 19/01/2011, 15:37
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

Ya he comprobado mas todo el archivo y ya esta casi listo; comprobar alguna cosa y listo.

Si no me equivoco, para sacar el email del usuario necesitare hacer una SQL en la BBDD de Joomla, ya que no vendra guardado en ninguna variable. Por lo demas, veras que he puesto bastantes comentarios para que sepas que se hace en cada lado; y salvo el tema de tipo > raza > tamaño esta medio terminado ese documento "modificar".

Cuando terminemos con ese hare lo mismo para introducir (que aparentemente deberia ser mas facil de hacer).

Un saludo
  #15 (permalink)  
Antiguo 19/01/2011, 15:43
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Duda sobre subida de archivos y nombre

Y el archivo actualizado?
  #16 (permalink)  
Antiguo 19/01/2011, 15:55
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

Perdon, se me habia olvidado decirte que es la misma url que antes, o sea esta

Lo dicho, creo que veras todo bastante bien explicado.

Como te comente, tener todo practicamente hecho, se nota!!xD

Un saludo
  #17 (permalink)  
Antiguo 03/02/2011, 14:41
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Duda sobre subida de archivos y nombre

Bueno, ahora que tengo tiempo ya que he terminado la tienda, me he puesto manos a la obra y ta tengo todo practicamente listo (modificar), aunque me he topado con un error algo absurdo pero que no me deja continuar.

El codigo es muy largo, asi que solo voy a poner lo esencial:

Código:
<?php
var_dump($_POST);  
$ema = $_SESSION['em'];
if ($ema <> ""){
$numVariables = 21;
$v = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$v[$i] = $_POST['v' . $i];
echo "v" .$i ."='" .$v[$i] ."'";
}
//RECOGEMOS LAS VARIABLES
if ($v[1] == ""  and $v[2] == "" and $v[3] == "" and $v[4] == "" and $v[5] == "" and $v[6] == "" and $v[7] == "" and $v[8] == "" and $v[9] == "" and $v[10] == "" and $v[11] == "" and $v[12] == "" and $v[13] == "" and $v[14] == "" and $v[15] == "" and $v[16] == "" and $v[17] == "" and $v[18] == "" and $v[19] == "" and $v[20] == ""){
//NO MODIFICAR DATOS
$accion = "listar";
//COMPROBAMOS QUE VAMOS A MODIFICAR (UPDATE) O A MOSTRAR ALGUNOS)
$id = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$id[$i] = $_POST['idmascota' . $i];
}
if ($id[1] == ""  and $id[2] == "" and $id[3] == "" and $id[4] == "" and $id[5] == "" and $id[6] == "" and $id[7] == "" and $id[8] == "" and $id[9] == "" and $id[10] == "" and $id[11] == "" and $id[12] == "" and $id[13] == "" and $id[14] == "" and $id[15] == "" and $id[16] == "" and $id[17] == "" and $id[18] == "" and $id[19] == "" and $id[20] == ""){
$accion = "listar";    
}
else
{
$accion = "modificar";
}
}
else
{
//ALGUNA NO VA VACIO Y X ESO QUEREMOS LISTAR ALGUNOS EN CONCRETP MOSTRARX    
echo "PASO2";
$accion = "mostrarx";
}
echo "accion=" .$accion;




if ($accion == "mostrarx"){
$nombre = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$nombre[$i] = $_POST['nombre' . $i];
}
$paises = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$paises[$i] = $_POST['paises' . $i];
//ESTA LINEA SIGUIENTE ESTA MAL Y NO SE PORQUE
//$paises[$i] = substr($paises[$i]20, 0, 1);
}
$tamano = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$tamano[$i] = $_POST['tamaño' . $i];
}
$estado = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$estado[$i] = $_POST['estado' . $i];
}
$es = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$es[$i] = $_POST['esterilizado' . $i];
}
$ed = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$ed[$i] = $_POST['edad' . $i];
}
$foto = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$foto[$i] = $_POST['foto' . $i];
}
$acogido = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$acogido[$i] = $_POST['acogido' . $i];
}
$ap = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$ap[$i] = $_POST['apadrinado' . $i];
}
$peso = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$peso[$i] = $_POST['peso' . $i];
}
$altura = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$altura[$i] = $_POST['altura' . $i];
}
$disp = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$disp[$i] = $_POST['disponible' . $i];
}
$hist = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$hist[$i] = $_POST['historia' . $i];
}
$vacunas = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$vacunas[$i] = $_POST['vacunas' . $i];
}
$enfermedades = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$apenfermedades[$i] = $_POST['enfermedades' . $i];
}
$estados = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$estados[$i] = $_POST['estados' . $i];
}
$sexo = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$sexo[$i] = $_POST['sexo' . $i];
}
$youtube = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$youtube[$i] = $_POST['youtube' . $i];
}
$comunidad = array(); //almacenaremos las IDS en un array, como es logico, para poder manejar el conjunto facilmente
for($i = 1; $i < $numVariables; $i++){
$comunidad[$i] = $_POST['comunidad' . $i];
}
}
  //AQUI TENGO QUE AÑADIR ALGO PARA SABER SI EL USUARIO ES PARTICULAR / PROTECTORA O ASOCIACION
  
 
    
    
    //HACEMOS LOS UPDATES CON LOS VALORES QUE CORRESPONDAN (SUPONGO QUE ESTARA BIEN))
    if ($accion == "modificar"){
        
        HACEMOS UNAS COSAS

}
}
  
if ($accion == "listar"){
    
    
    HACEMOS UNAS COSAS

<?php
$contador = $contador + 1;
$idmascota = $aa['mascota_id'];
?>
<input type="checkbox" name="
<?php
echo "v" .$contador;
?>" value="<?php
echo $idmascota;
?>"> 
<?php
echo " " .$idmascota;
?>

}
if ($accion == "mostrarx"){
    
    
    HACEMOS OTRAS COSAS
}
mysql_close($conexion);
REALIAZMOS UNA CONEXION A LA BASE DE DATOS DE JOOMLA PARA QUE TODO FUNCION (EL PORQUE NO LO ENTIENDO PERO SI NO SE HACE NO FUNCIONA)
?>

Explico asi por encima como funciona:

Apartado 1: Listar
Si es la priemra vez que entras, te LISTA de 20 en 20 todos los animales que te correspondan.

Apartado 2: Mostrarx
Si en el listar, se ha seleccionado 1 o varios checkbox, se envian por POST las variables y se muestran a modo COMPLETO los animales seleccionados (MAXIMO 20 YA QUE NO SE PUEDEN LISTAR + DE 20 | LIMITACION MIA)

Apartado 3: Modificar
Si has estado en el apartado 2 y le das a un boton Modificar, se envian muchas variables por POST y se realiza el UPDATE correspondiente.

DUDA: No se porque pero no me recoge bien las varibales (y eso que se que llegar llegan, ya que el var_dump me lo indica), pero si selecciono un checkbox y le doy al boton de modificar, me deberia poner accion = mostrarx pero no lo hace porque como digo las variables NO las recoge.

¿¡Estoy haciendo algo mal? ¿El que?

Muchas gracias.

Un saludo

Etiquetas: nombre, subida
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 01:03.