estoy usando los servicios de un hosting pago y en las configuraciones de PHP del servidor (linux) las variables global están deshabilitadas por precaución a los ataques externos. Yo estoy usando en el código PHP de mi formulario de contacto, una variable "global" para verificar la autenticidad de la dirección de correo del usuario, pero la limitación del servidor bloquea el código en ese punto (al llegar a la variable global) y los mensajes enviados por el formulario nunca salen a su destino. Los señores del servidor me dicen que ellos no prestan ayuda de programación. Sin embargo me sugieren que cambie la variable global por $SERVER...y se leería así: $SERVER ["HTTP HOST"] en ves de global $HTTP_HOST......ya lo intenté e igual no funciona.
Quien pueda darme luces con esto se lo agradezco de antemano.....
Aquí el código completo:
Código :
<?php $name=$_POST['name']; $email=$_POST['email']; $subject=$_POST['subject']; $message=$_POST['message']; $name=trim($name); $email=trim($email); $subject=StripSlashes($subject); $message=StripSlashes($message); $toaddress='[email protected]'; function validate_email($email) { global $HTTP_HOST if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) { return 1; } list ( $Username, $Domain ) = split ("@",$email); if (checkdnsrr ( $Domain, "MX" )) { if (getmxrr ($Domain, $MXrec)) { $Mailserver = $MXrec[0]; } else { return 2; } } else { $Mailserver = $Domain; } if ($Connection = fsockopen($Mailserver, 25)) { if (ereg("^220", $Rubbish = fgets($Connection, 1024))) { fputs ( $Connection, " HELO $HTTP_HOST\r\n" ); $Rubbish = fgets ( $Connection, 1024 ); fputs ( $Connection, "MAIL FROM: <{$email}>\r\n" ); $Fromstring = fgets ( $Connection, 1024 ); fputs ( $Connection, "RCPT TO: <{$email}>\r\n" ); $Tostring = fgets ( $Connection, 1024 ); fputs ( $Connection, "QUIT\r\n"); fclose($Connection); if (ereg("^250", $Fromstring) && ereg("^250", $Tostring)) { return 0; } else { return 1; } } else { return 1; } } else { return 1; } } $valid = validate_email($email); switch ($valid) { case 0: mail($toaddress,$subject,$message,"From: $name <$email>"); $name=''; $email=''; $subject=''; $message=''; echo 'response=passed'; break; case 1: echo 'response=invalid'; break; case 2: echo 'response=error'; break; } ?>