Foros del Web » Programando para Internet » PHP »

interprete php

Estas en el tema de interprete php en el foro de PHP en Foros del Web. Buenas! Estoy creando una página de prueba para aprender a usar bien html y me he descargado el Wamp Server. He deducido que los archivos ...
  #1 (permalink)  
Antiguo 20/07/2015, 05:21
 
Fecha de Ingreso: junio-2015
Mensajes: 37
Antigüedad: 8 años, 9 meses
Puntos: 0
interprete php

Buenas!
Estoy creando una página de prueba para aprender a usar bien html y me he descargado el Wamp Server. He deducido que los archivos de la web los he de poner en la carpeta www (corregidme si esto está mal hecho).
El problema que tengo es que he hecho un formulario y mi intención es enviar los datos a mi correo mediante php, sin embargo cuando le doy a enviar en el formulario me aparece una página en blanco y en el buscador cambia la dirección al archivo enviar.php..
¿Qué estoy haciendo mal?
Adjunto los códigos por si sirven de ayuda que igual esta ahí el error..

Código HTML:
Ver original
  1. <form name="form1" method="post" action="enviar.php" enctype="text/plain">
  2.             <br/>
  3.             <label for="nombre">Nombre</label>
  4.             <input type="text" name="nombre" title="Se necesita un nombre" required /><br/><br/>
  5.             <label for="apellidos">Apellidos</label>
  6.             <input type="text" name="apellidos" title="Se necesitan los apellidos" required /><br/><br/>
  7.             <label for="telefono">Teléfono</label>
  8.             <input type="text" name="telefono" title="Introduce un número de teléfono válido. Patrón: XXXXXXXXX" pattern="^[1-79](\d\d){4}" required /><br/><br/>
  9.             <label for="email">Email</label>
  10.             <input type="text" name="email" title="[email protected]" pattern="^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" required /><br/><br/>
  11.             <label for="asunto">Asunto</label>
  12.             <input type="text" name="asunto" title="Introduce el asunto" required /><br/><br/>
  13.             <label for="comentario" name="comentario" title="Escribe aquí el mensaje" required>Comentario</label><br/>
  14.             <textarea cols="40" rows="10" name="comentario"> </textarea><br/><br/>
  15.             <input type="submit" value="Enviar" id="enviar"/> <input type="reset" value="Borrar" id="borrar"/>
  16.         </form>

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['email'])) {
  3.  
  4.   $email_to ="[email protected]";
  5.   $email_subject = $_POST['asunto'];
  6.  
  7.  
  8.   $email_message = "Detalles del formulario de contacto: \n\n";
  9.   $email_message .= "Nombre: " . $_POST['nombre'] . "\n";
  10.   $email_message .= "Apellido(s): " . $_POST['apellidos'] . "\n";
  11.   $email_message .= "Teléfono: " . $_POST['telefono'] . "\n";
  12.   $email_message .= "E-mail: " . $_POST['email'] . "\n";
  13.   $email_message .= "Asunto: " . $_POST['asunto'] . "\n";
  14.   $email_message .= "Comentarios: " . $_POST['comentario'] . "\n\n";
  15.  
  16.   $headers = "From: " .$email_from."\r\n".
  17.   'Reply-To: ' .$email_from."\r\n" .
  18.   'X-Mailer: PHP/' .phpversion();
  19.   @mail($email_to, $email_subject, $email_message, $headers);
  20.  
  21.   echo "¡El formulario se ha enviado con éxito!";
  22. }
  23. ?>
  #2 (permalink)  
Antiguo 20/07/2015, 05:31
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: interprete php

¿Cómo te queda la URL completa al enviarlo?
  #3 (permalink)  
Antiguo 20/07/2015, 05:40
 
Fecha de Ingreso: junio-2015
Mensajes: 37
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: interprete php

http://localhost/enviar.php
  #4 (permalink)  
Antiguo 20/07/2015, 05:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: interprete php

Ok...
¿Y tienes un servidor de correos instalado y funcionando en tu PC?

Por otro lado, procura evitar usar el "@" al principio de las sentencias o salidas de las funciones de PHP hasta que no aprendas y domines la programación en PHP. Esconden los mensajes de error que son muy importantes en etapas de desarrollo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 20/07/2015, 06:22
 
Fecha de Ingreso: junio-2015
Mensajes: 37
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: interprete php

Tengo contratado un servicio de host en one.com pero lo quisiera utilizar mas tarde porque no es para mi..
Todavia estoy haciendo pruebas.
Lo de @mail lo he utilizado porque he copiado el ejemplo de internet de como extraer la información del formulario y enviarlo al correo.
  #6 (permalink)  
