homepage Welcome to WebmasterWorld Guest from 54.163.84.199
register, free tools, login, search, pro membership, help, library, announcements, recent posts, open posts,
Become a Pro Member

Home / Forums Index / Code, Content, and Presentation / PHP Server Side Scripting
Forum Library, Charter, Moderators: coopster & jatar k

PHP Server Side Scripting Forum

    
php validation of a form with fields added by Javascript
jerry95




msg:4485700
 11:19 pm on Aug 16, 2012 (gmt 0)

I have trouble validating a form that changes its fields based on javascript. The idea is that the form displays different fields added dinamically based on a radio button choice. However PHP appears to get confused based on the logic I made. Say I check for the fields that are actually set. I tried writing an if, else logic checking if $_POST variables were set with isset, but it didn't work. Now the code I have does a check for the whole form being submitted (checking the name of the submit button), and then, inside that check, I check for all the other fields, like so:

else if(isset($_POST['subirLic']) && isset($_POST['BusquedaTerm'])){
//the first variable is the name of the submit button and the second is a hidden field, then inside the block I check for the existence of the fields for example: if(isset($_POST['whatever'])) {}

The problem is that I want to check that the first set of fields is submitted, and also check if the other fields (those that display based on a javascript function) are not submitted.

I tried to build a decision logic but I am all messed up, currently I do the check like I described above, then I check if the variables are set that must go into the database query, but the page behaves very oddly. For example I fill the additional fields, and then PHP tries to do a query that I built for the other set of fields.
I'll post the whole code that handles the form in question, the page has about 5 more forms but those have no extra fields and they work fine, the problem with the one I mentioned is in my opinion that the $_POST variables are repeatedly checked and this gets confused the whole task, but I can't think of any other way to do it, that is why I appreciate your suggestions.

else if(isset($_POST['subirLic']) && isset($_POST['BusquedaTerm'])){
// the above statement starts with an else if because it is part of a larger set of forms being checked---------------------
require_once('libreria.php');
if(isset($_POST['titulo'])) $Titulado = $_POST['titulo'];
if (isset($_POST['EgresoLic'])) {$EgresoLicenciado = $_POST['EgresoLic'];
$EgresoLicencia = new Zend_Validate_Date;
if ($EgresoLicencia->isValid($EgresoLicenciado)) $EgresoLicen = $EgresoLicenciado; else $errorsLic['fechaEgreso']="Escriba la fecha de egreso de licenciatura, formato AAAA-MM-DD (slo nmeros separados por guiones)"; }
if (isset($_POST['IngresoLic'])) {$IngresoLicenciado= $_POST['IngresoLic'];
$IngresoLicencia = new Zend_Validate_Date;
if ($IngresoLicencia->isValid($IngresoLicenciado)) $IngresoLicen = $IngresoLicenciado; else $errorsLic['fechaIngreso']="Escriba la fecha de ingreso a licenciatura, formato AAAA- MM-DD (slo nmeros separados por guiones"; }
if (isset($_POST['titulo']))$Titulado = $_POST['titulo'];
if(isset($_POST['genLic'])) {$GenerLicenciado =$_POST['genLic'];
if($GenerLicenciado !="" && preg_match('/^\d{4}/', $GenerLicenciado)==true) $GenerLic= $GenerLicenciado;
else $errorsLic['generacion'] = "Escriba el ao de su generacin en formato AAAA"; }
$cuentaDep= $_POST['cuentaLic']; //Escribir validacin de cuenta ----------------> pendiente
if(isset($_POST['facLic'])) {$FacultadLic= $_POST['facLic'];
if($FacultadLic !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b) {6,}/', $FacultadLic)==true && substr_count($FacultadLic, ' ')==5)) $FacultLic = $FacultadLic;
else if($FacultadLic !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b) {5,}/', $FacultadLic)==true && substr_count($FacultadLic, ' ')==4)) $FacultLic = $FacultadLic;
else if($FacultadLic !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){4,}/', $FacultadLic)==true && substr_count($FacultadLic, ' ')==3)) $FacultLic = $FacultadLic;
else if($FacultadLic !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){3,}/', $FacultadLic)==true && substr_count($FacultadLic, ' ')==2)) $FacultLic = $FacultadLic;
else if($FacultadLic !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){2,}/', $FacultadLic)==true && substr_count($FacultadLic, ' ')==1)) $FacultLic = $FacultadLic;
else if($FacultadLic !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){1,}/', $FacultadLic)==true && substr_count($FacultadLic, ' ')==0)) $FacultLic = $FacultadLic;
else $errorsLic['facultad']= "Escriba la facultad en que estudi la licenciatura"; }
if(isset($_POST['titulo'])) $Titulado = $_POST['titulo'];
if(isset($_POST['CedProfLic'])) {$CedulaLic = $_POST['CedProfLic']; if($CedulaLic !="" && preg_match('/\d{2,9}/', $CedulaLic)==true) $CedLic=$CedulaLic; else $errorsLic['cedula']="Escriba el nmero de su cdula profesional";}
if(isset($_POST['TesisLic'])) {$TesisLicenciado = $_POST['TesisLic'];
if($TesisLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){11,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==10)) $TesisLicen=$TesisLicenciado;
else if($TesisLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){10,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==9)) $TesisLicen=$TesisLicenciado;
else if($TesisLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){9,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==8)) $TesisLicen=$TesisLicenciado;
else if($TesisLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){8,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==7)) $TesisLicen=$TesisLicenciado;
else if($TesisLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){7,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==6)) $TesisLicen=$TesisLicenciado;
else if($TesisLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){6,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==5)) $TesisLicen=$TesisLicenciado;
else if($TesisLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){5,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==4)) $TesisLicen=$TesisLicenciado;
else if($TesisLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){4,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==3)) $TesisLicen=$TesisLicenciado;
else if($TesisLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){3,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==2)) $TesisLicen=$TesisLicenciado;
else if($TesisLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){2,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==1)) $TesisLicen=$TesisLicenciado;
else $errorsLic['tesis']="Escriba el ttulo de su tesis de licenciatura";
}

