Foros del Web » Programando para Internet » PHP »

Ayuda con un formulario PHP

Estas en el tema de Ayuda con un formulario PHP en el foro de PHP en Foros del Web. Hola, necesitaría por favor la ayuda de alguien con un formulario de contacto. En principio el formulario funciona perfecto. Pero necesito un par de funciones ...
  #1 (permalink)  
Antiguo 17/07/2008, 14:55
andresgalli
Invitado
 
Mensajes: n/a
Puntos:
Ayuda con un formulario PHP


Hola, necesitaría por favor la ayuda de alguien con un formulario de contacto.

En principio el formulario funciona perfecto. Pero necesito un par de funciones que no sé como se hacen (En realidad no se casi nada de codigo PHP, tan solo me las rebusco bastante bien para modificarlos)

Tengo el codigo HTML en donde esta el formulario:


<html>
<head>
<title>Prueba Formulario</title>
</head>
<body scroll=no bgcolor=000066 text=FFFFFF>
<font face="Verdana">


<b><font size=3>Contacto</font></b><br>
<hr align=left width=70% noshade size="1" color="#FF0000">
<br><br><br>

<form method="post" action="contacto.php">

<table border=0 cellspacing=0 cellpadding=5 width=100%><tr>

<td width=30% align=right><font size="2"><b>* Nombre y Apellido &nbsp;</b></font>&nbsp;</td>
<td width=70% align=left><input name="nombreapellido" type="text" size=30 style="font-family: Verdana, Arial; font-size: 8 pt; color: #FFFFFF; font-weight: bold; border: 1 solid #FF0000; background-color: #000066"></td>

</tr><tr>

<td width=30% align=right><font size="2"><b>Empresa&nbsp;</b></font>&nbsp;</td>
<td width=70% align=left><input name="empresa" type="text" size=30 style="font-family: Verdana, Arial; font-size: 8 pt; color: #FFFFFF; font-weight: bold; border: 1 solid #FF0000; background-color: #000066"></td>

</tr><tr>

<td width=30% align=right><font size="2"><b>* Teléfonos&nbsp;</b></font>&nbsp;</td>
<td width=70% align=left><input name="telefonos" type="text" size=30 style="font-family: Verdana, Arial; font-size: 8 pt; color: #FFFFFF; font-weight: bold; border: 1 solid #FF0000; background-color: #000066"></td>

</tr><tr>

<td width=30% align=right><font size="2"><b>* E-mail&nbsp;</b></font>&nbsp;</td>
<td width=70% align=left><input name="email" type="text" size=30 style="font-family: Verdana, Arial; font-size: 8 pt; color: #FFFFFF; font-weight: bold; border: 1 solid #FF0000; background-color: #000066"></td>

</tr><tr>

<td width=30% align=right><font size="2"><b>Domicilio&nbsp;</b></font>&nbsp;</td>
<td width=70% align=left><input name="domicilio" type="text" size=30 style="font-family: Verdana, Arial; font-size: 8 pt; color: #FFFFFF; font-weight: bold; border: 1 solid #FF0000; background-color: #000066">
</td>

</tr><tr>

<td width=30% align=right valign=top><font size="2"><b>* Consulta&nbsp;</b></font>&nbsp;</td>
<td width=70% align=left valign=top><textarea name="consulta" rows="5" cols="40" style="font-family: Verdana, Arial; font-size: 8 pt; color: #FFFFFF; font-weight: bold; border: 1 solid #FF0000; background-color: #000066"></textarea></td>

</tr><tr>

<td width=30% align=right></td>
<td width=70% align=left>
<input type="submit" name="enviar" value="Enviar" style="font-family: Verdana, Arial; font-size: 8 pt; font-weight: bold; color: #FFFFFF; background-color: #000066; border-color: #FF0000">
<input type="reset" name="borrar" value="Borrar" style="font-family: Verdana, Arial; font-size: 8 pt; font-weight: bold; color: #FFFFFF; background-color: #000066; border-color: #FF0000">
</td>

</tr></table>

</form>

</font>
</body>
</html>


Y el codigo PHP:


