Foros del Web » Programando para Internet » PHP »

Problema ingresando datos duplicado en un for

Estas en el tema de Problema ingresando datos duplicado en un for en el foro de PHP en Foros del Web. Hola amigos tengo un código un for donde recibe información de un formulario que se puede duplicar gracias a Jquery el problema es que cuando ...
  #1 (permalink)  
Antiguo 27/05/2016, 22:20
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Problema ingresando datos duplicado en un for

Hola amigos tengo un código un for donde recibe información de un formulario que se puede duplicar gracias a Jquery el problema es que cuando recibe los datos no lo ingresa completo, en el primer caso solo atrapa el ip conjunto al nombre de la foto pero no la extensión.
El segundo archivo que tiene que subir solo atrapa el ip y no atrapa el nombre. Le eh buscado al buelta en muchas forma y no encuentro como repararlo.

este es el código PHP que recibe los datos enviado en el formulario
Código PHP:
Ver original
  1. //regoge los datos del formulario
  2.  for($i=0;$i<count($_POST['materiales']);$i++){
  3.         $materiales = $_POST['materiales'][$i];
  4.         $inser = limpiar($materiales);
  5.         mysqli_query($conexion, "INSERT INTO A (rival) VALUES ('$inser')");
  6.          
  7.        
  8.           // -----codico para subir la imagen ------------
  9.         $rutaEnServidor = '../../imagenes/img'; //nombre de la carpeta donde se alojara la imagen en tu servidor
  10.         $rutaTemporal = $_FILES['imagen']['tmp_name'][$i];
  11.         $nombreImagen = $_FILES['imagen']['name'][$i]; //nombre de la imagen
  12.         //renombrando la iamagen para no causar confligto con dos nombre iguales  
  13.         $renameip = $_SESSION['id'].$nombreImagen; //mesclo una variable desession que es unica de el usuario con el nombre de la foto
  14.         $ruta_visual = "imagenes/" .$renameip; //graba la ruta que se graba en al columna de la tabla de la base de datos
  15.         $rutaDestino = $rutaEnServidor.'/'.$renameip; // esto '/' pone un slash, describe la ruta dle destino
  16.         move_uploaded_file($rutaTemporal, $rutaDestino);
  17.         echo $ruta_visual;}
  #2 (permalink)  
Antiguo 28/05/2016, 04:45
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 12 años, 4 meses
Puntos: 39
Respuesta: Problema ingresando datos duplicado en un for

Así no se entiende nada, si quieres ayuda deberías poner al menos el formulario que estás enviando y código jQuery que estás usando para tratarlo.
__________________
Diseño Web - Arisman Web
  #3 (permalink)  
Antiguo 28/05/2016, 07:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema ingresando datos duplicado en un for

Cita:
[...] un formulario que se puede duplicar gracias a Jquery el problema es que cuando recibe los datos no lo ingresa completo [...]
Claro, y prefieres creer que el problema es de PHP y no de Javascript (jQuery), cuando bien claro dices que duplicas los campos con jQuery. No te pases de listo.

Entiende que en PHP recibirás lo que mandes del navegador, si no mandas bien las cosas ¿por qué culpar a PHP de no obtenerlas?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 28/05/2016, 09:03
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Problema ingresando datos duplicado en un for

es que no es jquery ni el formulario. funciona bien con el primer post que es $_POST['materiales'] por lo que veo en la proposición no incluir la variable array $_FILES['imagen']

estoy trabajando en ello
estas asi
for($i=0;$i<count($_POST['materiales']);$i++)

pero deveria estar asi
for($i=0;$i<count($_POST['materiales']) or $_FILES['imagen'] ;$i++)

creo que el problema es eso lo hice con solo con $_FILES['imagen'] y me dice que la

un error asi
imagenes/79aimagenes/79.
Notice: Undefined offset: 2 in C:\xampp\htdocs\room\funciones\post\proceso.php on line 23
imagenes/79j
Notice: Undefined offset: 3 in C:\xampp\htdocs\room\funciones\post\proceso.php on line 23
imagenes/79p
Notice: Undefined offset: 4 in C:\xampp\htdocs\room\funciones\post\proceso.php on line 23
imagenes/79g
  #5 (permalink)  
