Autor Tema: Contacto.  (Leído 1759 veces)

Desconectado mOrK

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 1.503
  • Karma: 43
  • :)
    • Ver Perfil
    • Sígueme en Twitter!
Contacto.
« en: 05 de Noviembre de 2006, 11:48:26 am »
Hola, he creado un pequeño sistema de contacto, pero es muy pequeño, tu mail, asunto y mensaje... xD

Me gustaría poner más opciones, como por ejemplo (no pondre esto, pero bueno)

edad
poblacion

y bueno, ese tipo de cosas, pero que al rellenarlas, saliera en el mensaje, se me entiende?

Me explico:

Cuando rellenes los campos y se envíe el correo, que los campos salgan en el correo, por ejemplo:

edad: 14
poblacion: ninguna xD
 
pero en el mensaje...


Pfff, hasta yo me lio... aqui os dejo el codigo PHP:

<?php
$message 
stripslashes($message); 
$subject stripslashes($subject); 
$email stripslashes($email); 
mail("aitor9@gmail.com",  $subject$message"From: $email");
?>


Y la URL para verlo...:

http://mork.gratishost.com/CONTACTO/

Gracias, saludos!.

« Última modificación: 05 de Noviembre de 2006, 11:51:40 am por mOrK »

Comunidad PHPeros

Contacto.
« en: 05 de Noviembre de 2006, 11:48:26 am »

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Contacto.
« Respuesta #1 en: 05 de Noviembre de 2006, 12:16:52 pm »
Bueno antes de nada te quiero decir que tu codigo es bastante malo porque si yo accedo a esta url:
http://mork.gratishost.com/CONTACTO/?message=textodemensaje&subject=asuntodemensaje&email=contacto@phperos.net

Tu codigo enviará todo el rato emails... y eso no lo keremos...