<?php
//proceso del formulario
// si existe "enviar"...
if (isset ($_POST['enviar'])) {

//recogemos las variables
$nombreapellido=$_POST['nombreapellido'];
$empresa=$_POST['empresa'];
$telefonos=$_POST['telefonos'];
$email=$_POST['email'];
$domicilio=$_POST['domicilio'];
$consulta=$_POST['consulta'];

//comprobamos si todos los campos fueron completados
if ($nombreapellido!='' && $telefonos!='' && $email!='' && $consulta!='') {
// si es asi armamos el html
$contenido = '<html><body>';
$contenido .= '<font face=verdana size=3 color=000080><b>Formulario de Contacto</b></font><br><br>';
$contenido .= '<font face=verdana size=1><b>Enviado el '. date("d M Y").'</b></font><br>';
$contenido .= '<hr noshade size=1 color=ff0000 width=100% align=left><br>';

$contenido .='
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr>

<td width=20% height=20><font face=verdana size=2><b>Nombre y Apellido:</b></font></td>
<td width=80% height=20><font face=verdana size=2>'.$nombreapellido.'</font></td>

</tr><tr>

<td height=1 bgcolor=CCCCCC></td>
<td height=1 bgcolor=CCCCCC></td>

</tr><tr>

<td width=20% height=20><font face=verdana size=2><b>Empresa:</b></font></td>
<td width=80% height=20><font face=verdana size=2>'.$empresa.'</font></td>

</tr><tr>

<td height=1 bgcolor=CCCCCC></td>
<td height=1 bgcolor=CCCCCC></td>

</tr><tr>

<td width=20% height=20><font face=verdana size=2><b>Telefonos:</b></font></td>
<td width=80% height=20><font face=verdana size=2>'.$telefonos.'</font></td>

</tr><tr>

<td height=1 bgcolor=CCCCCC></td>
<td height=1 bgcolor=CCCCCC></td>

</tr><tr>

<td width=20% height=20><font face=verdana size=2><b>E-mail:</b></font></td>
<td width=80% height=20><font face=verdana size=2>'.$email.'</font></td>

</tr><tr>

<td height=1 bgcolor=CCCCCC></td>
<td height=1 bgcolor=CCCCCC></td>

</tr><tr>

<td width=20% height=20><font face=verdana size=2><b>Domicilio:</b></font></td>
<td width=80% height=20><font face=verdana size=2>'.$domicilio.'</font></td>

</tr><tr>

<td height=1 bgcolor=CCCCCC></td>
<td height=1 bgcolor=CCCCCC></td>

</tr><tr>

<td width=20% height=20><font face=verdana size=2><b>Consulta:</b></font></td>
<td width=80% height=20><font face=verdana size=2>'.$consulta.'</font></td>

</tr><tr>

<td height=1 bgcolor=CCCCCC></td>
<td height=1 bgcolor=CCCCCC></td>

</tr></table>
';

$contenido .= '<br><hr noshade size=1 color=ff0000 width=100% align=left>';
$contenido .= '</body></html>';

// si todos los campos fueron completados enviamos el mail
mail ("[email protected]", "Formulario de Contacto", $contenido, "From: $email\nContent-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit");
}
echo "
<html>
<body bgcolor=000066 text=FFFFFF>
<br><br><br><br>
<center><font face=verdana size=2><b>
El formulario se ha enviado correctamente.
</b></font></center>
</body>
</html>
";
}
?>


Ahora me faltarían un par de cositas que, vuelvo a reiterar, sinceramente no sé como se hacen.
Cómo hago para que la persona quien llena en formulario al mismo tiempo reciba el mismo formulario que me llega a mi, pero además con un texto adicional que diga: "En breve le responderemos su consulta"

Y otro tema que me queda por resolver es, cómo hago para que los campos que son obligatorios, si uno no es completado me tire una página de error y que vuelva al formulario para llenar los campos faltantes.

Desde ya agredezco una respuesta.

Muchas gracias.
  #2 (permalink)  
Antiguo 17/07/2008, 15:11
 
Fecha de Ingreso: agosto-2006
Mensajes: 177
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Ayuda con un formulario PHP

perimero que nada te digo que si vas a trabajar con formularios te leas bien algun articulo sobre filtrado y validacion de informacion ingresada por el ususario, ya que debes tener cuidado con estos elementos.

Luego si quieres que aparezca un mensaje al completar validamente el form puedes poner un "if" para ver si todos esta bien y responder con el mensaje "En breve le responderemos su consulta" y un "else" para desplegar el formulario en caso de haber un error.

el mismo principio te servirira para agregar un mensaje de error en caso de haber algun dato invalido.

hay otras maneras de hacerlo pero esta es una de las mas basica.

ahora si estas pensando en un formulario que va a estar disponible publicamente, vas a tener que tomarte unas guias y aprender algo mas de PHP para implementar mejor seguridad con los forms y otros metodos para procesar datos.

saludos.
  #3 (permalink)  
Antiguo 17/07/2008, 15:33
andresgalli
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con un formulario PHP

rumo,

Mira gracias por la respuesta, pero como no tengo mucha experiencia en PHP tu info no la sé procesar...
Si me dieras un ejemplo te agradecería...
Con ejemplos me manejo mucho mejor...

Revisé bastante este foro y otros foros para ver si había algo, pero hay codigos demasiado largos y complejos para mi gusto, y yo quiero algo sencillo, sé que hay.

En cuanto a que si este formulario va a estar disponible publicamente, es que si, va a ser publico. ¿Es muy necesario tener una seguridad? Perdoná mi ignorancia, pero la verdad es que sé poco y nada de PHP. Apenas esta semana empecé en esto ya que mi cliente necesita unos mejores formularios y empecé con esto de PHP ya que me parecieron fáciles de modificar.
  #4 (permalink)  
Antiguo 17/07/2008, 15:52
 
Fecha de Ingreso: agosto-2006
Mensajes: 177
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Ayuda con un formulario PHP

Código:
<?php
if(isset($_POST['submit'])){
    $error = false;
    // Si hay un error en el formulario pasamos false a la variable $error
    $error = true;

    if($error){
        echo 'Se ha producido un error en tu formulario';
    }else{
            // Procesar el formulario
    }
}else{
    // Mostramos el formulario
?>
    <html>
    <head></head>
    <body>
     ........
    </body>
    </html>
<?php    
}
?>
es importante la seguridad? si demasiado cuando se trabaja con formularios, quizas en un formualrio que solo va a amostrar los datospor pantalla, el daño puede ser "irrelevante" pero si estas guardando los datos o haciendo algom as con ellos, un codigo malintencionado ingresado en alguno de tus campos de formulario puede ser catastrofico.

por lo tanto te recomiendo que leas acerca de seguridad en formularios y vas a comprender mejor de que estoy hablando.
  #5 (permalink)  
Antiguo 17/07/2008, 16:02
andresgalli
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con un formulario PHP

Rumo,

Mucha gracias por la info y por el ejemplo, esta noche voy a ver si me funciona bien.
Cualquier cosa te vuelvo a consultar.
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 18:14.