Hola, hace mas de una semana que estoy tratando de saber si este codigo php esta bien escrito y no he conseguido ayuda, tal vez sea porque es un tema muy dificil .... por eso recurro a Uds., quisiera saber si estan bien validados los input data (server side) contra Inyecciones de Cabeceras, ataques, etc (ya que me han atacado en 2 oportunidades, un simple formulario de contacto ya no es suficiente, debe ser "Seguro" !) .... no soy programadora, he estado leyendo el manual de php pero no es tan sencillo, por eso les suplico !!! a ver si alguien le puede hechar un ojo .... les copio el cogido (php y luego el html del formulario). Tambien se valida el formulario del lado del cliente con javascript.
Desde ya muchas gracias por su ayuda !!!
<?php
if(isset($_POST['boton'])){
if($_POST['nombre'] == ''or !preg_match('/^[a-z0-9()\/\'":\*+|,.; \- !?&#$@]{2,75}$/i',$_POST['nombre'])){
$errors[1] = '<span class="error">Ingrese su nombre</span>';
}else if($_POST['email'] == '' or !preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i',$_POST['email'])){
$errors[2] = '<span class="error">Ingrese un email correcto</span>';
}else if($_POST['asunto'] == ''){
$errors[3] = '<span class="error">Ingrese un asunto</span>';
}else if($_POST['mensaje'] == ''){
$errors[4] = '<span class="error">Ingrese un mensaje</span>';
}else{
$dest = "[email protected]"; //Email de destino
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$asunto = $_POST['asunto']; //Asunto
$cuerpo = $_POST['mensaje']; //Cuerpo del mensaje
//Cabeceras del correo
$headers = "From: $nombre $email\r\n"; //Quien envia?
$headers .= "X-Mailer: PHP5\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; //
if(mail($dest,$asunto,$cuerpo,$headers)) {
$result = '<div class="result_ok">Gracias !! Email enviado correctamente</div>';
// si el envio fue exitoso reseteamos lo que el usuario escribio:
$_POST['nombre'] = '';
$_POST['email'] = '';
$_POST['asunto'] = '';
$_POST['mensaje'] = '';
}else{
$result = '<div class="result_fail">Hubo un error al enviar el mensaje</div>';
}
}
}
function safe( $nombre ) {
return( str_ireplace(array( "\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:" ), "", $nombre ) );
}
?>
<form class='contacto' method='POST' action=''>
<div><label>Tu Nombre:</label><input type='text' class='nombre' name='nombre' value='<?php echo $_POST['nombre']; ?>'><?php echo $errors[1] ?></div>
<div><label>Tu Email:</label><input type='text' class='email' name='email' value='<?php echo $_POST['email']; ?>'><?php echo $errors[2] ?></div>
<div><label>Asunto:</label><input type='text' class='asunto' name='asunto' value='<?php echo $_POST['asunto']; ?>'><?php echo $errors[3] ?></div>
<div><label>Mensaje:</label><textarea rows='6' class='mensaje' name='mensaje'><?php echo $_POST['mensaje']; ?></textarea><?php echo $errors[4] ?></div>
<div><input type='submit' value='Envia Mensaje' class='boton' name='boton'></div>
<?php echo $result; ?>
</form>
Reply With Quote Reply With Quote
+ Reply to Thread
« Previous Thread | Next Thread »
Bookmarks
Digg
del.icio.us
StumbleUpon
Google
Posting Permissions
You may not post new threads
You may not post replies