Foros del Web » Programando para Internet » PHP »

ayuda con formulario con upload

Estas en el tema de ayuda con formulario con upload en el foro de PHP en Foros del Web. hola he bajado un programa para crear formularios, este programa me da el sgte codigo: *Bueno el codigo dice que debo crear un directorio para ...
  #1 (permalink)  
Antiguo 30/01/2009, 15:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 137
Antigüedad: 16 años, 4 meses
Puntos: 2
ayuda con formulario con upload

hola he bajado un programa para crear formularios,

este programa me da el sgte codigo:
*Bueno el codigo dice que debo crear un directorio para subir los archivos, pero mi idea es ke al email que esta destinado le llegue el arhivo adjunto y solo me llegan los datos no el archivo, es porque no he creado el directorio en mi servidor?

<?php
/************************************************** **/
/* CoffeeCup Software Form to Mail program */
/* (C) 2005 CoffeeCup Software */
/************************************************** **/
/* - Companion Program For Coffeecup Form Builder - */
/* Visit - http://www.coffeecup.com */
/************************************************** **/
/* Constants */
/* Version */ $version = '3.0';
/* Date */ $date = '1/23/06';
/* Error Level */ error_reporting(E_ALL & ~E_NOTICE);
/* Text File */ $saveFile = '[FILENAME]';

//////////////////////////////////////////////////////////////
// DISPLAY DEBUGGING INFORMATION AND EXIT
//////////////////////////////////////////////////////////////

$debug = (isset($_REQUEST['debug'])) ? $_REQUEST['debug'] : $debug;

if($debug)
{
switch($debug)
{
case 'info' :
phpinfo();
exit();
break;

case 'version' :
err("Current MailForm version: <b>".$version."</b><br>Current PHP version: <b>".phpversion()."</b><br> Current Revision Date: <b>$date</b>");
break;
}
}

////////////////////////////////////////////////////////////////
// IF FILEDATA EXISTS ONLY UPLOAD FILES AND EXIT
////////////////////////////////////////////////////////////////

if($_FILES['Filedata'])
{
//CREATE THE DIRECTORY IF DOESN'T EXISTS (SHOULD HAVE WRITE PERMISSONS)
if(!is_dir("./files")) mkdir("./files", 0755);

//MOVE THE UPLOADED FILE
move_uploaded_file($_FILES['Filedata']['tmp_name'], "./files/".$_FILES['Filedata']['name']);//
chmod("./files/".$_FILES['Filedata']['name'], 0777);

exit();
}

//////////////////////////////////////////////////////////////
// SETUP VARS
//////////////////////////////////////////////////////////////

$date=date("l, F dS, Y \a\\t g:i a");
$server=$_SERVER['SERVER_NAME'];
$emailResponseData="Here is the information submitted to $formName from $_SERVER[REMOTE_ADDR] on $date\r\n\r\n------------------------\r\n";

//COMBINE TO ONE ARRAY
$_REQVARS = array_merge($_POST,$_GET);

$subject = $_REQVARS['subject'];
$thankyoupage = $_REQVARS['thankyoupage'];
$xmlFile = $_REQVARS['xmlfile'];
$unreg = $_REQVARS['uR'];
$formUserEmail = $_REQVARS['eM'];

//GET THE DEFAULT EMAIL TO SEND THE FORM TO
$mailto =$_REQVARS['mailto'];

//OVERWRITE DEFAULT EMAIL IF ALT EMAIL EXISTS
$mailto = ($_REQVARS['_ALT_EMAIL'] != '') ? $_REQVARS['_ALT_EMAIL'] : $mailto;

//IF NO SUBJECT, MAKE ONE
if(!$subject)
{
$subject="Form Submission";
}

//////////////////////////////////////////////////////////////
// GET INFO FROM XML FILE
//////////////////////////////////////////////////////////////

//CONFIG FILE MUST BE IN THE SAME DIRECTORY AS THIS FILE
//AND HAVE THE SAME FIRST PART OF THE NAME. I.E. MYFORM.INC.PHP
/*
I HAVE NO IDEA WHAT THIS DOES
list($formName,$ext) = split('\.',basename($_SERVER['PHP_SELF']),2);
if (file_exists($formName.".inc.php"))
{
include($formName.".inc.php");
}*/

