Autor Tema: Problema con script en formulario  (Leído 662 veces)

Desconectado aranda_69

  • PHPerit@
  • *
  • Mensajes: 1
  • Karma: 0
    • Ver Perfil
Problema con script en formulario
« en: 17 de Septiembre de 2008, 23:55:24 pm »
Hola a todos, tengo un pequeño problema con un formulario PHP:
He realizado un formulario básico para solicitar información a mi empresa pero cuando subo los archivos a mi servidor, me da este error:
"Fatal error: Call to undefined function: phprequire() in /var/www/vhost/natacionmitos.es/home/html/contacto.php on line 1"
No sé donde puede estar el error, he comprobado el script y yo no veo nada raro...

Bueno, ya puestos... ¿como puedo hacer para que el campo "email" sea obligatorio?
la dirección donde está alojado el archivo es www.natacionmitos.es/contacto.php
Adjunto mi script, agradeciendo de antemano cualquier ayuda.

CONTACTO.PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

 

<link rel="shortcut icon" href="/images/favicon.ico">
<link href="/estilos.css" rel="stylesheet" type="text/css">
<link href="/contacto.css" rel="stylesheet" type="text/css">
 
<title>Contacta con nosotros. Escuela de Nataci&oacute;n MITOS. Elche (Alicante)</title>
 
<!--  Inicio script favoritos -->
 

 

</head>
 
<body>
 
<div id="contenedor"><!--  INICIO CAPA CONTENEDOR -->
 
<div id="cabecera"><img src="/images/cabecera.jpg" width="700" height="150" alt="Escuela de Natación MITOS" border="0"></div>
 
<div id="navegador">
 

<?php
require ("/var/www/vhost/natacionmitos.es/home/html/include/menu1.php");
?>

 
</div>
 
<div id="cuerpo"><!--  INICIO CAPA CUERPO -->
 
<h2>Contacta con nosotros</h2>
 

<p align="justify">Para nosotros tu opinión es MUY IMPORTANTE, ¡Ayúdanos a mejorar!
<p align="justify">En Escuela de Natación MITOS estamos permanentemente a tu servicio, nuestra filosofía está orientada hacia las necesidades de nuestros clientes.
<p align="justify">Utiliza este servicio para realizar cualquier tipo de consulta o duda, por supuesto, ¡sin ningún compromiso!
 
<div>
 
<form action="email.php" method="post" class="formulario">
 
<h2 class="titform">Dinos qué te interesa</h2>
<select name="asunto" size="1">
<option selected>Asunto</option>
<option value="Falta de asistencia">Falta de asistencia</option>
<option value="Monitores">Monitores</option>
<option value="Instalaciones">Instalaciones</option>
<option value="Natación para bebés">Natacion para bebes</option>
<option value="Natación infantil">Natacion infantil</option>
<option value="Perfeccionamiento">Perfeccionamiento</option>
<option value="Natación para adultos y mayores">Natacion para adultos y mayores</option>
<option value="Natación para embarazadas">Natacion para embarazadas</option>
<option value="Natación adaptada">Natacion adaptada</option>
<option value="Aquafitness">Aquafitness</option>
<option value="Rehabilitaciones médicas">Rehabilitaciones medicas</option>
<option value="Clases especiales, fobias">Clases especiales, fobias</option>
<option value="Buzón de sugerencias">Buzon de sugerencias</option>
<option value="Otros">otros</option>
 
</select>
 

<h2 class="titform">datos personales</h2>
 

Nombre&nbsp;&nbsp;
<input name="name" type="text" size="40" maxlength="100" class="campos" />
<br/>
 
Teléfono&nbsp;
<input name="telefono" type="text" size="40" maxlength="200" class="campos" />
<br/>
 
Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input name="correo" type="text" class="campos" id="correo" size="40" maxlength="200" />
<br/>
 
Mensaje&nbsp;
<textarea name="mensaje" cols="24" rows="7" class="campos"></textarea>
 
<input name="enviar" type="submit" value="Enviar"/>
</form>
 
</div>
</div><!--  FINAL CAPA CONTENEDOR -->
 
</body>
</html>

