Foros del Web » Programando para Internet » PHP »

Campos obligatorios

Estas en el tema de Campos obligatorios en el foro de PHP en Foros del Web. Tengo el codigo del form pero no logro hacer funcionar los campos obligatorios. Si alguien puede ayudarme agradeceré Esta es la parte del codigo en ...
  #1 (permalink)  
Antiguo 19/03/2004, 13:57
 
Fecha de Ingreso: abril-2003
Mensajes: 28
Antigüedad: 14 años, 7 meses
Puntos: 0
Campos obligatorios

Tengo el codigo del form pero no logro hacer funcionar los campos obligatorios. Si alguien puede ayudarme agradeceré
Esta es la parte del codigo en cuestion

<?php

// Definir en la siguiente variable

// el destinatario del formulario

$mailear = "[email protected]";

// Copias carbón oculta

$BCC = "[email protected]";

?>



<title>Formulario de Consulta</title>

<link href="estilo.css" rel="stylesheet" type="text/css">

<body bgcolor="#FFFFFF" leftmargin="2" topmargin="2" marginwidth="2" marginheight="2" text="#000000" link="#000000" vlink="#0000FF" alink="#000000">
<?
$mensaje = "";
if (isset($_POST["Submit"])){
if (!eregi( "^[a-z0-9]+([_\.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\.[a-z]{2,}$", $_POST["email"])) {
$mensaje .= "Email no valido,<br>";
}
if(empty($_POST["area"])){
$mensaje .= "y/o no ha escrito ninguna consulta.<br>";
}
if ($mensaje != ""){
echo "<div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>
El mensaje no se envió por lo siguiente:<br> <font size=\"3\" color=\"red\"><p align=\"left\"> $mensaje </p></font>
<a href='javascript:history.back(1)'><font size=\"3\" color=\"red\"> << Volver</font></a>
</b></font> </div>";
exit;

}
}


function MailearUsuario(){

global $Cons;

global $mailear;

global $BCC;

$dia = date("d/m/y");

//$hora = date("H:i:s");

$opciones = "From: [email protected]\n";

$opciones .= "Content-Type: text/html; charset=iso-8859-1\n";

// enviamos email con formato HTML

$opciones .= "bcc: $BCC\nReply-To: $Cons[email]\n";

$opciones .="X-Mailer: GNU/IlDante - PHP/".phpversion();

$mensajeMail =
"<html><head>"
."<title>Agencia Mines - Consulta Web</title></head>"
."<body bgcolor=\"#FFFFFF\" leftmargin=\"4\" topmargin=\"8\" marginwidth=\"2\" marginheight=\"0\" text=\"#000000\" link=\"#000000\" vlink=\"#0000FF\" alink=\"#000000\">"
."<basefont face=\"Verdana, Arial\" size=\"2\">"
."El ".$dia." un usuario efectuó la siguiente consulta a través del formulario web.<br>"
."Los datos son los siguientes:<br><br>"
."+ <b>Nombre:</b> $Cons[nombre]<br>"
."+ <b>Apellido:</b> $Cons[apellido]<br>"
."+ <b>E-Mail:</b> $Cons[email]<br>"
."+ <b>Teléfono:</b> $Cons[telefono]<br>"
."+ <b>Ciudad:</b> $Cons[ciudad]<br>"
."+ <b>País:</b> $Cons[pais]<br>"
."+ <b>Área de Consulta:</b> $Cons[area]<br>"
."<br>La consulta es la siguiente:<br><cite>\"".stripslashes(nl2br($Cons[consulta]))."\"</cite><br><br>"
."<pre>--<br>Departamento Desarrollo y Programación de Zonalitoral.com<br>ZonaLitoral.com, \"La vidriera virtual de su negocio\"</body></html>";
$m = mail($mailear,"[AgenciaMines.com.ar] Consulta desde la web",$mensajeMail,$opciones,"[email protected]");

if(!$m){

print "<!-- Todo bien, pero no pude enviar el mail a $MailAdministrador :( -->";

}

}


