Foros del Web » Programando para Internet » PHP »

Validar campos en FORM y enviar por MAIL

Estas en el tema de Validar campos en FORM y enviar por MAIL en el foro de PHP en Foros del Web. HOla Amigos. Espero me puedan ayudar. Tengo este form de registro en el que tengo los primeros cuatro campos como abligatorios. Parece que tengo un ...
  #1 (permalink)  
Antiguo 07/08/2010, 21:34
 
Fecha de Ingreso: abril-2009
Mensajes: 44
Antigüedad: 14 años, 11 meses
Puntos: 3
Validar campos en FORM y enviar por MAIL

HOla Amigos. Espero me puedan ayudar. Tengo este form de registro en el que tengo los primeros cuatro campos como abligatorios. Parece que tengo un error por que aunque ponga esos campos no me termina la ejecucuin del Form. Por otra parte quisiera que cada registro, despues de Guardar los datos en la BD los envie por mail.

Pongo codigo Muchas gracias


Código PHP:
 <?php 

if(isset($_POST ['submit']))
{
    
// Chequear campos obligatorios
    
$required_fields = array('nombre''apellido''email''profesion');
    foreach (
$required_fields as $required_field) {    
        if (!isset($
$required_field) || $$required_field == '') {    
            exit(
'Por favor, completa todos los campos obligatorios.');
        }}
         if (!
preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/"$variable_con_el_mail)) {
          exit(
'El formato del email ingresado no es correcto.');
    }
                
$nombre $_POST["nombre"];
$apellido $_POST["apellido"];
$email $_POST["email"];
$profesion $_POST["profesion"];
$ciudad $_POST["ciudad"];
$institucion $_POST["institucion"];
$matricula $_POST["matricula"];
$comentario $_POST["comentario"];

$connection=mysql_connect("localhost","root","")or die("Error conectando a la base de datos");
 
mysql_select_db("db_sic",$connection)or die ("Error seleccionando la base de datos");

// Buscar registros
 
$query "INSERT INTO registros (nombre, apellido, email, profesion, ciudad, institucion, matricula, comentario)"."VALUES ('$nombre', '$apellido', '$email', '$profesion', '$ciudad', '$institucion', '$matricula', '$comentario')";

        
mysql_query($query$connection) or die('Error, query failed');
        
         echo 
"<b>Upload exitoso!. Datos:</b><br>";
        
}
    
?>
  #2 (permalink)  
Antiguo 07/08/2010, 23:06
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 8 meses
Puntos: 7
Respuesta: Validar campos en FORM y enviar por MAIL

Hola

seria bueno que muestres el codigo de tu formulario, por si el error se encuentra ahi, y lo del mail, despues de la sentencia de inserción podrías poner la función mail y ahi poner los datos $_POST
  #3 (permalink)  
Antiguo 08/08/2010, 00:31
 
Fecha de Ingreso: marzo-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: Validar campos en FORM y enviar por MAIL

¿Te muestra algo del error o simplemente te queda la página en blanco?

Podrías dejar un espacio en blanco antes de "VALUES", que quedé asi :

"VALUES" ---> " VALUES"

puede ser algún error de SQL, digo yo...
  #4 (permalink)  
Antiguo 08/08/2010, 10:18
 
Fecha de Ingreso: abril-2009
Mensajes: 44
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Validar campos en FORM y enviar por MAIL

Perdon, me doy cuenta que no he sido muy claro.
El Codigo Funciona y si me guarda los datos en la BD. el error que tengo es que ponga o no los datos obligatorios me sigue mandando el mensaje de :
'Por favor, completa todos los campos obligatorios.'
y el codigo ahi se queda en la ejecucion.
Por otra parte si saco esta pieza de codigo con la que pretendo hacer la validacion y comprovacion de datos obligatorios todo funciona perfecto y se guarda la info en la BD, asi que no creo que el problema este en el Form, pero lo pongo igual de todas formas.

