Foros del Web » Programando para Internet » PHP »

Como Hacer funcionar formulario de contacto php?

Estas en el tema de Como Hacer funcionar formulario de contacto php? en el foro de PHP en Foros del Web. Estimados tengo el siguiente problema, agradecería mucho de su ayuda. Necesito habilitar un formulario de contacto común y corriente, super basico, que llegue a mi ...
  #1 (permalink)  
Antiguo 18/12/2008, 13:49
 
Fecha de Ingreso: diciembre-2008
Mensajes: 3
Antigüedad: 15 años, 11 meses
Puntos: 0
Como Hacer funcionar formulario de contacto php?

Estimados tengo el siguiente problema, agradecería mucho de su ayuda.

Necesito habilitar un formulario de contacto común y corriente, super basico, que llegue a mi mail. He visto muchos tutoriales, todos son muy similares. Pero a la hora de implementarlos en mi servidor (que es arrendado, pero si tiene habilitada la función del php para envio de mails) no me funciona. Me gustaría que me digan que estoy haciendo mal o que me falta agregar al proceso. Se los cuento

Tengo el siguiente código para el formulario.php:
Código:
<form method="POST" action="enviar.php">
<table width="300" border="0" cellpadding="0" cellspacing="4">
    <tr>
      <td width="109">Nombre:</td>
      <td width="179" colspan="2"><input name="Nombre" title="Ingrese su Nombre" type="text"  id="Nombre"></td>
    </tr>
    <tr>
      <td>Apellido:</td>
      <td colspan="2"><input name="Apellido"  title="Ingrese Apellido" type="text" id="Apellido"></td>
    </tr>
    <tr>
      <td valign="top">E-mail: </td>
      <td colspan="2"><input name="email" title="Ingrese su E-mail" type="text" id="email2"></td>
    </tr>
    <tr>
      <td valign="top">Telefono:</td>
      <td colspan="2"><input name="fono" title="Ingrese su Telefono de Contacto" type="text" id="fono"></td>
    </tr>
    <tr>
      <td valign="top">Mensaje: </td>
      <td colspan="2" valign="top"><textarea rows="5" title="Ingrese su consulta " class="formu" name="mensaje" cols="25"></textarea></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" value="Enviar" name="enviar" title="Envie su consulta" class="button"></td>
      <td><input type="reset" value="Borrar" name="borrar" title="Borre este formulario" class="button"></td>
    </tr>
  </table>
    </form>
y en la acción enviar.php tengo esto:
Código:
<?php

//E-mail en donde se recibirá el Formulario.

$recipiente = "[email protected]";

//URL de tu Sitio Web.

$sw = "http://www.nickotina.cl";

//Mensaje que te llegará al Correo, con los datos ingresados.

$msg = "El Sr: $Nombre, envia el formulario con los siguientes datos:\n\n\n\n

Nombre: $Nombre
Apellido: $Apellido
Email:  $email
Fono:  $fono
Mensaje:
$mensaje\n\n";

//Comprobamos que los campos del formulario se encuentren completos.
if (empty($Nombre)){
echo "<p><b><font color=#FF0000>Error:</font> No ha
ingresado su Nombre.</b></font></p>";
}
if (empty($Apellido)){
echo "<p><b><font color=#FF0000>Error:</font> No ha
ingresado su Apellido.</b></font></p>";
}
if(empty($email)){
echo "<p><b><font color=#FF0000>Error:</font> No ha
ingresado su E-mail.</b></font></p>";
}
if(empty($fono)){
echo "<p><b><font color=#FF0000>Error:</font> No ha
ingresado su Telefono.</b></font></p>";
}

if(empty($mensaje)){
echo "<b><font color=#FF0000>Error:</font> No ha
ingresado su Mensaje.</b></font></p>";

}
else{

//Limpiamos de posibles ataques para que no ingresen codigo html .

$mensaje = ereg_replace("\r\n","<br>", $mensaje);

$Nombre = htmlentities($Nombre);
$Apellido = htmlentities($Apellido);
$email = htmlentities($email);
$fono = htmlentities($fono);
$mensaje = htmlentities($mensaje);


mail("$recipiente", "Contacto Web Tu_Nombre", "$msg", "FROM: $email");

echo"Señor/es <b>$Nombre</b>.
<br><b>Pronto Estaremos  en Contacto con Usted.</b><br><br>
<br>
<br>Atte.  tu nombre u empresa
<br>
</p>
<br>
<a href=$sw>http://www.nickotina.cl</a>.</p>";
}
?>
Lo que hago, es subirlos al servidor, llamo la url de "formulario.php" y cuando le doy enviar me sale esto



Por favor, agradecería que me orientaran en esto.. llevo más de tres semanas leyendo e intentando habilitarlo.
  #2 (permalink)  
Antiguo 18/12/2008, 13:52
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Como Hacer funcionar formulario de contacto php?

En vez de usar $Nombre usa: $_POST['Nombre'] y asi sucesivamente.

El problema es porque el servidor en donde estas trabajando tiene register_globals OFF, y tienes que recoger las variables de formulario usando el array super global $_POST.
  #3 (permalink)  
Antiguo 18/12/2008, 13:59
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Como Hacer funcionar formulario de contacto php?