include_once ('conect_gral.php');//importante incluir este archivo en todas las consultas, y sustituirlo por uno seguro con contrasea;
$registrobuscado=$_POST['BusquedaTerm'];
if(isset($EgresoLicen)&&isset($IngresoLicen)&&isset($CedLic)&&isset($FacultLic) &&isset($GenerLic)&&isset($cuentaDep)&&isset($TesisLicen)) {
$cons4="SELECT CompletoApellidos FROM seguimientoegresados WHERE CompletoApellidos='registrobuscado'";
$regisLic = "UPDATE datos_licenciatura SET Fecha_Egreso_Lic='$EgresoLicen', Fecha_Ingreso_Lic='$IngresoLicen', Ced_Profesional_Lic='$CedLic', Facultad_Lic='$FacultLic', Generacion_Lic='$GenerLic', Cuenta_Dependencia='$cuentaDep', Tesis_Lic='$TesisLicen' WHERE Apellido_Licen='$registrobuscado'";
$regisGrad= "UPDATE estudios_grado SET Grado='Licenciado' WHERE Apellidos_Grado='$registrobuscado'";
if($Titulado=='pasante') $regisGrad="UPDATE estudios_grado SET Grado='Pasante' WHERE Apellidos_Grado='$registrobuscado'";
$consultacuatro=mysql_query($cons4);
$registroLic = mysql_query($regisLic);
$registroGrado = mysql_query($regisGrad);
if (!$registroLic || !$registroGrado) echo "Ocurri un error al registrar los datos en la Base de Datos Registro Basico";
if (!$consultacuatro) {echo "No se ha podido localizar al usuario";}
} else echo "No se han registrado todos los datos";
//captura de datos de pasantes-->
//PRIMERA PARTE DEL FORMULARIO REVISAR
if(isset($_POST['asesor_proy'])) {$AsesorLicenciado = $_POST['asesor_proy'];
if($AsesorLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0- 9]+\D\b){5,}/', $AsesorLicenciado)==true && substr_count($AsesorLicenciado, ' ')==4)) $AsesorLic=$AsesorLicenciado;
else if($AsesorLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){4,}/', $AsesorLicenciado)==true && substr_count($AsesorLicenciado, ' ')==3)) $AsesorLic=$AsesorLicenciado;
else if($AsesorLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){3,}/', $AsesorLicenciado)==true && substr_count($AsesorLicenciado, ' ')==2)) $AsesorLic=$AsesorLicenciado;
else if($AsesorLicenciado !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){2,}/', $AsesorLicenciado)==true && substr_count($AsesorLicenciado, ' ')==1)) $AsesorLic=$AsesorLicenciado;
else $errorsLic['asesor_pas']="Escriba el nombre del asesor de su proyecto de pasante";}
if(isset($_POST['modalidad'])) $Modalidad =$_POST['modalidad'];
if(isset($_POST['proyecto'])){$TituloProyecto= $_POST['proyecto'];
if($TituloProyecto !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){10,}/', $TituloProyecto)==true && substr_count($TituloProyecto, ' ')==9)) $TitProyecto=$TituloProyecto;
else if($TituloProyecto !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){9,}/', $TituloProyecto)==true && substr_count($TituloProyecto, ' ')==8)) $TitProyecto=$TituloProyecto;
else if($TituloProyecto !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){8,}/', $TituloProyecto)==true && substr_count($TituloProyecto, ' ')==7)) $TitProyecto=$TituloProyecto;
else if($TituloProyecto !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){7,}/', $TituloProyecto)==true && substr_count($TituloProyecto, ' ')==6)) $TitProyecto=$TituloProyecto;
else if($TituloProyecto !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){6,}/', $TituloProyecto)==true && substr_count($TituloProyecto, ' ')==5)) $TitProyecto=$TituloProyecto;
else if($TituloProyecto !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){5,}/', $TituloProyecto)==true && substr_count($TituloProyecto, ' ')==4)) $TitProyecto=$TituloProyecto;
else if($TituloProyecto !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){4,}/', $TituloProyecto)==true && substr_count($TituloProyecto, ' ')==3)) $TitProyecto=$TituloProyecto;
else if($TituloProyecto !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){3,}/', $TituloProyecto)==true && substr_count($TituloProyecto, ' ')==2)) $TitProyecto=$TituloProyecto;
else if($TituloProyecto !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){2,}/', $TituloProyecto)==true && substr_count($TituloProyecto, ' ')==1)) $TitProyecto=$TituloProyecto;
else if($TituloProyecto !="" && (preg_match('/^\D([[:alpha:]]*\B[^0-9]+\D\b){1,}/', $TituloProyecto)==true && substr_count($TituloProyecto, ' ')==0)) $TitProyecto=$TituloProyecto;
else $errorsLic['proyecto']="Escriba el ttulo de su proyecto de pasante";
} if(isset($EgresoLicen)&&isset($ingresoLicen)&&isset($CedLic)&&isset($FacultLic) &&isset($GenerLic)&&isset($cuentaDep)&&isset($AsesorLic)&&isset($TitProyecto) &&isset($Modalidad)) {
include_once ('conect_gral.php');//importante incluir este archivo en todas las consultas, y sustituirlo por uno seguro con contrasea;
$registrobuscado=$_POST['BusquedaTerm'];
$cons11="SELECT CompletoApellidos FROM seguimientoegresados WHERE CompletoApellidos='registrobuscado'";
$regisPas="UPDATE datos_licenciatura SET Fecha_Egreso_Lic='$EgresoLicen', Fecha_Ingreso_Lic='$IngresoLicen', Facultad_Lic='$FacultLic', Generacion_Lic='$GenerLic', Cuenta_Dependencia='$cuentaDep', Asesor_Pas='$AsesorLic', Proyecto_Pas='$TitProyecto', Modalidad_Pas='$Modalidad' WHERE Apellido_Licen='$registrobuscado'";
$regisGrad= "UPDATE estudios_grado SET Grado='Licenciado' WHERE Apellidos_Grado='$registrobuscado'";
if($Titulado=='pasante') $regisGrad="UPDATE estudios_grado SET Grado='Pasante' WHERE Apellidos_Grado='$registrobuscado'";
$consultaonce=mysql_query($cons11);
$registroPas = mysql_query($regisPas);
$registroGrado = mysql_query($regisGrad);
if (!$registroPas || !$registroGrado) echo "Ocurri un error al registrar los datos en la Base de Datos";
if (!$consultaonce) {echo "No se ha podido localizar al usuario";}


Kind regards to all of you...

[edited by: eelixduppy at 12:57 pm (utc) on Aug 20, 2012]
[edit reason] sidescroll [/edit]

 

coopster




msg:4537776
 9:12 pm on Jan 20, 2013 (gmt 0)

Wow, that's a lot of code to try and filter through and understand ... can you be more specific about the exact problem being incurred if you have not already resolved this issue, jerry95?

Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / PHP Server Side Scripting
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Home ¦ Free Tools ¦ Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About ¦ Library ¦ Newsletter
WebmasterWorld is a Developer Shed Community owned by Jim Boykin.
© Webmaster World 1996-2014 all rights reserved