//OPEN AND LOAD THE XML FILE
if (file_exists($xmlFile))
{
$fd = fopen(basename($xmlFile),'r');
while(!feof($fd))
{
$contents .= fgets($fd,1024);
}
fclose($fd);
}
else
{
err("No &lt;xml&gt; data file found<br>Please upload the data xml file ".$xmlfile);
}

$file_info = preg_replace("/\r|\n/"," ",$contents);

//INCLUDES THE FORM RESULTS IN YOUR THANK YOU PAGE
$incresults = (preg_match('/<form.*?includeresults="true".*?>/',$file_info));

//IF SHOULD SEND EMAIL OF FORM RESULTS TO THE USER
$emailusr = (preg_match('/<form.*?emailuser="true".*?>/',$file_info));

preg_match('/<hidden.*?name="thankyoumessage".*?value="(.*?)".* ?>/',$file_info,$matches2);
$thanksemailResponseData = unhtmlentities($matches2[1]);

preg_match('/<form.*?bkcolor2="(.*?)".*?>/',$file_info,$matches3);
$backgroundclr = $matches3[1];

preg_match('/<form.*?fontcolor2="(.*?)".*?>/',$file_info,$matches4);
$fontclr = $matches4[1];

preg_match('/<form.*?autoresponse="(.*?)".*?>/',$file_info,$matches5);
$autoresponse = $matches5[1];

//IF THERE IS NO THANK YOU MESSAGE MAKE ONE
if(!$thanksemailResponseData)
{
$thanksemailResponseData="Thank you for your form submission!";
}

//////////////////////////////////////////////////////////////
// CREATE EMAIL RESPONSE
//////////////////////////////////////////////////////////////

//REVERSING ARRAY ELEMENTS SO THEY APPEAR IN CORRECT FORM ORDER
$_REQVARS=array_reverse($_REQVARS);

//DELETE VALUES WE WONT NEED IN THE ACTUAL EMAIL
unset($_REQVARS['thankyoupage']);
unset($_REQVARS['subject']);
unset($_REQVARS['mailto']);
unset($_REQVARS['xmlfile']);
unset($_REQVARS['thankyoumessage']);
unset($_REQVARS['uR']);
unset($_REQVARS['eM']);
unset($_REQVARS['_ALT_EMAIL']);

//THERE ARE 3 DIFFERENT RESPONSE TYPES FOR THE FORM
//$formResponseData IS THE HTML RESPONSE THAT IS SENT BACK TO THE USER
//$txtFileData IS THE DATA SUBMITTED THAT IS SAVED TO A TXT FILE
//$emailResponseData IS THE EMAIL SENT TO THE OWNER OF THE FORM

//CREATE HEADERS FOR RESPONSE TYPES
$formResponseData.="<span><p align=\"center\">Below is the information you submitted:</br></br></p><p align=\"center\">";
$txtFileData=$formName.'|'.date("Y-m-d H:i:s").'|'.$_SERVER['REMOTE_ADDR'].'|';

//ADD SUBMITTED FORM DATA TO THE 3 RESPONSES
foreach($_REQVARS as $key=>$value)
{
$new1=str_replace("_"," ",$key);

$emailResponseData .= "$new1: ".stripslashes($value)."\r\n\r\n";
$formResponseData.="$new1: ".stripslashes($value)."<br/>";
$txtFileData .= "$new1: ".stripslashes($value)."|";
}

//FIX UP FORM RESPONSE
$formResponseData.="</p></span>";
$formResponseData=str_replace("_"," ",$formResponseData);
$unregFormResponseData = '';
if($unreg == 'true')
{
$unregFormResponseData="<div align=\"center\"><font size=\"1\" face=\"Arial\">Created with CoffeeCup Form Builder <a href=\"http://www.coffeecup.com/\" target=\"_blank\" title=\"CoffeeCup Form Builder\">Download It Here</a></font></div>";
}

//FIX UP EMAIL RESPONSE
if($unreg == 'true')
{
$emailResponseData .= "------------------------\r\n\r\nThis Form was sent to you using CoffeeCup Form Builder.\r\nPlease tell a friend about us: http://www.coffeecup.com/form-builder/\r\n";
}

