PHP验证表单在javascript上显示不同的字段

时间:2012-08-16 17:14:34

标签: php javascript

我无法验证基于javascript更改其字段的表单。这个想法是表单显示基于单选按钮选择动态添加的不同字段。然而,PHP似乎基于我所做的逻辑而感到困惑。假设我检查实际设置的字段。我尝试编写if,否则逻辑检查是否使用isset设置$ _POST变量,但它不起作用。现在我的代码检查了提交的整个表单(检查提交按钮的名称),然后,在检查中,我检查所有其他字段,如下所示:

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显然很混乱,因为两个if选项包含几乎相同的变量。

好的伙计们,我会粘贴代码,因为我一直在看它并且只能认为它是正确的,尽管它显然不是。它只是页面上整个代码的一部分,还有大约五个表单(它是一个向数据库添加信息的管理面板)。其他形式工作正常,但他们没有添加任何额外的字段,所以我可以简单地检查它们中是否设置了所有$ _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,特别是因为我不是100%肯定这些正则表达式在任何条目情况下都能正常运行。无论如何,谢谢你的耐心等待。当我使用添加了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";}
}
}

我必须说我对其他表单上的字段进行了完全相同的验证,所有这些都与常规表达相混淆,并且在这些表单上我确实将错误传递给错误数组,而在此表单上,我想因为我正在做两个查询,我无法构建数组。另外,我认为第一个查询的部分,我检查是否提交了表单的第二个(可选)字段的变量,是否被两个查询一起工作的方式覆盖,我的意思是当我把:

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

它实际上没有检查任何东西,因为在那一点上显然没有设置这些变量,但我无法弄清楚要做什么,我必须检查变量是否设置如果我必须提及它们,如果我也检查是否它们是空的我会在那时获得真实的结果。 如何实际检查可选字段是否没有输入?

2 个答案:

答案 0 :(得分: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;
}
?>

通过这种方式,您可以了解他们尝试提交的字段集。然后你可以检查它们是否为空,并确保你删除任何不良字符以防止黑客入侵。或者最好做一些准备好的陈述。

答案 1 :(得分:0)

如果变量的名称相似,请不要担心PHP不会混淆:)

可能发生的事情是,在某些情况下,if语句都返回true,导致逻辑变得混乱。

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

希望这很有帮助,

逾越节