Foros del Web » Programando para Internet » PHP »

Formulario para subir archivo

Estas en el tema de Formulario para subir archivo en el foro de PHP en Foros del Web. Hola¡¡¡¡¡¡¡¡¡...pues bien la bronca es esta: estoy haciendo un formulario y en 4 campos la opción es para subir archivos, pero me devuelve el error ...
  #1 (permalink)  
Antiguo 12/11/2012, 23:13
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Formulario para subir archivo

Hola¡¡¡¡¡¡¡¡¡...pues bien la bronca es esta: estoy haciendo un formulario y en 4 campos la opción es para subir archivos, pero me devuelve el error de que no están definidos los índices, los declaro de la siguiente forma

<form action="" method="post" enctype="multipart/form-data">

<label>Subir planos del terreno:<input type="file" name="at_inge_proy_terrenos" id="at_inge_proy_terrenos"/></label>
</p>
<p>
<label>Subir planos de distribución del proyecto:
<input type="file" name="at_inge_proy_distribu"/></label>
</p>
<p>
<label>Esquematice en un diseño de word cada paso para elaborar su producto, o brindar su servicio:
<input name="at_inge_proy_proced" id="at_inge_proy_proced" type="file"/></label></p>
<p>
<label>Por medio de un organigrama describa por quienes se conforma la empresa:
<input type="file" name="at_organigrama"/></label>
</p>
<p>Describa todos los trámites legales necesarios para iniciar la empresa:</p>
<textarea name="at_marco_legal" cols="45" rows="5"></textarea>
<p>

<input type="submit" name="guardar" value="Guardar datos analisis técnico" />
</p>
</form>

y me devuelve este error para las 4 variables:

Notice: Undefined index: at_inge_proy_distribu in C:\xampp\htdocs\diseno_rural_an_tec_formulario.php on line 93

¿¿¿¿Alguien sabe cual es la falla de mi declaración???...o ¿¿¿qué estoy haciendo mal?????......... saludos¡¡¡¡¡¡
  #2 (permalink)  
Antiguo 12/11/2012, 23:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Formulario para subir archivo

No es cuestión de HTML tu problema, es cuestión del script PHP que lee dichas variables.

Dichas variables solo existen cuando el formulario ha sido enviado, si no lo envías entonces los índices de referencia no existen, como no controlas el estado de recepción es entonces que te muestra la advertencia.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/11/2012, 00:18
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Formulario para subir archivo

pero si lo envío, y es al enviar que me devuelve ese error, pero solo de esas 4 variables las que son para archivo, las demás variables no me marca error¡¡
  #4 (permalink)  
Antiguo 13/11/2012, 16:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Formulario para subir archivo

Pues si sigues pensando que vamos adivinar que está mal sin ver tu código estás perdiendo tu tiempo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 13/11/2012, 16:41
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Formulario para subir archivo

este es mi codigo¡¡


Código PHP:
<html>
<head>
<title>Diseño rural Análisis de técnicoo</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">

 <p>Describa todos los factores que evaluó para considerar ese lugar como la ubicación de la empresa, desde la parte legal, clima infraestructura, costo de construcción. </p>
 <p>
   <textarea name="at_ubicacion" cols="45" rows="5"></textarea>
 </p>
 <h1>Ingeniería del proyecto</h1>
 <p>
 <label>Subir planos del terreno:<input type="file" name="at_inge_proy_terrenos" id="at_inge_proy_terrenos"/></label>
 </p>
 <p>
   <label>Subir planos de distribución del proyecto:
    <input type="file" name="at_inge_proy_distribu"/></label>
    </p>
    <p>
    <label>Describa porque es la distribucion adecuada para la empresa la que ha diseñado:
    <textarea name="at_inge_proy_distribu_just" cols="45" rows="5"></textarea></label>
    </p>
    <p>
    <label>Esquematice en un diseño de word cada paso para elborar su producto, o brindar su servicio:
      <input name="at_inge_proy_proced" id="at_inge_proy_proced" type="file"/></label></p>
      <p>
 <label>Por medio de un organigrama describa por quienes se conforma la empresa:
    <input type="file" name="at_organigrama"/></label>
    </p>
 <p>
   <input type="submit" name="guardar" value="Guardar datos analisis técnico" />
 </p>
</form>
<form action="diseno_rural_an_ec_formualrio.php" method="post" enctype="multipart/form-data">
 <?php
 