$emailResponseData .= $autoresponse;

//////////////////////////////////////////////////////////////
// EMAIL RESPONSES
//////////////////////////////////////////////////////////////

//CONSTRUCT A PROPER MIME/UTF-8 FOR EXTENDED ASCII, AND INTERNATIONALIZATION
$headers = "MIME-Version: 1.0\r\n" . "Content-type: text/plain; charset=UTF-8\r\n\r\n";

//IF THEY SPECIFY "EMAIL" IN THEIR FORM, IT WILL SET THE REPLY-TO FIELD.
if($formUserEmail)
{
//SEND EMAIL TO FORMS OWNER
$sentMail1 = mail($mailto,$subject,$emailResponseData,"Reply-To: $formUserEmail\r\nFrom: $formUserEmail\r\n$headers");
if (!$sentMail1) err("Cannot send email at #1!");
}
else
{
//SEND EMAIL AS REGULAR WEB SERVER USER
$sentMail2 = mail($mailto,$subject,$emailResponseData,$headers) ;
if (!$sentMail2) err("Cannot send email at #2!"."<br>".$mailto);
}

//MAIL TO FORM USER
if($emailusr)
{
if($formUserEmail)
{
$sentMail3 = mail($formUserEmail,$subject,$emailResponseData,"R eply-To: $mailto\r\nFrom: $mailto\r\n$headers");
if (!$sentMail3) err("Cannot send email at #3!");
}
}

//////////////////////////////////////////////////////////////
// SAVE TO TXT FILE
//////////////////////////////////////////////////////////////

if ($saveFile != '[FILENAME]')
{
$fd = fopen($saveFile,"a+");
ccfputcsv($fd, $txtFileData);
fclose($fd);
}

//////////////////////////////////////////////////////////////
// CREATE AND SHOW THE HTML RESPONSE PAGE
//////////////////////////////////////////////////////////////

//IF NOT SUPPOSED TO INCLUDE FORM RESULTS DELETE RESULTS
if(!$incresults)
{
$formResponseData="";
}

//GO TO THANK YOU PAGE IF NECESSARY
if($thankyoupage)
{
header("Location: $thankyoupage");
}
else
{
print <<<__EOT__
<html>

<head>
<title>Form Submitted</title>
<style type="text/css">
<!--
body {
background-color:$backgroundclr;
}
#message {
width:720px;
margin:9px auto;
text-align:center;
font:bold 14px 'Trebuchet MS',arial,helvetica,sans-serif;
color:$fontclr;
}
#message span {
font-weight:normal;
}
//-->
</style>
</head>

<body bgcolor="$background-color">
<center>
<div id="message"><div>$thanksemailResponseData</div>
<br /><br />
$formResponseData
<br /><br />
$unregFormResponseData
</center>
</body>

</html>
__EOT__;

}

function err($string)
{
global $version;
echo("<h2 style=\"font:normal 20px 'Trebuchet MS',arial\">$string</h2>");
echo("<h2 style=\"font:normal 12px 'Trebuchet MX',arial\">There was an error running the Form Builder script.<br /><!-- $version --></h2>");
exit();
}

function ccfputcsv($handle, $myemailResponseData)
{
fputs($handle, $myemailResponseData."\n");//stripslashes(substr($str, 0, -1))

return strlen($myemailResponseData);
}

function unhtmlentities($string)
{
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}


?>
  #2 (permalink)  
Antiguo 31/01/2009, 16:20
 
Fecha de Ingreso: diciembre-2007
Mensajes: 137
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: ayuda con formulario con upload

Bueno ya solucione el problema, logro enviar el correo y que el archivo sea enviado al servidor, pero me gustaria que el archivo viniera adjunto al correo y que no solo se kedara en el servidor, se puede hacer eso?

Cree un formulario con la opcion de enviar curriculum, y mi idea es que ese curriculum le llegue al encargado de contratar personal, pero resulta que el email que le llega al encargado solo son con los datos pero sin el archivo adjunto, el cual si queda alojado en el servidor.


Me ayudan please :)
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 03:55.