EMAIL.PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

 
<link rel="shortcut icon" href="/images/favicon.ico">
<title>Gracias por contactar con Escuela de Nataci&oacute;n MITOS</title>
 
<link href="/estilos.css" rel="stylesheet" type="text/css">
 

<style type="text/css">
<!--
.Estilo1 {
font-size: 14pt;
font-weight: bold;
}
-->
</style>
</head>
 
<body>
 

<div id="contenedor" style="width:500px; height:100%;">
<h1 align="center" class="Estilo1">...Correo enviado</h1>
 
<p align="center">
Muchas gracias por contactar con Escuela de Nataci&oacute;n MITOS!!!
 
<div align="justify">
 

 
<?php
$email = "info@natacionmitos.es";
$name = $_REQUEST['name'];
$asunto = $_REQUEST['asunto'];
$correo = $_REQUEST['correo'];
$telefono = $_REQUEST['telefono'];
$mensaje = $_REQUEST['mensaje'];
 
$mensaje = "Este mensaje fue enviado por " . $name . ", por el ausnto: " . $asunto . " \r\n";
$mensaje .= "Su e-mail es: " . $email . " \r\n";
$mensaje .= "Su telefeno es: " . $telefono . " \r\n";
$mensaje .= "Mensaje: " . $_REQUEST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());
 
mail($email,"Correo desde la web de MITOS",$mensaje);
echo "<br /> Se ha enviado un email desde nuestro formulario <strong>Contactar</strong>, con los siguientes datos: <p>";
echo "Mensaje: <br/>" . $mensaje;

?>

 

</div>
 
<hr size="2" noshade color="#F0BB00">
 
<div align="center" style="clear:both ">
 
<strong>Escuela de Natación MITOS</strong><br>
Bernab&eacute; del Campo LaTorre, 11<br>
03202 Elche<br>
Tlf. 96 542 41 76<br>
info@nataciónmitos.es
 
</div>
 
</div>
 
</body>
</html>

****************
Muchas gracias por todo!

Comunidad PHPeros

Problema con script en formulario
« en: 17 de Septiembre de 2008, 23:55:24 pm »

Desconectado gcjuan

  • PHPerit@
  • *
  • Mensajes: 6
  • Karma: 0
  • Sexo: Masculino
    • Ver Perfil
Re: Problema con script en formulario
« Respuesta #1 en: 27 de Septiembre de 2008, 05:30:50 am »
Hola que tal =D, bueno, a mi parecer el problema está en la configuración de tu servidor. Puedes hablar con tu hosting para pedir más información.. La verdad te respondo para ayudarte a hacer que el campo correo sea obligatorio. Lo que tendrías que hacer es poner estas líneas al principio de tu página donde procesas el envio:

if ($_POST[&#39;correo&#39;] == "") // Si la variable de correo está vacia entonces muestra un mensaje de error.
{
echo 
"El campo de correo es obligatorio".
exit;
}


.. Ahora yo te recomendaría que usaras una expresion regular para comprobar además si el formato del correo es correcto (nombre@host.com), con un código así:

if (!ereg("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$"$_POST[&#39;correo&#39;]))
  
{
    echo 
"Esta no es una dirección de email válida.";
    exit;
  }
/*
Con ^[a-zA-Z0-9_], le estamos indicando que al principio (^) de lo escrito debe ir algún caracter que sea alguna letra, piso (_), o número  (a-zA-Z0-9_), luego separado por un +, le indicamos que debe venir un @ seguido de algun caracter de texo, número o guion (\-). Se pone una barra inclinada antes del guion para que php no crea que ese guión significa que estamos haciendo otro grupo (a-z por ejemplo). En programación se llama "escapar al caracter". Luego debe venir un punto (\.) (de nuevo usamos la barra invertida) seguido del com, net, etc.. como puedes ver el $ significa que debe terminar con eso ajuro, y el ^ que debe empezar con eso.
Eso es un poco la explicación de lo que hice, y como sé que soy muy enredado te recomiendo ir a http://www.php.net/ereg si quieres saber más sobre esta función.
*/


Saludos y espero que te haya podido ayudar en algo ;)