Antiguo 28/05/2016, 09:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema ingresando datos duplicado en un for

La mejor forma de entender exactamente qué datos recibes es depurando un poco:
Código PHP:
Ver original
  1. var_dump($_POST);
  2. var_dump($_FILES);

Así sabrás exactamente lo que recibes y en qué forma, analiza bien esa parte.

Sólo te recuerdo que $_POST no es compatible con $_FILES así que no puedes iterar de la misma forma.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 28/05/2016, 09:54
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Problema ingresando datos duplicado en un for

me funciona bien el for con var_dump($_POST); pero con $_FILES solo me imprime uno si lo pongo centro del for como lo tenia pensado
si lo concateno con or
sale con este error
otice: Array to string conversion in C:\xampp\htdocs\room\funciones\post\proceso.php on line 22
string(8) "cocoteco"
string(12) "imagenes/79a"
Notice: Array to string conversion in C:\xampp\htdocs\room\funciones\post\proceso.php on line 22


lo concateno asi
Código PHP:
Ver original
  1. for($i=0;$i<count( $_POST['materiales'] . $_FILES['imagen']['tmp_name']);$i++)
  #7 (permalink)  
Antiguo 28/05/2016, 10:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema ingresando datos duplicado en un for

La concatenación es sólo para cadenas de texto, no para arrays.

El hecho de "concatenar" no hará que por arte de magia vengan los datos, eso es ridículo.

Estás tratando de hacer cosas de muy mala gana, tratando de inventarte sintaxis que no es válida ¿por qué eres así?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 28/05/2016, 10:16
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Problema ingresando datos duplicado en un for

Cita:
Iniciado por pateketrueke Ver Mensaje
La concatenación es sólo para cadenas de texto, no para arrays.

El hecho de "concatenar" no hará que por arte de magia vengan los datos, eso es ridículo.

Estás tratando de hacer cosas de muy mala gana, tratando de inventarte sintaxis que no es válida ¿por qué eres así?

Es lo que puedo hacer no soy un pro en esto y lo peor de todo es que no entiendo mucho el manual .

es lo que puedo hacer me la arreglo con lo que pueda

el caso es que intento subir imágenes de un formulario donde se duplican los input pero como te digo no se como hacerlo estoy intentando por todos los medios.
  #9 (permalink)  
Antiguo 28/05/2016, 10:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema ingresando datos duplicado en un for

Por favor, has lo siguiente:
Código PHP:
Ver original
  1. var_dump($_POST);
  2. var_dump($_FILES);

Comparte lo que obtengas y vamos haciendo comentarios.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 28/05/2016, 11:21
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Problema ingresando datos duplicado en un for

me lanza esto