Código HTML:
<table style="font-family:Tahoma, Geneva, sans-serif; background-color:#CCC" width="400" border='0' cellpadding='0' cellspacing='0' align="left" dir="ltr">
    <form action="registro_guarda.php" method="post" enctype="multipart/form-data" name="uploadform">
      <tr style="background-color:#999; color:#FFF">
                  <td width="10" style="height: 30px" class="LoginBgDark"></td>
                  <td colspan="2" width="300" class="LoginHeader" height="20" align="left"><strong>REGISTRO </strong></td>
                  <td width="200">&nbsp;</td>
                  <td width="10" style="height: 30px"></td>
      </tr>
       <tr class="LoginBgLight">
                   <td width="10" style="height: 55px"></td>
                   <td colspan="2" style="height: 55px" width="300" class="TuringHelp">Los campos con (*) son obligatorios.<br /></td>
                   <td width="200"></td>
                   <td width="10" style="height: 55px"></td>
       </tr>
       <tr class="LoginBgLight">
                   <td width="10"></td>
                   <td width="300" class="GrayWriting"><span id='dvMandatoryName' class="RegisterForm"></span>Nombre:</td>
                   <td width="300"><input  type="text" name="nombre" value=""  maxlength="50"/></td>
                   <td width="200">*</td>
                   <td width="10"></td>
       </tr>
        <tr class="LoginBgLight">
                   <td></td>
                   <td class="GrayWriting">&nbsp;</td>
                   <td>&nbsp;</td>
                   <td></td>
                   <td></td>
          </tr>
          <tr class="LoginBgLight">
                   <td width="10"></td>
                   <td width="300" class="GrayWriting">Apelllido:</td>
                   <td width="300"><input  type="text" name="apellido" value=""  maxlength="50"/></td>
                   <td width="200">*</td>
                   <td width="10"></td>
         </tr>
         <tr class="LoginBgLight">
                   <td></td>
                   <td class="GrayWriting">&nbsp;</td>
                    <td>&nbsp;</td>
                   <td></td>
                   <td></td>
         </tr>
          <tr class="LoginBgLight">
                    <td width="10"></td>
                    <td width="300" >Email:</td>
                    <td width="300"><input  type="text" name="email" value=""  maxlength="50"/></td>
                    <td width="200">*</td>
                    <td width="10"></td>
          </tr>
          <tr class="LoginBgLight">
                    <td></td>
                    <td class="GrayWriting">&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td></td>
          </tr>
         <tr class="LoginBgLight">
                   <td width="10"></td>
                    <td width="300" >Profesión:</td>
                   <td width="300"><input  type="text" name="profesion" value=""  maxlength="50"/></td>
                   <td width="200">*</td>
                    <td width="10"></td>
         </tr>
          <tr class="LoginBgLight">
                   <td></td>
                   <td class="GrayWriting">&nbsp;</td>
                   <td>&nbsp;</td>
                   <td></td>
                   <td></td>
        </tr>
          <tr class="LoginBgLight">
                   <td width="10"></td>
                   <td width="300" class="GrayWriting">Ciudad:</td>
                   <td width="300"><input  type="text" name="ciudad" value=""  maxlength="25"/></td>
                   <td width="200"></td>
                   <td width="10"></td>
         </tr>
          <tr class="LoginBgLight">
                   <td></td>
                   <td class="GrayWriting">&nbsp;</td>
                   <td>&nbsp;</td>
                   <td></td>
                   <td></td>
         </tr>
          <tr class="LoginBgLight">
                   <td width="10"></td>
                   <td width="300" class="GrayWriting">Institucion:</td>
                  <td width="300"><input type="text" name="institucion" value=""  maxlength="25"/></td>
                  <td width="200"></td>
                  <td width="10"></td>
          </tr>
         <tr class="LoginBgLight">
                   <td></td>
                   <td class="GrayWriting">&nbsp;</td>
                   <td>&nbsp;</td>
                   <td></td>
                   <td></td>
        </tr>
         <tr class="LoginBgLight">
                   <td width="10"></td>
                   <td width="300" class="GrayWriting">Matricula:</td>
                   <td width="300"><input  type="text" name="matricula" value=""  maxlength="25"/></td>
                   <td width="200">&nbsp;</td>
                   <td width="10"></td>
          </tr>
         <tr class="LoginBgLight">
                   <td colspan="5" style="height: 10px"></td>
          </tr>
          <tr class="LoginBgLight">
                    <td width="10" style="height: 30px"></td>
                    <td width="300" style="height: 30px" colspan="2" class="TuringHelp">&nbsp;</td>
                    <td width="200"></td>
                    <td width="10" style="height: 30px"></td>
           </tr>
           <tr class="LoginBgLight">
                    <td width="10">&nbsp;</td>
                    <td width="300" class="GrayWriting">Comentario:</td>
                    <td colspan="2" class="GrayWriting"><textarea name="comentario" cols=32 rows=6></textarea> </td>
                    <td width="10"></td>
           </tr>
           <tr class="LoginBgLight">
                    <td width="10">&nbsp;</td>
                    <td colspan="2" style="height: 20px; width: 300px;"></td>
                    <td width="10">&nbsp;</td>
           </tr>
           <tr class="LoginBgLight">
                    <td width="10"></td>
                    <td width="300" class="GrayWriting"></td>
                    <td width="300"><input name="submit" type="submit" id="submit" value="Registrar"></form></td>
                    <td width="200"></td>
                    <td width="10"></td>
          </tr>
          <tr class="LoginBgLight">
                    <td colspan="5" style="height: 10px"></td>
          </tr>
                                
