Foros del Web » Programando para Internet » PHP »

Error en formulario.php (email)

Estas en el tema de Error en formulario.php (email) en el foro de PHP en Foros del Web. Estimados, siendo este mi primer post, me anticipo con las disculpas si transgredo alguna norma-- Ahora el problema, Recientemente cree un formulario de registro en ...
  #1 (permalink)  
Antiguo 07/07/2012, 21:24
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Exclamación Error en formulario.php (email)

Estimados, siendo este mi primer post, me anticipo con las disculpas si transgredo alguna norma--

Ahora el problema,
Recientemente cree un formulario de registro en php, con campos validados, el problema es que al registrarse, independiente de la direccion de correo que se incluya, el mensaje de inscripcion llega a la cuenta del admin y no llega ningún mensaje al que se registro

El detalle....

<?php
function ValidateEmail($email)
{
$pattern = '/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i';
return preg_match($pattern, $email);
}

function RecursiveMkdir($path)
{
if (!file_exists($path))
{
RecursiveMkdir(dirname($path));
mkdir($path, 0777);
}
}

function WriteToFile($data)
{
$csvFile = "./formdata.csv";
$handle = fopen($csvFile, 'a') or die("can't open file");
$logtime = date("Y-m-d H:i:s,");
fwrite($handle, $logtime);
fwrite($handle, $_SERVER['REMOTE_ADDR']);
fwrite($handle, $data);
fclose($handle);
}

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$mailto = '[email protected]';
$mailfrom = isset($_POST['email']) ? $_POST['email'] : $mailto;
$subject = 'Inscripcion';
$message = 'Values submitted from web site form:';
$success_url = './gracias.html';
$error_url = '';
$error = '';
$autoresponder_from = 'Caceria del Zorro';
$autoresponder_subject = 'inscripcion';
$autoresponder_message = 'Su Inscripción ha sido recibida,
Muchas Gracias y feliz caceria
Atte.
El Zorro';
$eol = "\n";
$max_filesize = isset($_POST['filesize']) ? $_POST['filesize'] * 1024 : 1024000;
$upload_folder = "upload";
$upload_folder = "http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME'])."/".$upload_folder;

$boundary = md5(uniqid(time()));

$header = 'From: '.$mailfrom.$eol;
$header .= 'Reply-To: '.$mailfrom.$eol;
$header .= 'MIME-Version: 1.0'.$eol;
$header .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$eol;
$header .= 'X-Mailer: PHP v'.phpversion().$eol;
if (!ValidateEmail($mailfrom))
{
$error .= "The specified email address is invalid!\n<br>";
}

$prefix = rand(111111, 999999);

$i = 0;
while (list ($key, $val) = each ($_FILES))
{
if ($_FILES[$key]['name'] != "" and file_exists($_FILES[$key]['tmp_name']) and $_FILES[$key]['size'] > 0)
{
$upload_DstName[$i] = $prefix . "_" . str_replace(" ", "_", $_FILES[$key]['name']);
$upload_SrcName[$i] = $_FILES[$key]['name'];
$upload_Size[$i] = ($_FILES[$key]['size']);
$upload_Temp[$i] = ($_FILES[$key]['tmp_name']);
$upload_Type[$i] = ($_FILES[$key]['type']);
$upload_Link[$i] = "$upload_folder/$upload_DstName[$i]";
$upload_fieldname[$i] = $key;
$upload_fieldname_final[$i] = ucwords(str_replace("_", " ", $key));
$fieldvalue[$i] = $upload_Link[$i];
$i++;
}
if ($upload_Size[$i] >= $max_filesize)
{
$error .= "The size of $key (file: $upload_SrcName[$i]) is bigger than the allowed " . $max_filesize/1024 . " Kbytes!\n";
}
}

if (!empty($error))
{
$errorcode = file_get_contents($error_url);
$replace = "##error##";
$errorcode = str_replace($replace, $error, $errorcode);
echo $errorcode;
exit;
}

$uploadfolder = basename($upload_folder);
for ($i = 0; $i < count($upload_DstName); $i++)
{
$uploadFile = $uploadfolder . "/" . $upload_DstName[$i];
if (!is_dir(dirname($uploadFile)))
{
RecursiveMkdir(dirname($uploadFile));
}
else
{
chmod(dirname($uploadFile), 0777);
}
move_uploaded_file($upload_Temp[$i] , $uploadFile);
chmod($uploadFile, 0644);
}

$internalfields = array ("submit", "reset", "send", "captcha_code");
$message .= $eol;
$message .= "IP Address : ";
$message .= $_SERVER['REMOTE_ADDR'];
$message .= $eol;
foreach ($_POST as $key => $value)
{
if (!in_array(strtolower($key), $internalfields))
{
$logdata .= ',';
if (!is_array($value))
{
$message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol;
$value = str_replace(",", " ", $value);
$logdata .= $value;
}
else
{
$message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol;
$logdata .= implode("|", $value);
}
}
}

$logdata = str_replace("\r", "", $logdata);
$logdata = str_replace("\n", " ", $logdata);
$logdata .= "\r\n";
WriteToFile($logdata);

