Foros del Web » Programando para Internet » PHP »

Duda con un script de envio en PHP

Estas en el tema de Duda con un script de envio en PHP en el foro de PHP en Foros del Web. Hola! Amigos soy nuevo en este foro, lo he encontrado muy interesante y vengo con una duda, trate de hacerlo solo pero no pude, tengo ...
  #1 (permalink)  
Antiguo 03/04/2007, 17:12
 
Fecha de Ingreso: abril-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Duda con un script de envio en PHP

Hola!

Amigos soy nuevo en este foro, lo he encontrado muy interesante y vengo con una duda, trate de hacerlo solo pero no pude, tengo una duda sobre un script en PHP que encontré en la Internet el cual se encarga de enviar los datos de un formulario al e-mail.

Este es el script original:

Código PHP:
<?php 

// aqui tu e-mail

$recipiente "[email protected]"


// URL o enlace a la pagina hogar

$home "dominio.com"


// mensaje que te llegara al email con los datos 

$msg "Hola $nombre

$nombre, envia el formulario de contacto con los siguientes datos:\n

Nombre: $nombre 
E-mail: $email 
Pagina de internet: $web  

Asunto: $asunto

Mensaje del visitante: 

$mensaje\n\n"


// Comprobamos que los campos del formulario se encuentren completos.

if (empty($nombre)||empty($email)||empty($asunto)||empty($mensaje)){ 
echo 
'No llenaste las casillas';

} else{ 

// Enviamos el formulario con todos los datos. 

mail("$recipiente""$asunto""$msg""From: $nombre"); 

//Damos las gracias al visitante por contactarnos. 

echo"<font face=tahoma size=2> 
<p align=center>Gracias <b>$nombre</b>.  
<p align=center>Respondere a su mensaje en un plazo de 12 horas.<br><br>
<br>
<p align=center><br> 
<strong><a href=$home>Regresar al inicio</strong></a>.</p>"
;

?>
El problema con este script es que no evita los ataques anti flood, ya que le pase la dirección de mi formulario de contacto a un amigo y me envio 200 emails en 1 hora por medio del mismo.

Buscando en la Internet encontré lo que buscaba

La cual explica muy bien como agregar un código de verificación a cualquier formulario para evitar los Floods pero no lo entendí muy bien. Si quieres visiten esa web para que lo entiendan
mejor, el caso es que tengo los siguientes archivos:

Contacto.html - este es mi formulario de contacto en HTML

Enviado.php - este es el script que les puse anteriormente, el cual envía los datos al email

Create_image.php – este se encarga de crear la imagen en PHP (el código de confirmación).

ajax_captcha.js - un código en java script que tiene que ver con create_image.php, este archivo lo tengo que incluir en mi formulario de contacto con un:

Código:
<script language="JavaScript" type="text/javascript" src="ajax_captcha.js"></script>
Vamos bien… Los ejemplos de la web me dio otro archivo llamado: captcha.php el cual verifica que campo del formulario (el campo del código de verificación) no este vacio y que corresponda con la imagen que se guardo para poder enviarse.

Capcha.php contiene el siguiente código:

Código PHP:
<?


//Continue the session
session_start();

//Make sure that the input come from a posted form. Otherwise quit immediately
if ($_SERVER["REQUEST_METHOD"] <> "POST"
 die(
"You can only reach this page by posting from the html form");

//Check if the securidy code and the session value are not blank 
//and if the input text matches the stored text
if ( ($_REQUEST["txtCaptcha"] == $_SESSION["security_code"]) && 
    (!empty(
$_REQUEST["txtCaptcha"]) && !empty($_SESSION["security_code"])) ) {
  echo 
"<h1>Test successful!</h1>";
} else {
  echo 
"<h1>Test failed! Try again!</h1>";
}
?>
Ahora, yo pensé que podía agregarle el contenido de captcha.php a mi archivo con el script enviado.php pero algo salió mal… no puedo hacer funcionar el script enviado.php si agrego el otro (captcha.php)

Esto es lo que tengo en enviado.php hasta el momento:

Código:
<?php

//Continue the session
session_start();

//Make sure that the input come from a posted form. Otherwise quit immediately
if ($_SERVER["REQUEST_METHOD"] <> "POST")
 die("You can only reach this page by posting from the html form");

// aki tu e-mail

$recipiente = "[email protected]";


// URL o enlace a la pagina hogar

$home = "dominio.com";


// mensaje k te llegara al email con los datos

$msg = "Hola $nombre

$nombre, envia el formulario de contacto con los siguientes datos:\n

Nombre: $nombre
E-mail: $email
Pagina de internet: $web 

Asunto: $asunto

Mensaje del visitante:

$mensaje\n\n";

// Comprobamos que los campos del formulario se encuentren completos.

if (empty($nombre)||empty($email)||empty($asunto)||empty($mensaje)){
echo 'No llenaste las casillas';

} else{

//Check if the securidy code and the session value are not blank
//and if the input text matches the stored text
if ( ($_REQUEST["txtCaptcha"] == $_SESSION["security_code"]) &&
    (!empty($_REQUEST["txtCaptcha"]) && !empty($_SESSION["security_code"])) ) {
  echo "<h1>Test successful!</h1>";
} else {
  echo "<h1>Test failed! Try again!</h1>";
}

// Enviamos el formulario con todos los datos.

mail("$recipiente", "$asunto", "$msg", "From: $nombre");

//Damos las gracias al visitante por contactarnos.

echo"<font face=tahoma size=2>
<p align=center>Gracias <b>$nombre</b>. 
<p align=center>Su mensaje fue enviado con <b>¡exito!...</b>
<p align=center>Respondere a su mensaje en un plazo de 12 horas.<br><br>
<br>
<p align=center><br>
<strong><a href=$home>Regresar al inicio</strong></a>.</p>";
}
?>
Nota:

Lo que esta en negrita del codigo citado es lo que le agregue al script original, pero no funciona...
Creo que el problema es con esta parte:

Código:
//Check if the securidy code and the session value are not blank
//and if the input text matches the stored text
if ( ($_REQUEST["txtCaptcha"] == $_SESSION["security_code"]) &&
    (!empty($_REQUEST["txtCaptcha"]) && !empty($_SESSION["security_code"])) ) {
  echo "<h1>Test successful!</h1>";
} else {
  echo "<h1>Test failed! Try again!</h1>";
}
  #2 (permalink)  
Antiguo 03/04/2007, 19:41
 
Fecha de Ingreso: abril-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Re: Duda con un script de envio en PHP

Nadie?
  #3 (permalink)  
Antiguo 04/04/2007, 12:25
 
Fecha de Ingreso: abril-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Re: Duda con un script de envio en PHP

Nadie?
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 02:37.