array(1) { ["imagen"]=> array(5) { ["name"]=> string(5) "a.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(24) "C:\xampp\tmp\php8F47.tmp" ["error"]=> int(0) ["size"]=> int(18613) } } El titulo debe tener como minimo 6 caracteres


no imprimi la variable post por que esa me funciona bien a demas tenia muchos post ademas del de los nombre

y cambien el codigo asi porque el problema esta en la variable $file parce que no se puede usar con for pero yo veo que el face book si se puede y facebook esta hecho con php claro y un poco de java
Código PHP:
Ver original
  1. for($i=0;$i<count( $_FILES['imagen']['tmp_name']);$i++){
  2.         $materiales = $_POST['materiales'][$i];
  3.         $inser = limpiar($materiales);
  4.         #echo $inser;
  5.        #var_dump($inser);
  6.        #mysqli_query($conexion, "INSERT INTO vs (rival) VALUES ('$inser')");
  7.        
  8.        
  9.           // -----codico para subir la iamgen ------------
  10.         $rutaEnServidor = '../../imagenes/img_vs'; //nombre de la carpeta donde se alojara la imagen en tu servidor
  11.         $rutaTemporal = $_FILES['imagen']['tmp_name'][$i];
  12.         $nombreImagen = $_FILES['imagen']['name'][$i]; //nombre de la imagen
  13.         //renombrando la iamagen para no causar confligto con dos nombre iguales  
  14.         $renameip = $_SESSION['id'].$nombreImagen; //mesclo una variable desession que es unica de el usuario con el nombre de la foto
  15.         $ruta_visual = "imagenes/" .$renameip; //graba la ruta que se graba en al columna de la tabla de la base de datos
  16.         $rutaDestino = $rutaEnServidor.'/'.$renameip; // esto '/' pone un slash, describe la ruta dle destino
  17.         move_uploaded_file($rutaTemporal, $rutaDestino);
  18.         #echo $ruta_visual;
  19.        echo "<br>";
  20.         #var_dump($ruta_visual);
  21.        #var_dump($_POST);
  22. var_dump($_FILES);
  23.         #mysqli_query($conexion, "INSERT INTO vs (img) VALUES ('$ruta_visual')");
  24.       }

ademas segun veo. no esta recibiendo las dos imágenes que el envío.

esto es cundo imprimo la variables post
array(6) { ["titulo"]=> string(0) "" ["materiales"]=> array(2) { [0]=> string(8) "jugador1" [1]=> string(9) "jugador 2" } ["contenido"]=> string(0) "" ["categoria"]=> string(6) "Futbol" ["usuario_id"]=> string(2) "79" ["enviando"]=> string(16) "Publicar noticia" } El titulo debe tener como minimo 6 caracteres

como pueden ver existe dos jugadores string(8) "jugador1" y string(9) "jugador 2" esta con el mismo código php


este resultado
array(1) { ["imagen"]=> array(5) { ["name"]=> string(5) "a.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(24) "C:\xampp\tmp\phpE213.tmp" ["error"]=> int(0) ["size"]=> int(18613) } }
array(1) { ["imagen"]=> array(5) { ["name"]=> string(5) "a.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(24) "C:\xampp\tmp\phpE213.tmp" ["error"]=> int(0) ["size"]=> int(18613) } }



aparece si en el for no pongo la variable $_File en la condición del for y pongo la la variable $_post

Código PHP:
Ver original
  1. for($i=0;$i<count( $_POST['materiales']);$i++)

en este paso me duplica el contenido pero no recibe el nombre de del archivo 1

Última edición por wilson_romero; 28/05/2016 a las 11:32
  #11 (permalink)  
Antiguo 28/05/2016, 12:18
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Problema ingresando datos duplicado en un for

creo que tenían razón disculpe el error yace del formulario tesel formulario estaba asi

Código HTML:
Ver original
  1. <input type='file' name='imagen'>

y en realidad va asi
Código HTML:
Ver original
  1. <input type='file' name='imagen[]'>

ahora me arroja este esto errores


Notice: Array to string conversion in C:\xampp\htdocs\room\funciones\post\proceso.php on line 35

Warning: move_uploaded_file() expects parameter 1 to be string, array given in C:\xampp\htdocs\room\funciones\post\proceso.php on line 38


array(1) { ["imagen"]=> array(5) { ["name"]=> array(2) { [0]=> string(5) "b.jpg" [1]=> string(5) "a.jpg" } ["type"]=> array(2) { [0]=> string(10) "image/jpeg" [1]=> string(10) "image/jpeg" } ["tmp_name"]=> array(2) { [0]=> string(24) "C:\xampp\tmp\php165A.tmp" [1]=> string(24) "C:\xampp\tmp\php165B.tmp" } ["error"]=> array(2) { [0]=> int(0) [1]=> int(0) } ["size"]=> array(2) { [0]=> int(39412) [1]=> int(18613) } } }
Notice: Array to string conversion in C:\xampp\htdocs\room\funciones\post\proceso.php on line 35

Warning: move_uploaded_file() expects parameter 1 to be string, array given in C:\xampp\htdocs\room\funciones\post\proceso.php on line 38


array(1) { ["imagen"]=> array(5) { ["name"]=> array(2) { [0]=> string(5) "b.jpg" [1]=> string(5) "a.jpg" } ["type"]=> array(2) { [0]=> string(10) "image/jpeg" [1]=> string(10) "image/jpeg" } ["tmp_name"]=> array(2) { [0]=> string(24) "C:\xampp\tmp\php165A.tmp" [1]=> string(24) "C:\xampp\tmp\php165B.tmp" } ["error"]=> array(2) { [0]=> int(0) [1]=> int(0) } ["size"]=> array(2) { [0]=> int(39412) [1]=> int(18613) } } } El titulo debe tener como minimo 6 caracteres


me imagino que es por lo que dijeron que no es compatible con post lo voy a cambiar a ver que pasa por GET

aunque yo tengo otro formulario por donde envio la variables por metodo post y me funcioan perfecta mente
  #12 (permalink)  
Antiguo 28/05/2016, 12:33
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Problema ingresando datos duplicado en un for

Listo ahora me imprime las dos variable el único problema es que no la pone en orden el primer input aparece en el segundo y el segundo en el primero. me pueden ayudar ???
  #13 (permalink)  
Antiguo 28/05/2016, 18:33
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Problema ingresando datos duplicado en un for

El interprete te esta avisando cual es el problema:
Cita:
Notice: Array to string conversion in C:\xampp\htdocs\room\funciones\post\proceso.php on line 35

Warning: move_uploaded_file() expects parameter 1 to be string, array given in C:\xampp\htdocs\room\funciones\post\proceso.php on line 38
El interprete te esta avisando que se esta intentando hacer una conversión de un arreglo a una cadena, Lo siguiente que te avisa es que la función move_upload_file espera que su primer parámetro sea una cadena y en tu lógica le estas intentando pasar un arreglo
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #14 (permalink)  
Antiguo 29/05/2016, 12:39
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 12 años, 4 meses
Puntos: 39
Respuesta: Problema ingresando datos duplicado en un for

Cita:
Iniciado por wilson_romero Ver Mensaje
Listo ahora me imprime las dos variable el único problema es que no la pone en orden el primer input aparece en el segundo y el segundo en el primero. me pueden ayudar ???
Vamos a ver, pasa tu código HTML y javascript porque es ahí donde tienes el problema. Además esto:

Código HTML:
Ver original
  1. <input type='file' name='imagen[]'>

Es completamente absurdo. El name de un atributo HTML no es una variable, aun menos un array. Creo que entiendes lo que quieres hacer, pero así no se hace.
__________________
Diseño Web - Arisman Web
  #15 (permalink)  
Antiguo 29/05/2016, 12:55
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Problema ingresando datos duplicado en un for

Lo absurdo es decirle "absurdo" a otro user sin tener bases. El atributo name es comúnmente usado como array en los input file para recibir y enviar multiples archivos.

¿Nunca lo haz hecho tú?
  #16 (permalink)  
Antiguo 29/05/2016, 13:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema ingresando datos duplicado en un for

Cita:
Creo que entiendes lo que quieres hacer, pero así no se hace.
Claro que se puede usar así.

Cita:
Es completamente absurdo. El name de un atributo HTML no es una variable, aun menos un array.
No seas ridículo ¿nunca has leído un manual de HTML básico?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 29/05/2016, 13:48
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 12 años, 4 meses
Puntos: 39
Respuesta: Problema ingresando datos duplicado en un for

Cita:
Iniciado por pateketrueke Ver Mensaje
No seas ridículo ¿nunca has leído un manual de HTML básico?
Pues sí lo he leido, veo que no perdonáis una equivocación y lo que es peor de todo, que por poner una carita detrás de un insulto crees que dejáis de ser mal educados. Aquí se está para ayudar y para buscar ayuda no para creerse más listo que Dios.
__________________
Diseño Web - Arisman Web
  #18 (permalink)  
Antiguo 29/05/2016, 13:52
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 12 años, 4 meses
Puntos: 39
Respuesta: Problema ingresando datos duplicado en un for

Cita:
Iniciado por pateketrueke Ver Mensaje

Warning: move_uploaded_file() expects parameter 1 to be string, array given in C:\xampp\htdocs\room\funciones\post\proceso.php on line 38

Perdón por mi error anterior. El Warning que te está lanzando es que en el parametro 1 del move_uploaded_file() se espera un string. Prueba a hacerle un var_dumb() a $rutaTemporal, a ver que es lo que estás enviando en el primer parametro.
__________________
Diseño Web - Arisman Web

Etiquetas: duplicado, formulario, mysql, tabla, variable
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 21:54.