Antiguo 20/07/2015, 06:46
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: interprete php

aqui esta lo que necesitas para enviar emails desde wamp server:

[URL="http://www.forosdelweb.com/f18/aporte-enviar-e-mail-desde-server-local-1132832/"]Ver Tema[/URL]

igual debes aprender un poco mas
__________________
[email protected]
HITCEL
  #7 (permalink)  
Antiguo 20/07/2015, 06:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: interprete php

Creo que no estás entendiendo bien...
Para realizar pruebas en localhost (tu propia PC), necesitas tener un servidor de correo EN tu PC.

Este link explica un ejemplo para implementarlo en XAMPP, pero te puede guiar para hacer lo mismo en WAMP:

http://ejemplocodigo.com/ejemplo-xam...-en-localhost/


O bien

http://www.desarrolloweb.com/articul...ver-falso.html

http://www.ehowenespanol.com/instala...al-como_16569/
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 21/07/2015, 06:57
 
Fecha de Ingreso: junio-2015
Mensajes: 37
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: interprete php

Bueno, al fin he conseguido que envie el mensaje al correo! pero ahora me queda una nueva duda.. como el código php se queda en un documento aparte se me queda en una página en blanco.. como vuelvo a la de inicio?
O mejor aún como incluyo el código php en la html del formulario y que debo poner en el
<form action="¿?" para que se ejecute ese código??
  #9 (permalink)  
Antiguo 21/07/2015, 07:26
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: interprete php

Prueba asi:
Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['email'])) {
  3.  
  4.   $email_to ="[email protected]";
  5.   $email_subject = $_POST['asunto'];
  6.  
  7.  
  8.   $email_message = "Detalles del formulario de contacto: \n\n";
  9.   $email_message .= "Nombre: " . $_POST['nombre'] . "\n";
  10.   $email_message .= "Apellido(s): " . $_POST['apellidos'] . "\n";
  11.   $email_message .= "Teléfono: " . $_POST['telefono'] . "\n";
  12.   $email_message .= "E-mail: " . $_POST['email'] . "\n";
  13.   $email_message .= "Asunto: " . $_POST['asunto'] . "\n";
  14.   $email_message .= "Comentarios: " . $_POST['comentario'] . "\n\n";
  15.  
  16.   $headers = "From: " .$email_from."\r\n".
  17.   'Reply-To: ' .$email_from."\r\n" .
  18.   'X-Mailer: PHP/' .phpversion();
  19.   @mail($email_to, $email_subject, $email_message, $headers);
  20.  
  21.   echo "¡El formulario se ha enviado con éxito!";
  22. }
  23. header('location: index.php');
  24. ?>
__________________
[email protected]
HITCEL
  #10 (permalink)  
Antiguo 21/07/2015, 07:26
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: interprete php

Deja el action en blanco
  #11 (permalink)  
Antiguo 21/07/2015, 07:28
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: interprete php

Puedes colocar el código php al comienzo de tu otro archivo, antes del código html, en el form colocas esto: action = "" para que se procese el POST en la misma página y al final de tu código php colocas:

Código PHP:
Ver original
  1. header('Location: http://www.example.com/');

Reemplazas esa url por la de la página que quieras que se abra al finalizar el proceso de envío de datos por mail, puede ser la misma del formulario donde está el código php en caso de ser necesario.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #12 (permalink)  
Antiguo 21/07/2015, 09:15
 
Fecha de Ingreso: junio-2015
Mensajes: 37
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: interprete php

en fin.. otro paso atrás
He reescrito el código porque me faltaban algunas cosas y ahora cuando hago el $_POST["nombre"] por ejemplo, no me devuelve nada... a que se puede deber?

Código PHP:
Ver original
  1. $name = $_POST["nombre"];
  2. $apellidos = $_POST["apellidos"];
  3. $telefono = $_POST["telefono"];
  4. $email = $_POST["email"];
  5. $asunto = $_POST["asunto"];
  6. $mensaje = $_POST["comentario"];
  7.  
  8. $envio = "Datos del formulario de contacto: \n";
  9. $envio .="Name: ". $name ."\n";
  10. $envio .="Apellidos: ". $apellidos ."\n";
  11. $envio .="Teléfono de contacto: ". $telefono ."\n";
  12. $envio .="E-Mail: ".$email. "\n";
  13. $envio .="Asunto: ".$asunto. "\n";
  14. $envio .="Mensaje: \n". $mensaje. "\n";
  #13 (permalink)  
