| Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS | ||||
|
Hola! Veréis, necesito preparar, para una web de una copistería, un formulario que permita adjuntar archivos al cliente, de forma que éstos se almacenen en un servidor o correo electrónico y llegue una alerta, cada vez que se produzca un nuevo envío, a la cuenta de correo electrónico de la empresa.
Ando algo perdida, me han dicho que se puede programar con PHP y tal... ¿podríais ayudarme? La FAQ Adjuntar archivos y mandar alerta en PHP tiene Pertenece a la categoría:
Comentarios de los visitantes
Comentario de Cristian
04/3/08
A ver, lo primero que debes tener en cuenta es que en el formulario que estás creándo tengas enctype="multipart/form-data" dentro de la etiqueta form, esto te permite trabajar con uploads de archivos.
Luego con php investiga un poquito sobe el comando move_uploaded_file es muy sencillo de utilizar, con este comando subes los archivos al servidor y puedes utilizar la función mail de php o tambiñen existe una clase llamada phpMailer que puede ser de mucha ayuda, espero haberte ayudado Comentario de joan
04/3/08
Te mando el script completo de mi página, creo que dandole unos retoques te puede funcionar.
En mi caso el form que tengo esta en html y llama al archivo que mando a continuacion. Espero que te sirva. // No te olvides que en la primera linea de tu form html deberás poner :<form action="pressupost.php" method="post"enctype="multipart/form-data"> en este caso el archivo ejecutable se llama pressupost.php.Dale el nombre que te parezca. Ahí va el código. <?php /* En este caso se trata de un taller de cotxes en que los clientes piden presupesto y mandan fotos de los daños de planxa, solo tendras que cambiar el tipo de fichero que vas a permitir que te envien, el tamaño y los comentarios de las alertas, anular o añadir los campos de tu form para que se adapten a tus necesidades */ // Aquí le pones un include con la plantilla de tu cabecera. // Rebent variables--Aquí recoges las variables de tu form @$pfw_ip= $_SERVER['REMOTE_ADDR']; @$nom = addslashes($_POST['nom']); @$cognom1 = addslashes($_POST['cognom1']); @$cognom2 = addslashes($_POST['cognom2']); @$telefon = addslashes($_POST['telefon']); @$correu = addslashes($_POST['correu']); @$client = addslashes($_POST['client']); @$matricula = addslashes($_POST['matricula']); @$marca = addslashes($_POST['marca']); @$model = addslashes($_POST['model']); @$versio = addslashes($_POST['versio']); @$xassis = addslashes($_POST['xassis']); @$portes = addslashes($_POST['portes']); @$data_matricula = addslashes($_POST['data_matricula']); @$foto1_Name = $_FILES['foto1']['name']; @$foto1_Size = $_FILES['foto1']['size']; @$foto1_Temp = $_FILES['foto1']['tmp_name']; @$foto1_Mime_Type = $_FILES['foto1']['type']; @$foto2_Name = $_FILES['foto2']['name']; @$foto2_Size = $_FILES['foto2']['size']; @$foto2_Temp = $_FILES['foto2']['tmp_name']; @$foto2_Mime_Type = $_FILES['foto2']['type']; @$foto3_Name = $_FILES['foto3']['name']; @$foto3_Size = $_FILES['foto3']['size']; @$foto3_Temp = $_FILES['foto3']['tmp_name']; @$foto3_Mime_Type = $_FILES['foto3']['type']; @$foto4_Name = $_FILES['foto4']['name']; @$foto4_Size = $_FILES['foto4']['size']; @$foto4_Temp = $_FILES['foto4']['tmp_name']; @$foto4_Mime_Type = $_FILES['foto4']['type']; @$comentaris = addslashes($_POST['comentaris']); function RecursiveMkdir($path) { if (!file_exists($path)) { RecursiveMkdir(dirname($path)); mkdir($path, 0777); } } // Validació-- estos son los campos que se van a validar que hayas decidido obligatorios cuando se rellena el formulario. if (strlen($nom) == 0 ) { die("<p align='center'><font face='Arial' size='3' color='#FF0000'>Si usplau entri el seu <b>nom</b></font></p>"); } if (strlen($cognom1) == 0 ) { die("<p align='center'><font face='Arial' size='3' color='#FF0000'>Si usplau entri el primer <b>cognom</b></font></p>"); } if (strlen($cognom2) == 0 ) { die("<p align='center'><font face='Arial' size='3' color='#FF0000'>Si usplau entri el segon <b>cognom</b></font></p>"); } if (strlen($telefon) == 0 ) { die("<p align='center'><font face='Arial' size='3' color='#FF0000'>Si usplau entri el <b>telèfon</b></font></p>"); } if (! ereg('[A-Za-z0-9_-]+@[A-Za-z0-9_-]+.[A-Za-z0-9_-]+', $correu)) { die("<p align='center'><font face='Arial' size='3' color='#FF0000'>Si usplau entri una adreça de <b>correu electrònic vàlida</b></font></p>"); } if (strlen($matricula) == 0 ) { die("<p align='center'><font face='Arial' size='3' color='#FF0000'>Si usplau entri la <b>matrícula</b></font></p>"); } if (strlen($marca) == 0 ) { die("<p align='center'><font face='Arial' size='3' color='#FF0000'>Si usplau entri la <b>marca del vehicle</b></font></p>"); } if (strlen($model) == 0 ) { die("<p align='center'><font face='Arial' size='3' color='#FF0000'>Si usplau entri el <b>model</b></font></p>"); } if (strlen($versio) == 0 ) { die("<p align='center'><font face='Arial' size='3' color='#FF0000'>Si usplau entri la <b>versió</b></font></p>"); } if (strlen($data_matricula) == 0 ) { die("<p align='center'><font face='Arial' size='3' color='#FF0000'>Si usplau entri la data de la <b>1ª.matriculació</b></font></p>"); } if( $foto1_Size > 0) { if( $foto1_Size >3000000)//tamaño máximo de en este caso fotos 3Mb { //esborrar fitxer --si no cumple las condiciones borra el fitxero temp del server unlink($foto1_Temp); die("<p align='center'><font face='Arial' size='3' color='#FF0000'><b>Foto 1. Tamany màxim: 3Mb.</b> La foto que ens vol enviar no pot superar els 3Mb de tamany. Si usplau redueixi el tamany i torni-ho a enviar</font></p>"); } if( $foto1_Mime_Type != "image/gif" AND $foto1_Mime_Type != "image/ief" AND $foto1_Mime_Type != "image/pjpeg" AND $foto1_Mime_Type != "image/jpeg" AND $foto1_Mime_Type != "image/png" AND $foto1_Mime_Type != "image/tiff" ) { unlink($foto1_Temp); die("<p align='center'><font face='Arial' size='3' color='#FF0000'><b>Foto 1. Formats acceptats:.jpg .jpeg .pjpeg .png .gif.</b> La foto que ens vol enviar hauria d'estar en qualsevol dels formats anteriors.Si usplau rectifiqui el format i torni-ho a enviar</font></p>"); } $uploadFile = "fotos_pressupost/"/*esto és la carpeta donde se almacenaran los ficheros que te manden- deberás crearla en tu servidor*/.$foto1_Name ; if (!is_dir(dirname($uploadFile))) { @RecursiveMkdir(dirname($uploadFile)); } else { @chmod(dirname($uploadFile), 0777); } @move_uploaded_file( $foto1_Temp , $uploadFile); chmod($uploadFile, 0644); $foto1_URL = "http://www.tu_domino.com/web/fotos_pressupost/"/*este és el path donde a donde hayas creado la carpeta anterior-cambialo tambien en las lineas de mas abajo*/.$foto1_Name ; } if( $foto2_Size > 0){ if( $foto2_Size >3000000) { //Esborrar fitxer --lo mismo de mas arriba unlink($foto2_Temp); die("<p align='center'><font face='Arial' size='3' color='#FF0000'><b>Foto 2. Tamany màxim: 3Mb.</b> La foto que ens vol enviar no pot superar els 3Mb de tamany. Si usplau redueixi el tamany i torni-ho a enviar</font></p>"); } if( $foto2_Mime_Type != "image/gif" AND $foto2_Mime_Type != "image/pjpeg" AND $foto2_Mime_Type != "image/jpeg" AND $foto2_Mime_Type != "image/png" AND $foto2_Mime_Type != "image/tiff" ) { unlink($foto2_Temp); die("<p align='center'><font face='Arial' size='3' color='#FF0000'><b>Foto 2. Formats acceptats:.jpg .jpeg .pjpeg .png .gif.</b> La foto que ens vol enviar hauria d'estar en qualsevol dels formats anteriors. Si usplau rectifiqui el format i torni-ho a enviar</font></p>"); } $uploadFile = "fotos_pressupost/".$foto2_Name ; if (!is_dir(dirname($uploadFile))) { @RecursiveMkdir(dirname($uploadFile)); } else { @chmod(dirname($uploadFile), 0777); } @move_uploaded_file( $foto2_Temp , $uploadFile); chmod($uploadFile, 0644); $foto2_URL = "http://www.tu_domino.com/web/fotos_pressupost/".$foto2_Name ; } if( $foto3_Size > 0){ if( $foto3_Size >3000000) { //Esborrar fitxer --mas de lo mismo unlink($foto3_Temp); die("<p align='center'><font face='Arial' size='3' color='#FF0000'><b>Foto 3. Tamany màxim: 3Mb.</b> La foto que ens vol enviar no pot superar els 3Mb de tamany. Si usplau redueixi el tamany i torni-ho a enviar</font></p>"); } if( $foto3_Mime_Type != "image/gif" AND $foto3_Mime_Type != "image/pjpeg" AND $foto3_Mime_Type != "image/jpeg" AND $foto3_Mime_Type != "image/png" ) { unlink($foto3_Temp); die("<p align='center'><font face='Arial' size='3' color='#FF0000'><b>Foto 3. Formats acceptats:.jpg .jpeg .pjpeg .png .gif.</b> La foto que ens vol enviar hauria d'estar en qualsevol dels formats anteriors.Si usplau rectifiqui el format i torni-ho a enviar</font></p>"); } $uploadFile = "fotos_pressupost/".$foto3_Name ; if (!is_dir(dirname($uploadFile))) { @RecursiveMkdir(dirname($uploadFile)); } else { @chmod(dirname($uploadFile), 0777); } @move_uploaded_file( $foto3_Temp , $uploadFile); chmod($uploadFile, 0644); $foto3_URL = "http://www.tu_dominio.com/web/fotos_pressupost/".$foto3_Name ; } if( $foto4_Size > 0){ if( $foto4_Size >3000000) { //Esborrar fitxer unlink($foto4_Temp); die("<p align='center'><font face='Arial' size='3' color='#FF0000'><b>Foto 4. Tamany màxim: 3Mb.</b> La foto que ens vol enviar no pot superar els 3Mb de tamany. Si usplau redueixi el tamany i torni-ho a enviar</font></p>"); } if( $foto4_Mime_Type != "image/gif" AND $foto4_Mime_Type != "image/pjpeg" AND $foto4_Mime_Type != "image/jpeg" AND $foto4_Mime_Type != "image/png" )//aquí tendràs que poner el formato de los ficheros que permitiras que te manden,tif,pdf... { unlink($foto4_Temp); die("<p align='center'><font face='Arial' size='3' color='#FF0000'><b>Foto 4. Formats acceptats:.jpg .jpeg .pjpeg .png .gif.</b> La foto que ens vol enviar hauria d'estar en qualsevol dels formats anteriors.Si usplau rectifiqui el format i torni-ho a enviar</font></p>"); } $uploadFile = "fotos_pressupost/".$foto4_Name ; if (!is_dir(dirname($uploadFile))) { @RecursiveMkdir(dirname($uploadFile)); } else { @chmod(dirname($uploadFile), 0777); } @move_uploaded_file( $foto4_Temp , $uploadFile); chmod($uploadFile, 0644); $foto4_URL = "http://www.Tu_dominio.com/web/fotos_pressupost/".$foto4_Name ; } //ens enviem correu a la nostra bústia--te manda el mensaje a tu correo con los links en este caso de fotos $pfw_header = "From: $correu " . "Reply-To: $correu "; $pfw_subject = "Pressupost reparació"; $pfw_email_to = "tu_correo@telefonica.net";//aquí vas a recibir tus pedidos $pfw_message = "Visitor's IP: $pfw_ip "//te manda el ip del cliente. . "nom: $nom " . "cognom1: $cognom1 " . "cognom2: $cognom2 " . "telefon: $telefon " . "correu: $correu " . "client: $client " . "matricula: $matricula " . "marca: $marca " . "model: $model " . "versio: $versio " . "xassis: $xassis " . "portes: $portes " . "data_matricula: $data_matricula " . "foto1: $foto1_URL " . "foto2: $foto2_URL " . "foto3: $foto3_URL " . "foto4: $foto4_URL " . "comentaris: $comentaris "; @mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ; //Enviem autoresposta per email al visitant--esto manda un correo instantaneo a tu cliente. $pfw_header = "From: tu_correo@telefonica.net " . "Reply-To: tu_correo@telefonica.net "; $pfw_subject = "Pressupost reparació"; $pfw_email_to = "$correu"; $pfw_message = "Hem rebut correctament la seva sol.licitud, el més aviat possible el respondrem. " . "Gràcies per confiar en nosaltres."; @mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ; //Guarda les dades en fitxer de text -- en este caso te genera en el server un archivo .txt con los datos que te han mandado. $pfw_file_name = "pressupost.txt"; $pfw_first_raw = "nom,cognom1,cognom2,telefon,correu,client,matricula,marca,model,versio,xassis,portes,data_matricula,foto1,foto2,foto3,foto4,comentaris "; $pfw_values = "$nom,$cognom1,$cognom2,$telefon,$correu,$client,$matricula,$marca,$model,$versio,$xassis,$portes,$data_matricula,$foto1_Name,$foto2_Name,$foto3_Name,$foto4_Name,".str_replace (" ","<BR>",$comentaris )." "; $pfw_is_first_row = false; if(!file_exists($pfw_file_name)) { $pfw_is_first_row = true ; } if (!$pfw_handle = fopen($pfw_file_name, 'a+')) { die("Cannot open file ($pfw_file_name)"); exit; } if ($pfw_is_first_row) { if (fwrite($pfw_handle, $pfw_first_raw ) === FALSE) { die("Cannot write to file ($pfw_filename)"); exit; } } if (fwrite($pfw_handle, $pfw_values) === FALSE) { die("Cannot write to file ($pfw_filename)"); exit; } fclose($pfw_handle); echo("<p align='center'><font face='Arial' size='3' color='#FF0000'>Hem rebut correctament la seva sol.licitut,el respondrem el més aviat possible</font></p>"); //aquí le pones un include: footer.inc o lo que sea para que te ponga pie en la respuesta. ?>
Para ver más FAQ relacionadas accede a las categorías: |
|
||||||||||||||||
| Complementar la respuesta | |
| Volver al árbol de categorías |
| DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia | ||||