Comunidad de diseño web y desarrollo en internet online

ayuda con IF y recolecion de info desde Radio

Citar            
MensajeEscrito el 10 May 2010 08:49 pm
hola gente este es mi primer post
y es para solicitarles ayuda
ocupo crear una condicion para que en mi formulario cuando la gente marca una opcion el correo junto con el archivo adjunto valla a un correo y si marcan la otra opcion valla a otro correo distinto

aqui esta la info del formulario
Cita:

darkcus escribió:

<form name='formulario' id='formulario' method='post' action='email2.php' target='_self' enctype="multipart/form-data">
<p><strong>Please choose one below:</strong></p>
<p align="center">Job<input type="radio" id="asunto" name="asunto" value="Job" />&nbsp; &nbsp; Internship <input type="radio" id="asunto" name="asunto" value="Internship" /></p><br />
<p>Full Name <input type='text' name='Nombre' id='Nombre'></p>
<p>E-mail
<input type='text' name='email' id='email'>
</p>
<p>Mensaje
<textarea name="mensaje" cols="50" rows="10" id="mensaje"></textarea>
</p>
<p>Upload CV: <input type='file' name='archivo1' id='archivo1'></p>
<p>Format: .pdf, .doc, .docx, .txt &nbsp; &nbsp; &nbsp; &nbsp; Max 1 Mb</p><br />
<p align="right">
<input type="image" value='Enviar' src="images/send.gif" />
</p>
</form>

y aqui esta la del codigo php que envia la info

Cita:

darkcus escribió:

<?php
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";

if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;

foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero = fopen($vAdjunto["tmp_name"], 'r');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}

if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}

//cambiar aqui el email
if (form_mail("[email protected]", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
echo "Su formulario ha sido enviado con exito";
?>

espero me puedan ayudar a modificarlo

hasta el momento funciona bien, pero quiero ponerle esa condición y no tengo la mas mínima idea d como hacerlo

a por cierto no soy un experto en PHP pero algo le hago

Por darkcus

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 May 2010 08:56 pm
Oh, gawd.

Necesitas sanitizar tus entradas de datos. El código que pusiste está pidendo una inyección a gritos.

¿Sabes lo más básico de PHP? ¿Parámetros de funciones? ¿Variables?

Al llamar la función form_mail estás enviando "[email protected]" como el parámetro de remitente. Esto necesita ser una variable que cambia dependiendo del valor de $_POST['asunto'].

Así:

Código :

if($_POST['asunto'] == 'Job')
{
   $para = '[email protected]';
}
else
{
   $para = '[email protected]';
}

if (form_mail($para, $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
echo "Su formulario ha sido enviado con exito";

Por Alan

470 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 10 May 2010 09:00 pm
pues...... si se lo que significacada parametro y puedo interpretarlo pero no tengo mucho conocimiento, basicamente copio y pego :oops: y la mayoria me funcionan jejejeje
si me puedes ayudar con este formulario te lo agradeceria montones

Por darkcus

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 May 2010 09:07 pm
men allan muchas gracias
ya funciona :D

Por darkcus

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 10 May 2010 09:11 pm
Utiliza el código que te posteé.

No tiene nada de malo ir "copiando y pegando". Es una manera válida de aprender.

Pero me da la impresión de que el código que pegaste lo estás utilizando en producción (o sea, que alguien lo utiliza y no sólo lo estás utilizando para hacer pruebas y aprender). ¿Es esto cierto? El problema con esto es que no sabes cómo funciona tu código y hay muchos errores, además de que éste código en particular es bastante inseguro ya que no sanitiza las cabeceras de e-mail y no checa el tipo de archivo del adjunto ni su tamaño. Alguien descubre esto y podría empezar a enviar troyanos desde tu formulario de e-mail.

No tiene nada de malo ir "copiando y pegando" para aprender, repito. Pero no pongas nada en producción que no sabes cómo funciona.

Suerte.

Por Alan

470 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 10 May 2010 09:16 pm
si es correcto es para produccion
se que no es correcto pero me ha costado mucho encontrar uno que funcione como se necesita
y como ese funciono me parecio correcto
y como puedo mejorarlo?
sabras de algun codigo que pueda utilizar para este caso en especifico?

gracias por avisarme de lo que puede ser capaz este codigo

y si realmente he aprendido bastante trabajando de esta forma

Saludos

Por darkcus

2 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.