if (count($upload_SrcName) > 0)
{
$message .= "\nThe following files have been uploaded:\n";
for ($i = 0; $i < count($upload_SrcName); $i++)
{
$message .= $upload_SrcName[$i] . ": " . $upload_Link[$i] . "\n";
}
}
$body = 'This is a multi-part message in MIME format.'.$eol.$eol;
$body .= '--'.$boundary.$eol;
$body .= 'Content-Type: text/plain; charset=ISO-8859-1'.$eol;
$body .= 'Content-Transfer-Encoding: 8bit'.$eol;
$body .= $eol.stripslashes($message).$eol;
$body .= '--'.$boundary.'--'.$eol;
mail($mailto, $subject, $body, $header);
$autoresponder_header = 'From: '.$autoresponder_from.$eol;
$autoresponder_header .= 'Reply-To: '.$autoresponder_from.$eol;
$autoresponder_header .= 'MIME-Version: 1.0'.$eol;
$autoresponder_header .= 'Content-Type: text/plain; charset=ISO-8859-1'.$eol;
$autoresponder_header .= 'Content-Transfer-Encoding: 8bit'.$eol;
$autoresponder_header .= 'X-Mailer: PHP v'.phpversion().$eol;
mail($mailfrom, $autoresponder_subject, $autoresponder_message, $autoresponder_header);
header('Location: '.$success_url);
exit;
}
?>
<html>
(muy largo)
</html>


Muchas gracias amigos!!!! cualquier ayuda sirve

Última edición por ca3swt; 07/07/2012 a las 21:25 Razón: no habia incluido seguimiento
  #2 (permalink)  
Antiguo 08/07/2012, 09:36
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Error en formulario.php (email)

Bienvenido al foro le recomiendo consultar las políticas y utilizar la herramienta Highlight para mostrar código.

El error puede deberse a que no llega la variable por POST mail, revise lo que le llega por post con var_dump($_POST)
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 08/07/2012, 10:12
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Error en formulario.php (email)

Gracias amigo por la respuesta, pero como soy novato en esto, no se como aplicar esta var_dump($_POST) dentro del formulario.... :(
  #4 (permalink)  
Antiguo 08/07/2012, 10:52
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Error en formulario.php (email)

Cita:
Iniciado por ca3swt Ver Mensaje
Gracias amigo por la respuesta, pero como soy novato en esto, no se como aplicar esta var_dump($_POST) dentro del formulario.... :(
soy demasiado novato....
  #5 (permalink)  
Antiguo 08/07/2012, 13:24
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Error en formulario.php (email)

Cita:
Iniciado por ca3swt Ver Mensaje
soy demasiado novato....
¿Y le cuesta mucho investigar sobre dicha función en el manual de PHP? digo porque yo también fui novato hace tiempo en esto y no lo aprendí de la nada
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 08/07/2012, 20:38
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Error en formulario.php (email)

Gracias de todas maneras por la ayuda y el tiempo invertido...
  #7 (permalink)  
Antiguo 08/07/2012, 20:54
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años
Puntos: 168
Respuesta: Error en formulario.php (email)

ca3swt
El tema con esto es que no se aprende de un día para el otro, todo lleva un proceso, y en la web es mas complicado porque presisas no solo conocer php sino que antes viene html css javscript, se entiende? tenes que ir por parte, dale de a poco. Si sos novato como vos decis, no te pongas a copiar código por ahi que no sabes ni lo que hace, porque asumo que si sos novato como ya dijiste no creo que hallas hecho ese código vos solo.
De onda, empeza de lo mas bajo, html y luego anda subiendo de a poco.
  #8 (permalink)  
Antiguo 09/07/2012, 16:25
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Error en formulario.php (email)

Cita:
Iniciado por rodrigo791 Ver Mensaje
ca3swt
El tema con esto es que no se aprende de un día para el otro, todo lleva un proceso, y en la web es mas complicado porque presisas no solo conocer php sino que antes viene html css javscript, se entiende? tenes que ir por parte, dale de a poco. Si sos novato como vos decis, no te pongas a copiar código por ahi que no sabes ni lo que hace, porque asumo que si sos novato como ya dijiste no creo que hallas hecho ese código vos solo.
De onda, empeza de lo mas bajo, html y luego anda subiendo de a poco.
gracias amigaso por sus palabras, efectivamente soy novato y realicé todo ese codigo con ayuda del programa wysiwyg web builder, donde es cosa de ir sumando y agregando cosas, es por eso que tengo el problema con el formulario.
Explico nuevamente por si me puedes dar mas pistas... resulta que al enviar el formulario, solo a mi cuenta llegan 2 mail, uno con la informacion asociada al formulario y otro que tiene el mensaje de "gracias por inscribirse",

Entiendo que hay que ir paso a paso, pero en este caso específico estoy cooperando para una actividad de radioaficionados y como es de imaginar... la mayoría son mayores y el mas "computin" soy yo... plop jejeje

Bueno ese sería el tema amigo mio, y le agradezco nuevamente cualquier ayuda que me pueda brindar, ya que buscando en el internet y leyendo no podré terminar el formulario antes del concurso.

Gracias nuevamente
"Javier"

Etiquetas: formulario, html, registro
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 22:06.