</table> 
  #5 (permalink)  
Antiguo 08/08/2010, 11:33
 
Fecha de Ingreso: marzo-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: Validar campos en FORM y enviar por MAIL

Mira, encuentro que de esta forma podrìa funcionar. Revisa este código y comparalo con el tuyo..

Cita:
<?php

if(isset($_POST ['submit']))
{
$nombre = $_POST["nombre"];
$apellido = $_POST["apellido"];
$email = $_POST["email"];
$profesion = $_POST["profesion"];
$ciudad = $_POST["ciudad"];
$institucion = $_POST["institucion"];
$matricula = $_POST["matricula"];
$comentario = $_POST["comentario"];

// Chequear campos obligatorios
$camposOk = true;
$required_fields = array($nombre, $apellido, $email, $profesion);
foreach ($required_fields as $required_field) {
if ((!isset($required_field)) || (trim($required_field == ''))) {
echo 'Por favor, completa todos los campos obligatorios';
$camposOk = false;
}
if (!preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/", $variable_con_el_mail)) {
echo 'El formato del email ingresado no es correcto';
$camposOk = false;
}
}

if ($camposOk == true)
{
$connection=mysql_connect("localhost","root","")or die("Error conectando a la base de datos");
mysql_select_db("db_sic",$connection)or die ("Error seleccionando la base de datos");

// Buscar registros
$query = "INSERT INTO registros (nombre, apellido, email, profesion, ciudad, institucion, matricula, comentario)"."VALUES ('$nombre', '$apellido', '$email', '$profesion', '$ciudad', '$institucion', '$matricula', '$comentario')";

mysql_query($query, $connection) or die('Error, query failed');

echo "<b>Upload exitoso!. Datos:</b><br>";
}


}
?>
  #6 (permalink)  
Antiguo 08/08/2010, 13:46
 
Fecha de Ingreso: abril-2009
Mensajes: 44
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Validar campos en FORM y enviar por MAIL

Muchas Gracias Amigo.

Me seguia dando error en la parte que valida el Email pero ya lo corregi solo habia que corregir el nombre de la variable del Mail en la parte que lo valida.

Código PHP:
$variable_con_el_mail 
por
Código PHP:
$email 
Muchas gracias por tu aporte

Etiquetas: campos, enviar, mail, formulario
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 02:51.