2012-08-16 84 views
0

我无法验证基于javascript更改字段的表单。这个想法是,窗体显示基于单选按钮选项动态添加的不同字段。但是,PHP似乎基于我所做的逻辑而感到困惑。说我检查实际设置的字段。我试着编写一个if,else逻辑来检查$ _POST变量是否设置了isset,但它不起作用。现在,我的代码不会被提交整个形式的检查(检查的名义提交按钮),然后,该检查里面,我检查所有其他领域,像这样:PHP验证表单在javascript上显示不同字段

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'])) {} 

的问题是我想检查第一组字段是否已提交,并检查是否未提交其他字段(基于javascript函数显示的字段)。我试图建立一个决策逻辑,但我都搞砸了,目前我做了如上所述的检查,然后检查是否设置了必须进入数据库查询的变量,但页面的行为非常奇怪。例如,我填充了其他字段,然后PHP尝试执行为其他字段集建立的查询。

我想基于这样的代码来处理的决定:

if(isset($EgresoLicen)&&isset($IngresoLicen)&&isset($CedLic)&&isset($FacultLic)&&isset($GenerLic)&&isset($cuentaDep)&&isset($TesisLicen)) {//here do the query to the database} 

和其他决策的代码应该是这样的:

if(isset($EgresoLicen)&&isset($ingresoLicen)&&isset($FacultLic)&&isset($GenerLic)&&isset($cuentaDep)&&isset($AsesorLic)&&isset($TitProyecto)&&isset($Modalidad)) {//same thing } 

但正如我所说,显然,PHP会产生混淆,因为这两个选项包含几乎相同的变量。

好吧,我会粘贴代码,因为我一直在看它,只能认为它是正确的,虽然它显然不是。它只是页面上整个代码的一部分,它包含大约五个表单(这是一个管理面板,用于将信息添加到数据库中)。其他表单工作正常,但他们没有添加任何额外的字段,所以我可以简单地检查它们中的所有$ _POST变量是否已设置,并逐个验证,我提到的问题在我的认为$ _POST变量被重复检查,这让整个任务感​​到困惑,但我想不出任何其他方式来做到这一点,这就是为什么我感谢你的建议(在这一点上,我甚至不知道如果陈述嵌套正确,我记得在一夜之间工作并尽可能多地进行修改)。一个处理问题的形式的代码是:

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 (sólo números 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 (sólo números 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 año de su generación en formato AAAA"; } 
$cuentaDep= $_POST['cuentaLic']; //Escribir validación 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 número de su cédula 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 título de su tesis de licenciatura"; 
} 

include_once ('conect_gral.php');//importante incluir este archivo en todas las consultas, y sustituirlo por uno seguro con contraseña; 
$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 título 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 contraseña; 
$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";} 
} 
} 

我知道这是非常大的,我可能已经离开了整个验证报表,但也许有,我不能找到一个错误,也许你会推荐使用一个Zend_Validation来代替,特别是因为我不是百分之百确定这些正则表达式在任何条目情况下都能正确运行。无论如何,感谢您的耐心。当我使用添加了javascript的字段(验证集合的最后一部分)运行该代码时,它奇怪地产生了第一个集合中的最后一个echo语句,就好像这些变量没有设置一样,最后,如果我运行了该脚本反对表单中的第一组字段,它会在mysql查询中产生错误,并且不会向数据库添加任何内容。

好的,我发布了大量代码并继续研究它,现在我必须正确处理对数据库的查询(如果我已经更多地关注,我应该先完成这些事情)。现在唯一的问题是:其中一个,如果我提交带有添加字段的表单(我必须补充表单不仅包含附加字段,还会删除先前显示的其他字段),我一直收到两个未设置变量的错误消息。但查询工作正常。我一直在想,问题是我希望PHP使用不同的字段管理相同的表单,同时(在一个代码块内)执行查询,但仍然会根据哪些$ _POST变量来构建查询被设置。此外,现在我也遇到了我放入数组中的错误没有显示的问题,我想我会一直想知道为什么会发生这种情况,当我在同一个块中创建两个查询时,而在其他形式上,正如我所提到的,我可以完美验证他们的输入并显示错误。

我已经结束了与该代码是:

else if(isset($_POST['EgresoLic'])&&isset($_POST['IngresoLic'])&&isset($_POST['genLic'])&&isset($_POST['facLic'])&&isset($_POST['titulo'])&&isset($_POST['CedProfLic'])&&isset($_POST['TesisLic']) &&isset($_POST['cuentaLic'])&&isset($_POST['BusquedaTerm'])){ 
require_once('libreria.php'); 
$EgresoLicenciado = $_POST['EgresoLic']; 
if(!empty($EgresoLicenciado)) { 
$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 (sólo números separados por guiones)";} 
$IngresoLicenciado= $_POST['IngresoLic']; 
if(!empty($IngresoLicenciado)) { 
$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 (sólo números separados por guiones";} 
$GenerLicenciado =$_POST['genLic']; 
if(!empty($GenerLicenciado)) { 
if($GenerLicenciado !="" && preg_match('/^\d{4}/', $GenerLicenciado)==true) $GenerLic= $GenerLicenciado; 
else $errorsLic['generacion'] = "Escriba el año de su generación en formato AAAA";} 
$cuentaDep= $_POST['cuentaLic']; //Escribir validación de cuenta ----------------> pendiente 
$FacultadLic= $_POST['facLic']; if(!empty($FacultadLic)){ 
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";} 
$Titulado = $_POST['titulo']; 
$CedulaLic = $_POST['CedProfLic']; if(!empty($CedulaLic)) {if($CedulaLic !="" && preg_match('/\d{2,9}/', $CedulaLic)==true) $CedLic=$CedulaLic; else  $errorsLic['cedula']="Escriba el número de su cédula profesional";} 
$TesisLicenciado = $_POST['TesisLic']; 
if (!empty($TesisLicenciado)) { 
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) || (preg_match('/^\D([[:alpha:]ñÑáéíóúüÁÉÍÓÚÜ]*\B[^0-9]+\D\b){2,}/', $TesisLicenciado)==true && substr_count($TesisLicenciado, ' ')==2)) $TesisLicen=$TesisLicenciado; 
else $errorsLic['tesis']="Escriba el título de su tesis de licenciatura";} 
include ('conect_gral.php');//importante incluir este archivo en todas las consultas, y sustituirlo por uno seguro con contraseña; 
$registrobuscado=$_POST['BusquedaTerm']; 
if (!isset($AsesorLic) || !isset($Modalidad)|| !isset($TitProyecto)) { 
$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 Básico"; 
if (!$consultacuatro) {echo "No se ha podido localizar al usuario";} 
} 
//captura de datos de pasantes--> 
//PRIMERA PARTE DEL FORMULARIO REVISAR 
//captura de datos de pasantes--> 
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 título de su proyecto de pasante"; } 
include ('conect_gral.php');//importante incluir este archivo en todas las consultas, y sustituirlo por uno seguro con contraseña; 
$registrobuscado=$_POST['BusquedaTerm']; 
if (!empty($AsesorLic) && !empty($Modalidad) && !empty($TitProyecto)){ 
$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 Registro Pasante"; 
if (!$consultaonce) {echo "No se ha podido localizar al usuario";} 
} 
} 

我必须说,我做的正是对其他形式的字段相同的验证,与所有的定期expresssions瞎搞,并在这些形式我确实将错误传递给错误数组,但在此表单上,我猜是因为我正在执行两个查询,我无法构建数组。另外,我认为在第一个查询中我查看表单的第二个(可选)字段的变量是否被提交的部分被两个查询协同工作的方式所覆盖,我的意思是当我放置时:

if (!isset($AsesorLic) || !isset($Modalidad)|| !isset($TitProyecto)) 

它实际上没有检查什么,因为在那一点上显然那些变量没有设置,但我不知道该怎么办,我必须检查变量是否设置,如果我必须提及它们,并且如果我也检查它们是否是空的,在那一点上我也会得到真实的结果。 我怎样才能真正检查是否没有输入到可选字段?

+0

我不明白你想做什么,对我来说,似乎你有三个条件你要检查:一个如果“第一组字段被提交”,第二如果“其他字段从js没有提交”第三,如果应该执行数据库查询。如果您要显示所有代码,尤其是如何嵌套if语句,这将非常有帮助。 – 2012-08-16 17:23:26

+0

它看起来像你从$ _POST重新分配给其他变量 - 这取决于你如何分配这些变量,可能会使isset()返回true;我们可以看到变量赋值代码吗? – ernie 2012-08-16 17:32:23

+0

@ndm是它的妥协,我会改变它。非常感谢你。如果您之后关心此问题,我会重新发布。 – 2014-07-26 00:51:43

回答

0

不要担心PHP是不是感到困惑,如果变量名同样:)

什么是可能发生的是,在某些情况下这两个if语句返回true导致逻辑就会失控。

随时更新整个页面,我们会尽力帮助您。

希望这是有帮助的,

逾越节

1

这听起来像你对我应该使用两个独立的形式,并以他们命名不同。这样你可以简单地检查提交的表单。

<form name="firstForm" method="post"> 
<!-- Input tags go here --> 
<input type="submit" name="first-submit" value="First Form Submitted" /> 
</form> 

<form name="secondForm" method="post"> 
<!-- Input tags go here --> 
<input type="submit" name="second-submit" value="Second Form Submitted" /> 
</form> 

对于您的HTML示例。然后这对于PHP:

<?php 
if (!empty($_POST['first-submit'])) { 
    //do something here; 
} 

if (!empty($_POST['second-submit'])) { 
    //do something here; 
} 
?> 

这样你就知道他们试图提交的字段集合。然后你可以做你的检查,看看它们是否是空的,并确保你去除任何不良字符,以防止黑客入侵。或者最好做一些准备好的陈述。

+0

是的,我曾想过制作两种形式,然后用javascript显示/隐藏它们,但除非我可以使用两种形式,然后只设置一个提交,也许将第一个值传递给第二个与JavaScript,我不想(除了以前的技术太复杂,并取决于JavaScript是积极的)。虽然也许我会最终这样做。我会发布整个代码,但是它的大小,希望你们可以帮助我。 @matthias是的,我试图检查这3个条件,但它是击败我的逻辑。 – 2012-08-16 18:31:50

+0

是的,请做。我很难找出问题所在。在我看来,如果你想把它全部作为一种形式来处理,那么你正在以正确的方式处理它,尽管我可能不会在一个大的声明中这样做,就像我会单独做每一个一样,然后设置一个局部变量在将其放入查询之前测试它是否为空。如果它们的格式相同,则所有值都会返回,为空或以其他值。 – Roloc 2012-08-16 20:19:20

+0

我发现有趣的是分别处理每个变量,但我现在可以做的是我最好的拍摄。如果您看到我发布的代码,您可以看到我尽最大努力处理每个字段对每个字段进行大量检查,但是我必须将所有内容都放在一个块中,因为还有其他表单正在同一个脚本中处理。也许你可以建议一个替代语法? – 2012-08-17 03:40:41