Trataste con algo asi?
Código php:
Ver original
  1. if(strlen($_POST['Nombre']) <= 0){
  2.     echo "<p><b><font color=#FF0000>Error:</font> No ha ingresado su Nombre.</b></font></p>";
  3. }
  4. if (strlen($_POST['Apellido']) <= 0){
  5.     echo "<p><b><font color=#FF0000>Error:</font> No ha ingresado su Apellido.</b></font></p>";
  6. }
  7. if(strlen($_POST['email']) <= 0){
  8.     echo "<p><b><font color=#FF0000>Error:</font> No ha ingresado su E-mail.</b></font></p>";
  9. }
  10. if(strlen($_POST['fono']) <= 0){
  11.     echo "<p><b><font color=#FF0000>Error:</font> No ha ingresado su Telefono.</b></font></p>";
  12. }
  13. if(strlen($_POST['mensaje']) <= 0){
  14.     echo "<b><font color=#FF0000>Error:</font> No ha ingresado su Mensaje.</b></font></p>";
  15. }
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Última edición por Marvin; 18/12/2008 a las 14:01 Razón: No puse los $_POST[]
  #4 (permalink)  
Antiguo 18/12/2008, 15:45
 
Fecha de Ingreso: diciembre-2008
Mensajes: 3
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Como Hacer funcionar formulario de contacto php?

Estimado RonRubt hice al pie de la letra lo que dijiste...

la empresa del host me dice que para activar el register_globals ON tengo que agregar "php_flag register_globals on" dentro del archivo ".htaccess" que esta en la raiz de mi servidor.

lo descargue para intentar modificarlo y no pedo abrirlo de ninguna forma... busco en la red y hay miles de softwares y paginas on line que te ayudan a crear uno.. pero como hago solo para agregar la linea que me sugirieron? porque a la vez imagino que ese archivo debe tener otras configuraciones que no me atrevo a tocar. que hago?
  #5 (permalink)  
Antiguo 18/12/2008, 15:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como Hacer funcionar formulario de contacto php?

Con el Notepad lo puedes abrir/editar/guardar para volverlo a subir.

Saludos.
  #6 (permalink)  
Antiguo 18/12/2008, 16:52
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 4 meses
Puntos: 8
Respuesta: Como Hacer funcionar formulario de contacto php?

Hola, te dejo el mio que funciona, eso del server tambien es importante, yo lo tenia en runhosting.com pero no funcionaba porque no tenia esa funcion para mandar al mail.
ahora lo tengo en www.000webhost.com es un server muy completo, probalo !!!

Aca te dejo mi formulario, Espero que te sirva, manda mail, todo, pero me aparece todo lo que recibo en la parte del asunto, pero como lo recibo no me moleste en arreglarlo jejeje !!!

Código HTML:
<html>

<head></head>
<body>
<b>CONTACTENOS</b>


<form id="form" name="form" method="post" action="envia_contacto.php">
<p>
Empresa:<br><input name="empresa" type="text" id="empresa" size="35" /><br>
Apellido y Nombre:<br><input name="apel" type="text" id="apel" size="35" /><br>
Domicilio:<br><input name="domicilio" type="text" id="domicilio" size="35" /><br>
Localidad:<br><input name="ciudad" type="text" id="ciudad" size="35" /><br>
Provincia:<br><input name="provincia" type="text" id="provincia" size="35" /><br>
Teléfono:<br><input name="telefono" type="text" id="telefono" size="15" /><br>
Código Postal:<br><input name="cp" type="text" id="cp" size="10"/><br>
Email:<br><input name="email" type="text" id="email" size="25"/><br>
Comentario:<br><textarea ROWS="8" COLS="40" name="comentario" id="comentario" /></textarea><br>
<input type="submit" name="submit" value="Enviar Formulario" />
<input type="reset" name="submit1" value="Borrar" />
</p>
</form>
</body>
</html> 
y el otro archivo que es envia_contacto.php
Código PHP:
<?php $mail='[email protected]'
$empresa $_POST['empresa'];
$apel $_POST['apel'];
$domicilio $_POST['domicilio'];
$ciudad $_POST['ciudad'];
$provincia $_POST['provincia'];
$telefono $_POST['telefono'];
$cp $_POST['cp'];
$email $_POST['email'];
$comentario $_POST['comentario']; 
$thank "gracias.htm";
$asunto="ENVIO CONTACTO";  

$message 
"Asunto:".$asunto.
"Empresa:".$empresa.
"Apellido y Nombre:".$apel.
"Domicilio:".$domicilio.
"Ciudad:".$ciudad.
"Provincia:".$provincia.
"Telefono:".$telefono.
"Codigo_Postal:".$cp.
"E-Mail:".$email.
"Comentario:".$comentario."";  
if (
mail($mail,$message,"from: ".$apel." <".$email.">"))  Header ("Location: $thank");?>
y el gracias.php , cuando envia el formulario se abre esa pagina con un mensaje nomas, que diga Gracias por enviarnos su Comentario o lo que vos quieras poner !!!.
Código HTML:
<html> 
<b>Gracias por enviarnos su Comentario</b>
</html> 
Saludos, Ricardo !!!
__________________
Mail: [email protected]
  #7 (permalink)  
Antiguo 19/12/2008, 07:35
 
Fecha de Ingreso: diciembre-2008
Mensajes: 3
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Como Hacer funcionar formulario de contacto php?

Gracias Colote... me funcionó de inmediato el código tuyo e inclusive ni siquiera tuve que activar el tal "register_globals_ON" así que bien...

Ahora el único pero, es lo que mencionaste... todo sale en el asunto... como crees que podamos modificarlo y que lo que corresponda se vaya al cuerpo de mensaje?


Gracias por el aporte, se agradece
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:05.