Antiguo 21/07/2015, 09:24
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: interprete php

postea el codigo completo incluyendo el formulario, creo que alli esta tu `problema pero si no se ve como le hacemos
__________________
[email protected]
HITCEL
  #14 (permalink)  
Antiguo 21/07/2015, 09:33
 
Fecha de Ingreso: junio-2015
Mensajes: 37
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: interprete php

codigo completo:
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.     <title>Contacto</title>
  4.     <meta charset="UTF-8">
  5.     <link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
  6.     <script type="text/javascript" src="js/script.js"></script>
  7. </head>
  8.     <fieldset id="seccion1">
  9.         <a href="index.html" class="secciones">Inicio</a>
  10.         <a href="destinos.html" class="secciones">Destinos</a>
  11.         <a href="contacto.html" class="secciones">Contacto</a>
  12.     </fieldset>
  13.     <img src="img/logo.jpg" id="logo"/>
  14.     <hr/>
  15.     <fieldset id="formulario" >
  16.         <legend><kbd><big><b>Datos personales</b><big></kbd></legend>
  17.         <form name="form1" method="post" action="correo.php" enctype="text/plain">
  18.             <br/>
  19.             <label for="nombre">Nombre</label>
  20.             <input type="text" name="nombre" title="Se necesita un nombre" required autofocus /><br/><br/>
  21.             <label for="apellidos">Apellidos</label>
  22.             <input type="text" name="apellidos" title="Se necesitan los apellidos" required /><br/><br/>
  23.             <label for="telefono">Teléfono</label>
  24.             <input type="text" name="telefono" title="Introduce un número de teléfono válido" pattern="^[1-79](\d\d){4}" required /><br/><br/>
  25.             <label for="email">Email</label>
  26.             <input type="email" name="email" title="[email protected]" required /><br/><br/>
  27.             <label for="asunto">Asunto</label>
  28.             <input type="text" name="asunto" title="Introduce el asunto" required /><br/><br/>
  29.             <label for="comentario" name="comentario" title="Escribe aquí el mensaje">Comentario</label><br/>
  30.             <textarea cols="40" rows="10" name="comentario" required> </textarea><br/><br/>
  31.             <input type="submit" value="Enviar" id="enviar"/> <input type="reset" value="Borrar" id="borrar"/>
  32.         </form>
  33.     </fieldset>
  34. </body>
  35. </html>

Código PHP:
Ver original
  1. <?php
  2.  
  3. $name = $_POST["nombre"];
  4. $apellidos = $_POST["apellidos"];
  5. $telefono = $_POST["telefono"];
  6. $email = $_POST["email"];
  7. $asunto = $_POST["asunto"];
  8. $mensaje = $_POST["comentario"];
  9.  
  10. $envio = "Datos del formulario de contacto: \n";
  11. $envio .="Name: ". $name ."\n";
  12. $envio .="Apellidos: ". $apellidos ."\n";
  13. $envio .="Teléfono de contacto: ". $telefono ."\n";
  14. $envio .="E-Mail: ".$email. "\n";
  15. $envio .="Asunto: ".$asunto. "\n";
  16. $envio .="Mensaje: \n". $mensaje. "\n";
  17.  
  18. $receptor = "[email protected]";
  19.  
  20. mail($receptor, $asunto, $envio);
  21. header('Location: contacto.html');
  22. ?>
  #15 (permalink)  
Antiguo 21/07/2015, 09:36
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: interprete php

Al fin pusiste el codigo php en la misma pagina? si es asì debes dejar el action del formulario en blanco para que funcione.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #16 (permalink)  
Antiguo 21/07/2015, 09:44
 
Fecha de Ingreso: junio-2015
Mensajes: 37
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: interprete php

Noo al final lo he puesto en dos distintas para tenerlo un poco mas organizado ya que me ha servido lo de header
  #17 (permalink)  
Antiguo 21/07/2015, 10:10
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: interprete php

Despues de revisarlo varias veces veía que estaba todo bien, por lo cual decidí ejecutarlo en mi servidor y después de varias pruebas me dí cuenta que el problema se soluciona quitando esto: enctype="text/plain" y ya funciona correctamente.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #18 (permalink)  
Antiguo 22/07/2015, 03:49
 
Fecha de Ingreso: junio-2015
Mensajes: 37
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: interprete php

Perfect!! Ya solo me queda resolver el problema de que no muestra acentos en el mensaje que me llega al correo jeje

Última edición por davivi88; 22/07/2015 a las 04:10

Etiquetas: diseño-web, html, wampserver
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:12.