Problema con formulario de contacto en php

Topic created · 7 Mensajes · 1115 Visitas
  • Buenas,

    Actualmente estoy haciendo una web para un servidor privado de metin2, y me he visto obligado a meter un formulario de contacto, pero no tengo mucha idea de como hacerlo, asi que busqué por internet y saqué estos scripts:

    \r\n";
    					$headers.='Content-type: text/html; charset=utf-8';
    					mail($your_email, $_POST['subject'],  "
    					
    					
    					
    					Contact Message[br].[/br][br].[/br]
    					Name : ".$_POST['name']."[br].[/br]
    					Email : ".$_POST['email']."[br].[/br]
    					Telephone : ".$_POST['telephone']."[br].[/br][br].[/br]
    					Subject : ".$_POST['subject']."[br].[/br]
    					Message : [br].[/br]".$_POST['message']."[br].[/br]
    					
    					" , $headers);
    					header("Location: contacto.php");
    					?>
    
    
    
    
    Nombre: 
    [br].[/br]
    Email: 
    [br].[/br]
    Comentarios: 
    [br].[/br]
    
    
     
    
    Y otros muchos más códigos, pero me salen errores y no se envian correctamente. Me gustaría que, si alguien tiene algún script para formularios de contacto, me lo pasara, o si simplemente alguien sabe que error tienen estos scripts, porfavor que me lo diga.
    
    Gracias de antemano,
    
    Un saludo.[/email]
  • el problema es que intentas enviarlo a una dirección de correo, y seguramente no tiene ningún servidor de correos, lo que puedes hacer es que se envíen como texto plano a algún archivo en tu pc(supongo que tienes la web en el xammp)...la verdad que ahorita no tengo tiempo, pero busca en google que sale bastante información.

  • Si, uso xampp, y lo que has dicho del servidor de correo ya lo habia pensado pero no tengo mucha idea de como hacerlo. Tendré que buscar alguna por ahí. De todas maneras, si puedes decirme como puedo hacer lo de enviar el mensaje en texto plano a un archivo te lo agradecería mucho.

    Un saludo y gracias :wiii:

  • creo que seria más o menos así...no lo he probado pero confió en que funcione.

    Nombre: 
    [br].[/br]
    Email: 
    [br].[/br]
    Comentarios: 
    [br].[/br]
  • tiene buena pinta, salvo una cosa. Tal como lo has puesto, el código PHP se va a ejecutar siempre. Es decir, nada más entrar alguien en la página de contacto va a intentar enviar el mensaje, y probablemente deje escrito en el archivo algo así:
    "Nombre: .\r\n email: .\r\n\r\n comentario:\r\n .\r\n";
    Es decir, con las variables vacías.
    "su comentario se ha enviado con exito"

    Así que yo añadiría un par de líneas, q no cuesta na:

    if ( (isset($_POST['nombre']) && (isset($_POST['email']) && (isset($_POST['coment']) )
    {
    //escribimos el archivo, etc.
    }
    else
    {
    //mostramos el formulario
    }
    

    Así o mostramos formulario, o enviamos datos. Pero no intentamos hacer las 2 cosas a la vez. Y ya de paso, si el usuario no mete los 3 datos (nombre, email y coment), ni siquiera intentamos enviar nada.
    Habría que pulirlo, y lo suyo es que el mensaje de "se ha enviado con éxito" salga encima del formulario, en vez de en una página en blanco.

    Y si nos metemos a validar datos pues aun añadiríamos unas cuantas cosillas más jeje. Pero con eso ya lo básico está.

  • Gracias feos 🙂 ya lo pude solucionar.

    Un saludo.

  • :facepalm: fail mio...eso me pasa por andar haciéndolo apurado y a las 2 am... que bueno que hayas podido hacerlo bien aún con los fallos que le deje XD