if (isset($_POST['guardar']))
  {
 require (
'diseno_rural_conexion.php'); 
 if(
$mi_conexion=conexion()){
 
$sql="INSERT INTO Analisis_Tecnico (at_ubicacion,at_inge_proy_terrenos,at_inge_proy_distribu,at_inge_proy_distribu_just,at_inge_proy_proced,at_organigrama) VALUES ('$_POST[at_ubicacion]','$_POST[at_inge_proy_terrenos]','$_POST[at_inge_proy_distribu]','$_POST[at_inge_proy_distribu_just]','$_POST[at_inge_proy_proced]','$_POST[at_organigrama]')";

 echo 
"El query que será ejecutado en MySQL es el siguiente:<br /><b>$sql</b><br />";
 if(!@
mysql_query($sql,$mi_conexion)){
 echo 
'Error al insertar la información Analisis tecnico';}
 else{
 echo 
'Información insertada correctamente.';}
 }
 else{
 echo 
'No se realizó la conexión.';}
 }
 
?>
<br>
 <input type="submit" name="moverse" value="Analisis económico" />
</form>
</body>
</html>
  #6 (permalink)  
Antiguo 13/11/2012, 16:48
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Formulario para subir archivo

no manches que buena ensartada te van a poner si te quieren inyectar $sql
ve como formas tu cadena de sql
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #7 (permalink)  
Antiguo 13/11/2012, 17:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Formulario para subir archivo

Además ahí se nota un problema conceptual muy grave, los archivos no se manejan de la misma forma que cualquier otro campo del formulario.

Es entonces ese el error, lee lo siguiente:
http://www.php.net/variables.external

Y esto:
http://php.net/manual/en/features.file-upload.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 13/11/2012, 18:06
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Formulario para subir archivo

Cita:
Iniciado por mogurbon Ver Mensaje
no manches que buena ensartada te van a poner si te quieren inyectar $sql
ve como formas tu cadena de sql
¿ a qué te refieres ?
  #9 (permalink)  
Antiguo 13/11/2012, 18:09
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Formulario para subir archivo

a que tu string de sql , no va a tomar los valores de post , de hecho ese es el error

y por otro lado te pueden hackear tu servidor

http://www.php.net/manual/es/securit...-injection.php


cheka lo que te dejo pakete también
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #10 (permalink)  
Antiguo 13/11/2012, 20:28
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Formulario para subir archivo

ok, ya cheque los links... por cierto gracias¡¡....
ahora en mi sentencia de sql la dejo de esta forma con $_FILES[]
Código PHP:
 $sql="INSERT INTO Analisis_Tecnico (at_ubicacion,at_inge_proy_terrenos,at_inge_proy_distribu,at_inge_proy_distribu_just,at_inge_proy_proced,at_organigrama) VALUES ('$_POST[at_ubicacion]','$_FILES[at_inge_proy_terrenos]','$_FILES[at_inge_proy_distribu]','$_POST[at_inge_proy_distribu_just]','$_FILES[at_inge_proy_proced]','$_FILES[at_organigrama]')"
pero el error que me marca ahora es:
Notice: Array to string conversion in C:\xampp\htdocs\diseno_rural_an_tec_formulario.php on line 92

Notice: Array to string conversion in C:\xampp\htdocs\diseno_rural_an_tec_formulario.php on line 92

Notice: Array to string conversion in C:\xampp\htdocs\diseno_rural_an_tec_formulario.php on line 92

Notice: Array to string conversion in C:\xampp\htdocs\diseno_rural_an_tec_formulario.php on line 92
  #11 (permalink)  
Antiguo 14/11/2012, 10:45
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Formulario para subir archivo

Checa la onda es que una cosa es subir un archivo al servidor y otra guardar determinados datos en la base de datos , por lo regular lo que se hace es guardar el nombre del archivo y ruta en la base de datos y tener un directorio en el server en donde se guarden estos archivos , al poner FILES en tu sentencia SQL php nomas no sabe que hacer por que son dos cosas diferentes

entonces hay tres problemas problemas aqui

punto numero 1 !!!!!!! RUDYYY DUUUDY DUDY!!!!!
la insercion a la base de datos para lo cual te recomiendo que leas estas ligas

http://www.forosdelweb.com/f18/como-...1/#post2414268 <---aporte del pakete por que te estas equivocando a la hora de concatenar tu cadena sql


http://mx2.php.net/variables.external <----una repasada a la cachada de variables


punto numero 2!!!!


aprender bien a subir los archivos

http://www.desarrolloweb.com/articulos/1307.php <---un buen tuto de desarrolloweb de como hacerlo



punto numero 3!!!

ya hace hambre me lanzo por unos burritos pal desayuno
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #12 (permalink)  
Antiguo 14/11/2012, 13:42
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Formulario para subir archivo

woooow.........si, tienes razón, no había distinguido esa situación de subir un archivo al servidor y guardarlo...... después de las lecturas correspondientes ahora queda así mi código, solo pondré la parte donde lo guardo ya que lo anterior (la recolección de datos esta bien)

