hola, me estoy iniciando en esto de los sitios web y necesito urgentemente ayuda para arreglar una validación de formulario para un sitio de venta de servicios. creo que un problema es que no conozco los enlaces que puedan haber entre páginas y el código empleado para la validación (esto no lo hice yo, fue un encargo y me lo hicieron mal). si se deja un campo en blanco o si el email tiene error, se recarga la pagina, sale un mensaje de error pero entonces no salen los campos de los datos de nombre, etc, del cliente, aparece el carrito como con un pedido y se asume que los datos del cliente estan ya registrados pero no es asi. No he estudiado programación web y esto lo estoy haciendo a lógica y leyendo muchisimo. asi que pido disculpas de antemano por mi ignorancia. gracias a quienes se tomen el trabajo de leer esto y contestar. estoy copiando solo lo que entiendo puede estar relacionado con la validación.
en una página, que sería según entiendo la parte del servidor, está esto:
function campos_obligatorios($fecha1,$fecha2,$nombre,$pais, $Cant_hab,$sel_1,$sel_2,$sel_3,$cant_ad_1,$sel_4,$ sel_5,$sel_6,$cant_ad_2,$sel_7,$sel_8,$sel_9,$cant _ad_3,$sel_10,$sel_11,$sel_12,$cant_ad_4,$sel_13,$ sel_14,$sel_15,$cant_ad_5, $email, $id)
{
global $valor;
if (empty($fecha1) or empty($fecha2) or empty($nombre) or empty($pais) or empty($email)) {
$a = 0;
}
else
{
$a = 1;
}
switch ($Cant_hab) {
case 1:
if (empty($sel_1) or empty($sel_2) or empty($sel_3) or empty($cant_ad_1))
{
$b=0;
}
else
{
$b=1;
}
break;
case 2:
if (empty($sel_1) or empty($sel_2) or empty($sel_3) or empty($sel_4) or empty($sel_5) or empty($sel_6) or empty($cant_ad_1) or empty($cant_ad_2))
{
$b=0;
}
else
{
$b=1;
}
break;
case 3:
if (empty($sel_1) or empty($sel_2) or empty($sel_3) or empty($sel_4) or empty($sel_5) or empty($sel_6) or empty($sel_7) or empty($sel_8) or empty($sel_9) or empty($cant_ad_1) or empty($cant_ad_2) or empty($cant_ad_3))
{
$b=0;
}
else
{
$b=1;
}
break;
case 4:
if (empty($sel_1) or empty($sel_2) or empty($sel_3) or empty($sel_4) or empty($sel_5) or empty($sel_6) or empty($sel_7) or empty($sel_8) or empty($sel_9) or empty($sel_10) or empty($sel_11) or empty($sel_12) or empty($cant_ad_1) or empty($cant_ad_2) or empty($cant_ad_3) or empty($cant_ad_4))
{
$b=0;
}
else
{
$b=1;
}
break;
case 5:
if (empty($sel_1) or empty($sel_2) or empty($sel_3) or empty($sel_4) or empty($sel_5) or empty($sel_6) or empty($sel_7) or empty($sel_8) or empty($sel_9) or empty($sel_10) or empty($sel_11) or empty($sel_12) or empty($sel_13) or empty($sel_14) or empty($sel_15) or empty($cant_ad_1) or empty($cant_ad_2) or empty($cant_ad_3) or empty($cant_ad_4) or empty($cant_ad_5))
{
$b=0;
}
else
{
$b=1;
}
break;
}
$valor = $a * $b;
//echo $valor;
//echo ("<br>valor<br>");
//echo ($a);
//echo ("<br>a<br>");
//echo $b;
//echo ("<br>b<br>");
if ($valor == 0) {
//echo $valor;
Header("Location: hotelesvista.php?id=" . $id ."&Cant_hab=" . $Cant_hab ."&MSG=Todos los campos del formulario de reserva son obligatorios, exceptuando los marcados con: (*). Por favor, introduzca los datos correctamente");
exit;
}
//else
//{
//break;
//}
return ($valor);
}
function compara_fechas($fecha1,$fecha2,$id,$Cant_hab)
{
global $salida;
$fecha_actual=date("Y/m/d");
if ($fecha1 <= $fecha_actual or $fecha2 <= $fecha_actual) {
Header("Location: hotelesvista.php?id=" . $id ."&Cant_hab=" . $Cant_hab ."&MSG=Las fechas de las reservas deben ser posteriores a la fecha actual. Por favor, rectifique sus datos");
$salida=0;
exit;
}
If ($fecha2 <= $fecha1) {
//echo $dif;
Header("Location: hotelesvista.php?id=" . $id ."&Cant_hab=" . $Cant_hab ."&MSG=La fecha de salida debe ser posterior a la fecha de entrada. Por favor, rectifique sus datos");
$salida=0;
}
}
function check_email_address($email)
{
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
{
return false;
}
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++)
{
if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
{
return false;
}
}
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
{
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2)
{
return false;
}
for ($i = 0; $i < sizeof($domain_array); $i++)
{
if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i]))
{
return false;
}
}
}
return true;
}
EN OTRA PÁGINA que sería la parte del cliente y que debe estar relacionada con la anterior sale esto que entiendo es lo único que se refiere a la validación:
<!-- <validanguage target="x_hot_from, x_hot_to, select1, select2, select3, select4, select5, select6, select7, select8, select9, select10, select11, select12, select13, select14, select15, Cant_adulto1, Cant_adulto2, Cant_adulto3, Cant_adulto4, Cant_adulto5, nombre, email, pais" required="true" errorMsg="Campo obligatorio. Por favor introduzca los datos"> -->
<!-- <validanguage target="x_hot_from, x_hot_to" validations="validanguage.validateDate( text, { dateOrder: 'ymd', rejectDatesInThePast: true } )" onblur="true" onsubmit="true" errorMsg="Fecha incorrecta"> -->
<!-- <validanguage target="email" validations="validanguage.validateEmail" onblur="true" onsubmit="true" errorMsg="Dirección de correo incorrecta"> -->
gracias por la ayuda. todo comentario es bienvenido.