Foros del Web » Programando para Internet » PHP »

Como resuelvo esta línea para mi formulario php

Estas en el tema de Como resuelvo esta línea para mi formulario php en el foro de PHP en Foros del Web. Estoy haciendo un botón en mi formulario de contactos para que puedan subirse archivos (tipo jpg, pdf y demases) y ojalas me lleguen a mi ...
  #1 (permalink)  
Antiguo 13/01/2011, 08:01
 
Fecha de Ingreso: enero-2011
Mensajes: 26
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Como resuelvo esta línea para mi formulario php

Estoy haciendo un botón en mi formulario de contactos para que puedan subirse archivos (tipo jpg, pdf y demases) y ojalas me lleguen a mi correo al enviar el mail

Pero estoy trabajando con php y no sé cómo resolver ciertas cosas

Me recomendaron que la el código en la etiqueta from era
<form method="post" action="action.cgi" enctype="multipart/form-data">

Y mi from esta desarrollado de la siguiente forma
<form action="<?php echo $_SERVER['PHP_SELF']; ?>"method="post">


Para empezar como coloco el action en el from si ya lo tengo ocupado por el php
  #2 (permalink)  
Antiguo 13/01/2011, 09:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Tema movido desde Web general

En una página pueden existir muchos formularios.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 13/01/2011, 09:34
Avatar de odiseus  
Fecha de Ingreso: enero-2011
Mensajes: 109
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Como resuelvo esta línea para mi formulario php

Es algo un poco largo de explicar, yo lo haría de esta forma:

1. La cabecera del form:
Código HTML:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>"method="post" enctype="multipart/form-data"> 
Pondría el enctype="multipart/form-data" que es para subir archivos, el tipico boton de examinar para subir tu imagen.

2. Crear el campo del archivo

Código HTML:
<input type="file" name="archivo"/> 
El formulario quedaría asi

Código HTML:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>"method="post" enctype="multipart/form-data">
<input type="file" name="archivo"/>
<input type="submit" value="Enviar"/>
</form> 
3. Recoger la información cuando el usuario pulse el boton Enviar

utilizando la variable $_FILES["archivo"] y la función move_upload

Ejemplo de move_uploaded_file:

Código PHP:
$directorio_subidas '/subidas';
foreach (
$_FILES["imagenes"]["error"] as $clave => $error) {
    if (
$error == UPLOAD_ERR_OK) {
        
$nombre_tmp $_FILES["imagenes"]["tmp_name"][$clave];
        
$nombre $_FILES["imagenes"]["name"][$clave];
        
move_uploaded_file($nombre_tmp"$directorio_subidas/$nombre");
    }

Un enlace dónde explica la función: http://es2.php.net/manual/es/function.move-uploaded-file.php

Y por último utilizando la función mail o PhpMail me enviaría la url dónde esta alojada la imagen en tu servidor y así no tienes que adjuntar imagenes.

Enlace función mail: http://es2.php.net/manual/es/function.mail.php


Espero te ayude, un saludo!
  #4 (permalink)  
Antiguo 13/01/2011, 10:37
 
Fecha de Ingreso: enero-2011
Mensajes: 26
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Respuesta: Como resuelvo esta línea para mi formulario php

No logro entenderlo del todo entonces mi formulario quedaría algo así


<?php if (array_key_exists ('enviar', $_POST)) {
//script para procesar mail
$para ='[email protected]'; //utiliza tu propia dirección email
$asunto = 'trabaja con Hotel Plaza el Bosque';

//Procesar las variables $_POST
$nombre = $_POST['nombre'];
$pais = $_POST['email'];
$archivo = $_POST['archivo'];

//Construir el mensaje
$coment = "Nombres: $nombre\n\n";
$coment .= "Email: $email\n\n";
$coment .= "Cargar: $archivo\n\n";

//Limitar tamaño de línea a 70 caracteres
$coment = wordwrap($coment, 70);

//Enviarlo
$enviarMail = mail ($para, $asunto, $coment);
}

$directorio_subidas = '/subidas';
foreach ($_FILES["imagenes"]["error"] as $clave => $error) {
if ($error == UPLOAD_ERR_OK) {
$nombre_tmp = $_FILES["imagenes"]["tmp_name"][$clave];
$nombre = $_FILES["imagenes"]["name"][$clave];
move_uploaded_file($nombre_tmp, "$directorio_subidas/$nombre");
}
}

?>
<head>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>"method="post" enctype="multipart/form-data">

<p>Nombres</p>
<input name="nombre" type="text" value="" />

<p>E-mail</p>
<input name="email" type="text" value="" />

<p>Subir su archibo aquí</p>
<input type="file" name="archivo"/>

<input type="submit" value="Enviar"/><br/>

</form>

</body>
</html>
  #5 (permalink)  
Antiguo 13/01/2011, 10:41
Avatar de odiseus  
Fecha de Ingreso: enero-2011
Mensajes: 109
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Como resuelvo esta línea para mi formulario php

La variable $_POST["archivo"] no existe, lee mi comentario en su lugar sería $_FILE["archivo"]["name"] o la direccion dónde esté guardada en tu servidor

$archivo = $ruta.$_FILES["archivo"]["name"]
  #6 (permalink)  
Antiguo 13/01/2011, 13:14
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Como resuelvo esta línea para mi formulario php

rodas0516:

Hay algo que no me queda claro despues de releer el post,
cual es tu intención?

subir archivos a tu servidor, o
subir archivos a tu servidor y que estos sean enviados a tu dirección de email como adjuntos

hay una diferencia muy grande entre las dos cosas, y si es lo ultimo, lo que estás haciendo no te va a funcionar porque tenes que construir los encabezados y cuerpo del mensaje apropiadamente para que incluyan el archivo/s adjuntos

Podés precisar

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 13/01/2011, 13:22
 
Fecha de Ingreso: enero-2011
Mensajes: 26
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Como resuelvo esta línea para mi formulario php

Necesito que lleguen a mi correo como archivos adjuntos
lo he estado intentando y aún no me resulta

Etiquetas: formulario
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 13:24.