Código PHP:
$at_inge_proy_terrenos=$_FILES['at_inge_proy_terrenos']['name'];
 
$at_inge_proy_distribu=$_FILES['at_inge_proy_distribu']['name'];
 
$at_inge_proy_proced=$_FILES['at_inge_proy_proced']['name'];
 
$at_organigrama=$_FILES['at_organigrama']['name'];
 
 
$sql="INSERT INTO Analisis_Tecnico (at_cap_sis,at_cap_dis,at_cap_sis_monto,at_cap_dis_monto,at_cap_sis_mano_obra,at_cap_dis_mano_obra,at_cap_sis_equipo,at_cap_dis_equipo,at_ubicacion,at_inge_proy_terrenos,at_inge_proy_distribu,at_inge_proy_distribu_just,at_inge_proy_proced,at_organigrama,at_marco_legal) VALUES ('$_POST[at_cap_sis]','$_POST[at_cap_dis]','$_POST[at_cap_sis_monto]','$_POST[at_cap_dis_monto]','$_POST[at_cap_sis_mano_obra]','$_POST[at_cap_dis_mano_obra]','$_POST[at_cap_sis_equipo]','$_POST[at_cap_dis_equipo]','$_POST[at_ubicacion]','$at_inge_proy_terrenos','$at_inge_proy_distribu','$_POST[at_inge_proy_distribu_just]','$at_inge_proy_proced','','$_POST[at_marco_legal]')"
Sería esa la forma correcta???...
  #13 (permalink)  
Antiguo 14/11/2012, 13:54
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Formulario para subir archivo

Ya funcionó¡¡......gracias por sus aportaciones textuales¡¡¡¡¡............. ;)
  #14 (permalink)  
Antiguo 14/11/2012, 14:01
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Formulario para subir archivo

pon la solucion porfa por si alguien mas se topa con un problema parecido lo encuentre, es la mejor forma de dar las gracias
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #15 (permalink)  
Antiguo 20/11/2012, 10:12
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Formulario para subir archivo

claro¡¡.... la solución es la siguiente:

Se pide en formulario de la siguiente forma:
Código PHP:

<form action="" method="post" enctype="multipart/form-data">
<
p>
 <
label>Subir planos del terreno:<input type="file" name="at_inge_proy_terrenos" /></label>
 </
p>
 <
p>
   <
label>Subir planos de distribución del proyecto:
    <
input type="file" name="at_inge_proy_distribu"/></label>
    </
p>
    <
p>
    <
label>Describa porque es la distribucion adecuada para la empresa la que ha diseñado:
    <
textarea name="at_inge_proy_distribu_just" cols="45" rows="5"></textarea></label>
    </
p>
    <
p>
    <
label>Esquematice en un diseño de word cada paso para elborar su productoo brindar su servicio:
      <
input name="at_inge_proy_proced" id="at_inge_proy_proced" type="file"/></label></p>
      <
p>
 <
label>Por medio de un organigrama describa por quienes se conforma la empresa:
    <
input type="file" name="at_organigrama"/></label>
    </
p>
<
input type="submit" name="guardar" value="Guardar datos analisis técnico" />
</
form
Y la forma de guardar los datos en la base de datos sería la siguiente:

Código PHP:

<form action="diseno_rural_an_ec_formualrio.php" method="post" enctype="multipart/form-data">
 <?php
 
if (isset($_POST['guardar']))
  {
 require (
'diseno_rural_conexion.php'); 
 if(
$mi_conexion=conexion()){
 
$at_inge_proy_terrenos=$_FILES['at_inge_proy_terrenos']['name'];
 
$at_inge_proy_distribu=$_FILES['at_inge_proy_distribu']['name'];
 
$at_inge_proy_proced=$_FILES['at_inge_proy_proced']['name'];
 
$at_organigrama=$_FILES['at_organigrama']['name'];
 
 
$sql="INSERT INTO Analisis_Tecnico (at_inge_proy_terrenos,at_inge_proy_distribu,at_inge_proy_distribu_just,at_inge_proy_proced,at_organigrama) VALUES ('$at_inge_proy_terrenos','$at_inge_proy_distribu','$_POST[at_inge_proy_distribu_just]','$at_inge_proy_proced','$at_organigrama')";
  if(!@
mysql_query($sql,$mi_conexion)){
 echo 
'Error al insertar la información Analisis tecnico';}
 else{
 echo 
'Información insertada correctamente.';}
 }
 else{
 echo 
'No se realizó la conexión.';}
 }
 
?>
<br>
 <input type="submit" name="moverse" value="Analisis económico" />
</form>
Esta es la forma de pedir documentos, y de guardarlos en una base de datos¡¡....gracias¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

Etiquetas: formulario, variables
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 00:30.