La solucion es simplemente detectar si el boton del formulario ha sido pulsado y cambiar dos o tres cosas:
<?php
if (isset($_POST[&#39;Submit&#39;])) { //Submit es como se llama tu boton de envio
$message stripslashes($_POST[&#39;message&#39;]); 
$subject stripslashes($_POST[&#39;$subject&#39;]); 
$email stripslashes($_POST[&#39;$email&#39;]); 
mail("aitor9@gmail.com",  $subject$message"From: $email");
echo 
"Se ha enviado un email de contacto";
} else { 
?>
AQUI EL FORMULARIO
<? ?>


Ahora que esta mas seguro vamos a aplicarle lo que pedias. Antes de nada debes añadir los campos que desees al formulario html.

Ahora solamente tienes que modificar la variable $message para que no solo se añada el mensaje sino que tambien los campos añadidos.

Ejemplo:
Añado el siguiente campo al formulario: <input type="text" name="edad">
Y modificamos $message:
$message "Edad: ".stripslashes($_POST[&#39;edad&#39;])."\n";
$message .= stripslashes($_POST[&#39;message&#39;]);

Como solo queriamos modificar el mensaje lo demas queda exactamente igual ;)

Las variables SuperGlobales ($_POST, $_GET, ...) es mejor usarlas ya que nos evitamos problemas como el comentado al principio... http://mork.gratishost.com/CONTACTO/?message=textodemensaje&subject=asuntodemensaje&email=contacto@phperos.net
Por favor, leete las Normas


Desconectado mOrK

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 1.503
  • Karma: 43
  • :)
    • Ver Perfil
    • Sígueme en Twitter!
Re: Contacto.
« Respuesta #2 en: 05 de Noviembre de 2006, 13:32:31 pm »
mmm... Gracias, pero lo he probado y no me va, no me envia ni el mensaje ...:S seguramente, tenga algo mal, bueno, FIJO xD

<?php
if (isset($_POST[&#39;enviar&#39;])) { //Submit es como se llama tu boton de envio
$message .= stripslashes($_POST[&#39;message&#39;]);
$message "Edad: ".stripslashes($_POST[&#39;edad&#39;])."\n";
$subject stripslashes($_POST[&#39;$subject&#39;]);
$email stripslashes($_POST[&#39;$email&#39;]);
mail("aitor9@gmail.com",  $subject$message"From: $email");
echo 
"Se ha enviado un email de contacto";
} else { 
?>
<table width="50%" border="0">
  <tr>
    <td>E-mail</td>
    <td><form name="form1" method="post" action="">
      <input type="text" name="email">
    </form></td>
  </tr>
  <tr>
    <td>Edad</td>
    <td><form name="edad" method="post" action="">
    <input type="text" name="edad">
    </form>
    </td>
  </tr>
  <tr>
    <td>Asunto</td>
    <td><input type="text" name="subject"></td>
  </tr>
  <tr>
    <td>Mensaje</td>
    <td><textarea name="message"></textarea></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><form name="form2" method="post" action="">
      <input type="submit" name="Submit" value="Enviar">
    </form></td>
  </tr>
</table>

<? ?>


El codigo..:S

Saludos.

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Contacto.
« Respuesta #3 en: 05 de Noviembre de 2006, 16:42:53 pm »
<?php
if (isset($_POST[&#39;enviar&#39;])) { //Submit es como se llama tu boton de envio
$mensaje "Edad: ".stripslashes($_POST[&#39;edad&#39;])."\n";
$message $mensaje.stripslashes($_POST[&#39;message&#39;]);
$subject stripslashes($_POST[&#39;$subject&#39;]);
$email stripslashes($_POST[&#39;$email&#39;]);
mail("aitor9@gmail.com",  $subject$message"From: $email");
echo 
"Se ha enviado un email de contacto";
} else { 
?>
EL FORMULARIO
<? ?>

He cambiado 2 cosillas si no entiendes dimelo y te lo explico, espero que así te funcione correctamente.
Por favor, leete las Normas


Desconectado mOrK

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 1.503
  • Karma: 43
  • :)
    • Ver Perfil
    • Sígueme en Twitter!
Re: Contacto.
« Respuesta #4 en: 05 de Noviembre de 2006, 17:29:07 pm »
Nada... :S alomejor esta mal lo que es el formulario, no?:S:S

En cambio, si lo hago aparte en dos paginas, una en HTML y la de PHP, si que va, pero con diferente codigo:

<?php
$mensaje 
"Edad: ".stripslashes($_POST[&#39;edad&#39;])."\n";
$message $mensaje.stripslashes($_POST[&#39;message&#39;]);
$subject stripslashes($subject);
$email stripslashes($email);
mail("aitor9@gmail.com",  $subject$message"From: $email");
?>


Para tener mas de 1 campo en el mensaje como seria? por ejemplo:

Edad:
y Poblacion:

gracias.... saludos!
« Última modificación: 05 de Noviembre de 2006, 17:39:22 pm por mOrK »

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Contacto.
« Respuesta #5 en: 05 de Noviembre de 2006, 18:48:56 pm »
<?php
if (isset($_POST[&#39;enviar&#39;])) { //Submit es como se llama tu boton de envio
$mensaje "Edad: ".stripslashes($_POST[&#39;edad&#39;])."\n";
$message $mensaje.stripslashes($_POST[&#39;message&#39;]);
$subject stripslashes($_POST[&#39;$subject&#39;]);
$email stripslashes($_POST[&#39;$email&#39;]);
mail("aitor9@gmail.com"$subject$message"From: $email");
echo 
"Se ha enviado un email de contacto";
} else { 
?>
EL FORMULARIO
<? ?>

He cambiado 2 cosillas si no entiendes dimelo y te lo explico, espero que así te funcione correctamente.

Si te fijas me he equivocado al ponerlo... el codigo correcto es así:
Citar
<?php
if (isset($_POST[&#39;Submit&#39;])) { //Submit es como se llama tu boton de envio
$mensaje "Edad: ".stripslashes($_POST[&#39;edad&#39;])."\n";
$message $mensaje.stripslashes($_POST[&#39;message&#39;]);
$subject stripslashes($_POST[&#39;$subject&#39;]);
$email stripslashes($_POST[&#39;$email&#39;]);
mail("aitor9@gmail.com",  $subject$message"From: $email");
echo 
"Se ha enviado un email de contacto";
} else { 
?>
EL FORMULARIO
<? ?>

Habias cambiado lo de Submit... ahora debería funcionarte.
Por favor, leete las Normas


Desconectado mOrK

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 1.503
  • Karma: 43
  • :)
    • Ver Perfil
    • Sígueme en Twitter!
Re: Contacto.
« Respuesta #6 en: 05 de Noviembre de 2006, 19:37:11 pm »
:D ya va! XD gracias naveda ^^

Ahora, lo otro que te pregunté:

Para que salga la edad y la poblacion por ejemplo? como seria?

Desconectado Drek

  • PHPer@ Fijo
  • ***
  • Mensajes: 193
  • Karma: 0
  • Sexo: Masculino
    • Ver Perfil
    • radiogoods
Re: Contacto.
« Respuesta #7 en: 13 de Noviembre de 2006, 18:13:59 pm »
no se si esta bien esto.. pero por intentarlo no pierdo nada demas no entendi bien lo que as preguntado

edad <?php echo $_POST["edad"]; ?>
Población <? php echo $_POST["Población"]; ?>


Y quedaria
Edad, 15 por ejemplo
Población, barcelona por ejemplo depende cual ponga la gente

No se si era eso pero almenos lo intente :D ESTA BIEN? O MAL? CORREGIRME AMI TAMBIEN
« Última modificación: 14 de Noviembre de 2006, 19:50:33 pm por Drek »

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Contacto.
« Respuesta #8 en: 16 de Noviembre de 2006, 17:16:18 pm »
Citar
edad <?php echo $_POST["edad"]; ?>
Población <?php echo $_POST["Población"]; ?>

No esta mal pero no le veo utilidad XD
Por favor, leete las Normas


Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
Re: Contacto.
« Respuesta #9 en: 16 de Noviembre de 2006, 17:22:33 pm »
Citar
edad <?php echo $_POST["edad"]; ?>
Población <?php echo $_POST["Población"]; ?>

No esta mal pero no le veo utilidad XD

Yo tampoco se la veo. Y mal sí está: Eso de poner tildes en las variables da muchos problemas.

Como información adicional, se podría simplificar así:


Edad
: <?=$_POST["edad"]; ?>
Población: <?=$_POST["Poblacion"]; ?>


<?= hace la función de "echo" directamente.
Raken - Moderador para PHP y HTML

Desconectado Drek

  • PHPer@ Fijo
  • ***
  • Mensajes: 193
  • Karma: 0
  • Sexo: Masculino
    • Ver Perfil
    • radiogoods
Re: Contacto.
« Respuesta #10 en: 16 de Noviembre de 2006, 21:21:28 pm »
ya.. ya e dicho que e intenado algo pero veo que nada..

Desconectado Calcu

  • PHPer@ Fijo
  • ***
  • Mensajes: 110
  • Karma: 1
    • Ver Perfil
A mi no me llegan :S
« Respuesta #11 en: 25 de Enero de 2007, 18:03:00 pm »

 El codigo que puse fue:
 <?php
if (isset($_POST['Submit'])) { //Submit es como se llama tu boton de envio
$mensaje = "Edad: ".stripslashes($_POST['edad'])."\n";
$message = $mensaje.stripslashes($_POST['message']);
$subject = stripslashes($_POST['$subject']);
$email = stripslashes($_POST['$email']);
mail("aqui pongo mi mail",  $subject, $message, "From: $email");
echo "Se ha enviado un email de contacto";
} else { ?>
EL FORMULARIO
<? } ?>
   
    <td>E-mail</td>
    <td><form name="form1" method="post" action="">
      <input type="text" name="email">
    </form></td>
  </tr>
  <tr>
    <td>Edad</td>
    <td><form name="edad" method="post" action="">
    <input type="text" name="edad">
    </form>
    </td>
  </tr>
  <tr>
    <td>Asunto</td>
    <td><input type="text" name="subject"></td>
  </tr>
  <tr>
    <td>Mensaje</td>
    <td><textarea name="message"></textarea></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><form name="form2" method="post" action="">
      <input type="submit" name="Submit" value="Enviar">
    </form></td>
  </tr>
</table>

 No me llegan los formularios :S
 ¿Hay algun error?
 
 Gracias.
¿Crees que te he ayudado? ¿Quieres recompensar mi ayuda?
Pues no necesito nada, sólo un click. En la izquierda de este mensaje tienes
una flecha verde, si pulsas hay me pondrás un KARMA =) ¡Seré feliz!

Desconectado JuAnCHO

  • PHPero Avanzado
  • ****
  • Mensajes: 327
  • Karma: 1
  • Sexo: Masculino
  • 33 Y Truco xD
    • Ver Perfil
Re: Contacto.
« Respuesta #12 en: 25 de Enero de 2007, 18:14:13 pm »
Claro que hay error ! xD
Syponiendo que el codigo esté bien, deberia de ir.
Antes no estabas colocando el formulario donde era
Solución :
<?php
if (isset($_POST[&#39;Submit&#39;])) { //Submit es como se llama tu boton de envio
$mensaje "Edad: ".stripslashes($_POST[&#39;edad&#39;])."\n";
$message $mensaje.stripslashes($_POST[&#39;message&#39;]);
$subject stripslashes($_POST[&#39;$subject&#39;]);
$email stripslashes($_POST[&#39;$email&#39;]);
mail("aqui pongo mi mail",  $subject$message"From: $email");
echo 
"Se ha enviado un email de contacto";

} else { 
?>

<td>E-mail</td>
    <td><form name="form1" method="post" action="">
      <input type="text" name="email">
    </form></td>
  </tr>
  <tr>
    <td>Edad</td>
    <td><form name="edad" method="post" action="">
    <input type="text" name="edad">
    </form>
    </td>
  </tr>
  <tr>
    <td>Asunto</td>
    <td><input type="text" name="subject"></td>
  </tr>
  <tr>
    <td>Mensaje</td>
    <td><textarea name="message"></textarea></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><form name="form2" method="post" action="">
      <input type="submit" name="Submit" value="Enviar">
    </form></td>
  </tr>
</table>
<? ?>

Saludos.

-----------------------------------------------------------------
" A un gran corazón ninguna ingratitud lo cierra,
   ninguna indeferencia lo cansa ".

Desconectado Calcu

  • PHPer@ Fijo
  • ***
  • Mensajes: 110
  • Karma: 1
    • Ver Perfil
Formulario erroneo? :S
« Respuesta #13 en: 25 de Enero de 2007, 21:32:02 pm »
 Este es el codigo de un formulario que tengo:
 
<?php
if (isset($_POST['enviar'])) { //Submit es como se llama tu boton de envio
$mensaje = "Edad: ".stripslashes($_POST['edad'])."\n";
$message = $mensaje.stripslashes($_POST['message']);
$subject = stripslashes($_POST['$subject']);
$email = stripslashes($_POST['$email']);
mail("flanchesco(arroba)hotmail(dot)com",  $subject, $message, "From: $email");
echo "Se ha enviado un email de contacto";
} else { ?>
<table width="50%" border="0">
  <tr>
    <td>E-mail</td>
    <td><form name="form1" method="post" action="">
      <input type="text" name="email">
    </form></td>
  </tr>
  <tr>
    <td>Edad</td>
    <td><form name="edad" method="post" action="">
    <input type="text" name="edad">
    </form>
    </td>
  </tr>
  <tr>
    <td>Asunto</td>
    <td><input type="text" name="subject"></td>
  </tr>
  <tr>
    <td>Mensaje</td>
    <td><textarea name="message"></textarea></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><form name="form2" method="post" action="">
      <input type="submit" name="enviar" value="Enviar">
    </form></td>
  </tr>
</table>
<? } ?>
 
 El error: NO ME LLEGA EL MAIL :(
« Última modificación: 11 de Febrero de 2007, 13:57:27 pm por naveda »
¿Crees que te he ayudado? ¿Quieres recompensar mi ayuda?
Pues no necesito nada, sólo un click. En la izquierda de este mensaje tienes
una flecha verde, si pulsas hay me pondrás un KARMA =) ¡Seré feliz!