if($HTTP_POST_VARS['do'] == "enviar" && strlen($Cons[consulta])>0){

MailearUsuario();

print "<center><br><br><font face='verdana,arial' size='2'>Gracias por consultarnos, en poco tiempo le responderemos";

print ".<br><a href=# onClick='window.close()'>CERRAR</a></font></center>";

} else {

?>

<form action="<?=$PHP_SELF ?>" method="POST">

<table width="400" border="0" cellpadding="2" cellspacing="0" bgcolor="#003366">................................ .......................
  #2 (permalink)  
Antiguo 19/03/2004, 15:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Podrías explicar que variable no te valida .. que hace tu script cuando no valida .. etc .. El caso es aportar datos .. No todo el mundo va a poder probar tu script y bajo tus condiciones de prueba como para decirte que es lo que falla.

Sería recomendable que pusieras el código completo del formulario .. por qué ahí se ven los nombres de variables por ejemplo ...


Y un detalle .. si usas en todo el código los arrays superglobales $_POST .. etc .. usalo también en:

<form action="<?=$_SERVER['PHP_SELF'] ?>" method="POST">

Y .. eso te obliga a trabajar con PHP 4.1.0 en adelante (por si a caso).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 23/03/2004, 07:43
 
Fecha de Ingreso: abril-2003
Mensajes: 28
Antigüedad: 14 años, 7 meses
Puntos: 0
La variable $mensaje no me funciona. He puesto dos campos obligatorios en "email" y "area" pero no funcionan:
si dejo vacío el campo email por ej., no se envía (lo que está bien) pero en el mensaje de error me aparecen las dos posibilidades. No logro que sólo me tire el mensaje de error del parametro vacío. Esto de última no sería tan grave.
El otro problema es que por más que complete todos los campos, me siguen apareciendo los mensajes de error y por lo tanto no se envia el mensaje.

Este es el codigo completo

<?php

// Definir en la siguiente variable

// el destinatario del formulario

$mailear = "[email protected]";

// Copias carbón oculta

$BCC = "[email protected]";

?>



<title>Formulario de Consulta</title>

<link href="estilo.css" rel="stylesheet" type="text/css">

<body bgcolor="#FFFFFF" leftmargin="2" topmargin="2" marginwidth="2" marginheight="2" text="#000000" link="#000000" vlink="#0000FF" alink="#000000">
<?
$mensaje = "";
if (isset($_POST["enviar"])){
if (!eregi( "^[a-z0-9]+([_\.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\.[a-z]{2,}$", $_POST["email"])) {
$mensaje .= "Email no valido,<br>";
}
if(empty($_POST["area"])){
$mensaje .= "y/o no ha escrito ninguna consulta.<br>";
}
if ($mensaje != ""){
echo "<div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>
El mensaje no se envió por lo siguiente:<br> <font size=\"3\" color=\"red\"><p align=\"left\"> $mensaje </p></font>
<a href='javascript:history.back(1)'><font size=\"3\" color=\"red\"> << Volver</font></a>
</b></font> </div>";
exit;

}
}


function MailearUsuario(){

global $Cons;

global $mailear;

global $BCC;

$dia = date("d/m/y");

//$hora = date("H:i:s");

$opciones = "From: [email protected]\n";

$opciones .= "Content-Type: text/html; charset=iso-8859-1\n";

// enviamos email con formato HTML

$opciones .= "bcc: $BCC\nReply-To: $Cons[email]\n";

$opciones .="X-Mailer: GNU/IlDante - PHP/".phpversion();

$mensajeMail =
"<html><head>"
."<title>Agencia Mines - Consulta Web</title></head>"
."<body bgcolor=\"#FFFFFF\" leftmargin=\"4\" topmargin=\"8\" marginwidth=\"2\" marginheight=\"0\" text=\"#000000\" link=\"#000000\" vlink=\"#0000FF\" alink=\"#000000\">"
."<basefont face=\"Verdana, Arial\" size=\"2\">"
."El ".$dia." un usuario efectuó la siguiente consulta a través del formulario web.<br>"
."Los datos son los siguientes:<br><br>"
."+ <b>Nombre:</b> $Cons[nombre]<br>"
."+ <b>Apellido:</b> $Cons[apellido]<br>"
."+ <b>E-Mail:</b> $Cons[email]<br>"
."+ <b>Teléfono:</b> $Cons[telefono]<br>"
."+ <b>Ciudad:</b> $Cons[ciudad]<br>"
."+ <b>País:</b> $Cons[pais]<br>"
."+ <b>Área de Consulta:</b> $Cons[area]<br>"
."<br>La consulta es la siguiente:<br><cite>\"".stripslashes(nl2br($Cons[consulta]))."\"</cite><br><br>"
."<pre>--<br>Departamento Desarrollo y Programación de Zonalitoral.com<br>ZonaLitoral.com, \"La vidriera virtual de su negocio\"</body></html>";
$m = mail($mailear,"[AgenciaMines.com.ar] Consulta desde la web",$mensajeMail,$opciones,"[email protected]");

if(!$m){

print "<!-- Todo bien, pero no pude enviar el mail a $MailAdministrador :( -->";

}

}


if($HTTP_POST_VARS['do'] == "enviar" && strlen($Cons[consulta])>0){

MailearUsuario();

print "<center><br><br><font face='verdana,arial' size='2'>Gracias por consultarnos, en poco tiempo le responderemos";

print ".<br><a href=# onClick='window.close()'>CERRAR</a></font></center>";

} else {

?>

(Sigue)
  #4 (permalink)  
Antiguo 23/03/2004, 07:46
 
Fecha de Ingreso: abril-2003
Mensajes: 28
Antigüedad: 14 años, 7 meses
Puntos: 0
(Continua)

<form action="<?=$PHP_SELF ?>" method="POST">

<table width="400" border="0" cellpadding="2" cellspacing="0" bgcolor="#003366">

<tr>

<td><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Formulario

de Consulta</strong></font>

<table width="100%" border="0" cellspacing="1" cellpadding="4">

<tr bgcolor="#F8D480">

<td align="right"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Nombre</font></td>

<td><input name="Cons[nombre]" type="text" ></td>

</tr>

<tr bgcolor="#F8D480">

<td align="right"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Apellido</font></td>

<td><input type="text" name="Cons[apellido]"></td>

</tr>

<tr bgcolor="#F8D480">

<td align="right"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Email</font></td>

<td><input type="text" name="Cons[email]"></td>

</tr>

<tr bgcolor="#F8D480">

<td align="right"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Tel&eacute;fono</font></td>

<td><input type="text" name="Cons[telefono]"></td>

</tr>

<tr bgcolor="#F8D480">

<td align="right"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Ciudad</font></td>

<td><input type="text" name="Cons[ciudad]"></td>

</tr>

<tr bgcolor="#F8D480">

<td align="right"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Pa&iacute;s</font></td>

<td>

<select name="Cons[pais]">

<OPTION>Afganistán</OPTION>

<OPTION>Albania</OPTION>

<OPTION>Alemania</OPTION>

<OPTION>Andorra</OPTION>

<OPTION>Angola</OPTION>

<OPTION>Antigua y Barbuda</OPTION>

<OPTION>Arabia Saudita</OPTION>

<OPTION>Argelia</OPTION>

<OPTION selected>Argentina</OPTION>

<OPTION>Armenia</OPTION>

<OPTION>Australia</OPTION>

<OPTION>Austria</OPTION>

<OPTION>Azerbaiyán</OPTION>

<OPTION>Bahamas</OPTION>

<OPTION>Bahrein</OPTION>

<OPTION>Bangladesh</OPTION>

<OPTION>Barbados</OPTION>

<OPTION>Bélgica</OPTION>

<OPTION>Belice</OPTION>

<OPTION>Benín</OPTION>

<OPTION>Bielorrusia</OPTION>

<OPTION>Bolivia</OPTION>

<OPTION>Bosnia - Herzegovina</OPTION>

<OPTION>Botswana</OPTION>

<OPTION>Brasil</OPTION>

<OPTION>Brunei</OPTION>

<OPTION>Bulgaria</OPTION>

<OPTION>Burkina Faso</OPTION>

<OPTION>Burundi</OPTION>

<OPTION>Bután</OPTION>

<OPTION>Cabo Verde</OPTION>

<OPTION>Cambodia</OPTION>

<OPTION>Camerún</OPTION>

<OPTION>Canadá</OPTION>

<OPTION>Chad</OPTION>

<OPTION>Chile</OPTION>

<OPTION>China</OPTION>

<OPTION>Chipre</OPTION>

<OPTION>Comores</OPTION>

<OPTION>Colombia</OPTION>

<OPTION>Corea del Norte</OPTION>

<OPTION>Corea del Sur</OPTION>

<OPTION>Costa de Marfil</OPTION>

<OPTION>Costa Rica</OPTION>

<OPTION>Croacia</OPTION>

<OPTION>Cuba</OPTION>

<OPTION>Dinamarca</OPTION>

<OPTION>Djibouti</OPTION>

<OPTION>Dominica</OPTION>

<OPTION>Ecuador</OPTION>

<OPTION>Egipto</OPTION>

<OPTION>El Salvador</OPTION>

<OPTION>Emiratos Árabes Unidos</OPTION>

<OPTION>Eritrea</OPTION>

<OPTION>Eslovaquia</OPTION>

<OPTION>Eslovenia</OPTION>

<OPTION>España</OPTION>

<OPTION>Estados Unidos</OPTION>

<OPTION>Estonia</OPTION>

<OPTION>Etiopía</OPTION>

<OPTION>Fiji</OPTION>

<OPTION>Filipinas</OPTION>

<OPTION>Finlandia</OPTION>

<OPTION>Francia</OPTION>

<OPTION>Gabón</OPTION>

<OPTION>Gambia</OPTION>

<OPTION>Georgia</OPTION>

<OPTION>Ghana</OPTION>

<OPTION>Granada</OPTION>

<OPTION>Grecia</OPTION>

<OPTION>Guatemala</OPTION>

<OPTION>Guinea</OPTION>

<OPTION>Guinea Bissau</OPTION>

<OPTION>Guinea Ecuatorial</OPTION>

<OPTION>Guyana</OPTION>

<OPTION>Haití</OPTION>

<OPTION>Honduras</OPTION>

<OPTION>Hungría</OPTION>

<OPTION>India</OPTION>

<OPTION>Indonesia</OPTION>

<OPTION>Irán</OPTION>

<OPTION>Iraq</OPTION>

<OPTION>Irlanda</OPTION>

<OPTION>Islandia</OPTION>

<OPTION>Islas Feroe</OPTION>

<OPTION>Islas Marshall</OPTION>

<OPTION>Islas Salomón</OPTION>

<OPTION>Israel</OPTION>

<OPTION>Italia</OPTION>

<OPTION>Jamaica</OPTION>

<OPTION>Japón</OPTION>

<OPTION>Jordania</OPTION>

<OPTION>Kazajstán</OPTION>

<OPTION>Kenia</OPTION>

<OPTION>Kirguizistán</OPTION>

<OPTION>Kiribati</OPTION>

<OPTION>Kuwait</OPTION>

<OPTION>Laos</OPTION>

<OPTION>Lesotho</OPTION>

<OPTION>Letonia</OPTION>

<OPTION>Líbano</OPTION>

<OPTION>Liberia</OPTION>

<OPTION>Libia</OPTION>

<OPTION>Liechtenstein</OPTION>

<OPTION>Lituania</OPTION>

<OPTION>Luxemburgo</OPTION>

<OPTION>Macedonia</OPTION>

<OPTION>Madagascar</OPTION>

<OPTION>Malaisia</OPTION>

<OPTION>Malawi</OPTION>

<OPTION>Maldivas</OPTION>

<OPTION>Malí</OPTION>

<OPTION>Malta</OPTION>

<OPTION>Marruecos</OPTION>

<OPTION>Mauricio</OPTION>

<OPTION>Mauritania</OPTION>

<OPTION>México</OPTION>

<OPTION>Micronesia</OPTION>

<OPTION>Moldavia</OPTION>

<OPTION>Mónaco</OPTION>

<OPTION>Mongolia</OPTION>

<OPTION>Mozambique</OPTION>

<OPTION>Myamar</OPTION>

<OPTION>Namibia</OPTION>

<OPTION>Naurú</OPTION>

<OPTION>Nepal</OPTION>

<OPTION>Nicaragua</OPTION>

<OPTION>Níger</OPTION>

<OPTION>Nigeria</OPTION>

<OPTION>Noruega</OPTION>

<OPTION>Nueva Zelanda</OPTION>

<OPTION>Omán</OPTION>

<OPTION>Países Bajos</OPTION>

<OPTION>Pakistán</OPTION>

<OPTION>Palau</OPTION>

<OPTION>Paraguay</OPTION>

<OPTION>Panamá</OPTION>

<OPTION>Papúa - Nueva Guinea</OPTION>

<OPTION>Perú</OPTION>

<OPTION>Polonia</OPTION>

<OPTION>Portugal</OPTION>

<OPTION>Puerto Rico</OPTION>

<OPTION>Qatar</OPTION>

<OPTION>Reino Unido</OPTION>

<OPTION>República Centroafricana</OPTION>

<OPTION>República Checa</OPTION>

<OPTION>República del Congo</OPTION>

<OPTION>Congo</OPTION>

<OPTION>República Dominicana</OPTION>

<OPTION>República Sudafricana</OPTION>

<OPTION>Ruanda</OPTION>

<OPTION>Rumanía</OPTION>

<OPTION>Rusia</OPTION>

<OPTION>Sáhara Occidental</OPTION>

<OPTION>Samoa Occidental</OPTION>

<OPTION>San Cristóbal y Nevis</OPTION>

<OPTION>San Marino</OPTION>

<OPTION>San Vicente y Granadinas</OPTION>

<OPTION>Santa Lucía</OPTION>

<OPTION>Santo Tomé y Príncipe</OPTION>

<OPTION>Senegal</OPTION>

<OPTION>Seychelles</OPTION>

<OPTION>Sierra Leona</OPTION>

<OPTION>Singapur</OPTION>

<OPTION>Siria</OPTION>

<OPTION>Somalia</OPTION>

<OPTION>Sri Lanka</OPTION>

<OPTION>Sudán</OPTION>

<OPTION>Suecia</OPTION>

<OPTION>Suiza</OPTION>

<OPTION>Surinam</OPTION>

<OPTION>Swazilandia</OPTION>

<OPTION>Tailandia</OPTION>

<OPTION>Taiwán</OPTION>

<OPTION>Tanzania</OPTION>

<OPTION>Tayikistán</OPTION>

<OPTION>Togo</OPTION>

<OPTION>Tonga</OPTION>

<OPTION>Trinidad y Tobago</OPTION>

<OPTION>Túnez</OPTION>

<OPTION>Turkmenistán</OPTION>

<OPTION>Turquía</OPTION>

<OPTION>Tuvalú</OPTION>

<OPTION>Ucrania</OPTION>

<OPTION>Uganda</OPTION>

<OPTION>Uruguay</OPTION>

<OPTION>Uzbekistán</OPTION>

<OPTION>Vanuatú</OPTION>

<OPTION>Vaticano</OPTION>

<OPTION>Venezuela</OPTION>

<OPTION>Vietnam</OPTION>

<OPTION>Yemen</OPTION>

<OPTION>Yugoslavia</OPTION>

<OPTION>Zambia</OPTION>

<OPTION>Zimbabwe</OPTION>

</select>

</td>

</tr>

<tr bgcolor="#F8D480">

<td align="right"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">&Aacute;rea

de su consulta</font></td>

<td><select name="Cons[area]">

<option selected>Seleccione...</option>

<option>Adquirir Sub-Agencia</option>

<option>Billetes Quinielas y Loterias</option>

<option>Quini 6</option>

<option>Loto</option>

<option>Prode</option>

<option>Telekino</option>

<option>Tombola Uruguaya</option>

<option>Brinco</option>

<option>Telebingo</option>

<option>Toto bingo</option>

<option>Consultas en General</option>

</select></td>

</tr>

<tr bgcolor="#F8D480">

<td align="right" valign="top" nowrap><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Detalle

de su consulta</font></td>

<td width="100%"><textarea name="Cons[consulta]" cols="30" rows="4"></textarea></td>

</tr>

<tr bgcolor="#F8D480">

<td>&nbsp;</td>

<input name="do" type="hidden" value="enviar">

<td><input type="submit" name="Submit" value="Enviar">

<input type="reset" name="Submit2" value="Cancelar" onClick="window.close()"></td>

</tr>

</table></td>

</tr>

</table>

</form>

</body>

<?php

} // Fin forma

?>
  #5 (permalink)  
Antiguo 23/03/2004, 08:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
(cuando dije todo el formulario .. mm podrías haber reducido los option de esa lista de paises .. así se hace complicado seguir el código .. pero bueno .. "mas vale que sobre que no que falte" decía el refran).

Insisto que tienes un lio enorme con las variables .. usas $HTTP_POST_VARS y por otros lados $_POST .. (si usas PHP 4.1.0 en adelante USA $_XXX para todo .. incluido $_SERVER['PHP_SELF'] en lugar de tu $PHP_SELF).

Ahora .. sobre tu problema...

usas arrays para definir el nombre de tus variables del formulario y como indice de ese array sería el nombre de tu variable ..así que en PHP debes ver el valor de ese Array con ese indice para validarlo...

Si usas:
<select name="Cons[area]">

tendras que validar por:

Código PHP:
if (empty($_POST['Cons']['area'])){
   echo 
"Falta el area ...";

Y si no es realmente necesario esa estructura (con arrays) usa simplemente:
<select name="area">

Y así la recoges en PHP por:

$_POST['area'] ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 14:27.