<?php/*** Sistema de administración del departamento * de evaluación de la escuela básica nacional * "María Luisa Paredes de Antonini"** @autor Janez Rabzelj Zappone <janez@rabzelj.net>* @archivo Inscripción de los alumnos**/// obtenemos nuestros paquetes PEARrequire_once 'HTML/QuickForm.php';require_once 'MDB2.php';require_once 'config.php';class datosAlumnos extends HTML_QuickForm { function datosAlumnos() { parent::HTML_QuickForm('datosAlumnos', 'post'); // título de los siguientes elementos $this->addElement('header', '', 'Datos del alumno'); // elementos del formulario $this->addElement('text', 'nombre', 'Nombre:'); $this->addElement('text', 'apellido', 'Apellido:'); $this->addElement('text', 'cedula', 'Cédula:'); $this->addElement('text', 'direccion', 'Dirección:'); $this->addElement('text', 'lugarnacimiento' ,'Lugar de nacimiento:'); $this->addElement('text', 'estado', 'Estado:'); // hacemos el hierselect de la nacionalidad $nacionalidad[0] = 'Venezolano'; $nacionalidad[1] = 'Extranjero'; $opts[] = $nacionalidad; $hs =& $this->addElement('hierselect', 'nacionalidad', 'Nacionalidad:'); $hs->setOptions($opts); $this->addElement('text', 'periodoescolar', 'Período escolar:'); $this->addElement('text', 'cedularepresentante', 'Cédula del representante:'); $this->addElement('text', 'plantelprocedencia', 'Plantel de procendencia:'); $this->addElement('text', 'grado', 'Grado:'); $this->addElement('text', 'telefono', 'Teléfono:'); $this->addElement('text', 'lapso', 'Status (lapso):'); $this->addElement('text', 'anoescolar', 'Año escolar:'); $this->addElement('date', 'fecharetiro', 'Fecha de retiro', array('format'=>'dmY', 'minYear'=>2006, 'maxYear'=>2020)); $this->addElement('text', 'observaciones', 'Observaciones:', array('maxlength'=>60)); // el botón que será mostrado $botones = array(); $botones[] =& $this->createElement('submit', null, 'Enviar'); $this->addGroup($botones, null, null, ' ', false); // filtro para prevenir suciedades $this->applyFilter('__ALL__', 'trim'); // reglas de campo requerido $this->addRule('nombre', 'Error, campo requerido', 'required'); $this->addRule('apellido', 'Error, campo requerido', 'required'); $this->addRule('cedula', 'Error, campo requerido', 'required'); $this->addRule('direccion', 'Error, campo requerido', 'required'); $this->addRule('lugarnacimiento', 'Error campo requerido', 'required'); $this->addRule('estado', 'Error, campo requerido', 'required'); $this->addRule('nacionalidad', 'Error, campo requerido', 'required'); $this->addRule('periodoescolar', 'Error, campo requerido', 'required'); $this->addRule('cedularepresentante', 'Error, campo requerido', 'required'); $this->addRule('plantelprocedencia', 'Error, campo requerido', 'required'); $this->addRule('grado', 'Error, campo requerido', 'required'); $this->addRule('telefono', 'Error, campo requerido', 'required'); $this->addRule('anoescolar', 'Error, campo requerido', 'required'); $this->addRule('lapso', 'Error, campo requerido', 'required'); $this->addRule('fecharetiro', 'Error, campo requerido', 'required'); $this->addRule('observaciones', 'Error, campo requerido', 'required'); // reglas de númerico, alfanúmerico y solo letras $this->addRule('nombre', 'Error, en este campo sólo puedes escribir letras', 'regex', '/^[a-zA-Z\s]+$/'); $this->addRule('apellido', 'Error, en este campo sólo puedes escribir letras', 'regex', '/^[a-zA-Z\s]+$/'); $this->addRule('cedula', 'Error, en este campo sólo puedes escribir números', 'numeric'); $this->addRule('direccion', 'Error, en este campo sólo puedes escribir con letras y números', 'regex', '/^[a-zA-Z0-9\s\-]+$/'); $this->addRule('lugarnacimiento', 'Error, en este campo sólo puedes escribir con letras', 'regex', '/^[a-zA-Z\s]+$/'); $this->addRule('estado', 'Error, en este campo sólo puedes escribir con letras', 'regex', '/^[a-zA-Z\s]+$/'); $this->addRule('nacionalidad', 'Error, en este campo sólo puedes escribir con letras', 'regex', '/^[a-zA-Z\s]+$/'); $this->addRule('periodoescolar', 'Error, en este campo sólo puedes escribir números', 'regex', '/^[a-zA-Z\s\-]+$/'); $this->addRule('cedularepresentante', 'Error, en este campo sólo puedes escribir números', 'numeric'); $this->addRule('plantelprocedencia', 'Error, en este campo sólo puedes escribir letras', 'regex', '/^[a-zA-Z\s]+$/'); $this->addRule('grado', 'Error, en este campo sólo puedes escribir números', 'numeric'); $this->addRule('telefono', 'Error, en este campo sólo puedes escribir números', 'numeric'); $this->addRule('lapso', 'Error, en este campo sólo puedes escribir números', 'numeric'); } function procesa($dsn, $opciones) { // procedemos a procesar los datos $mdb2 =& MDB2::connect($dsn, $opciones); if (PEAR::isError($mdb2)) { die($mdb2->getMessage()); } // exportamos los valores del formulario $nombre = $this->exportValue('nombre'); $apellido = $this->exportValue('apellido'); $cedula = $this->exportValue('cedula'); $direccion = $this->exportValue('direccion'); $lugarnacimiento = $this->exportValue('lugarnacimiento'); $estado = $this->exportValue('estado'); $nacionalidad = $this->exportValue('nacionalidad'); $periodoescolar = $this->exportValue('periodoescolar'); $cedularepresentante = $this->exportValue('cedularepresentante'); $plantelprocedencia = $this->exportValue('plantelprocedencia'); $grado = $this->exportValue('grado'); $telefono = $this->exportValue('telefono'); $lapso = $this->exportValue('lapso'); $anoescolar = $this->exportValue('anoescolar'); $fecharetiro = $this->exportValue('fecharetiro'); $observaciones = $this->exportValue('observaciones'); // ingresamos datos a la db $valores = array( 'nombre' => $nombre, 'apellido' => $apellido, 'cedula' => $cedula, 'direccion' => $direccion, 'lugarnacimiento' => $lugarnacimiento, 'estado' => $estado, 'nacionalidad' => $nacionalidad, 'periodoescolar' => $periodoescolar, 'cedularepresentante' => $cedularepresentante, 'plantelprocedencia' => $pantelprocedencia, 'grado' => $grado, 'telefono' => $telefono, 'lapso' => $lapso, 'anoescolar' => $anoescolar, 'fecharetiro' => $fecharetiro, 'observaciones' => $observaciones ); $tipos = array('text', 'text', 'text', 'text', 'text', 'text', 'text', 'text', 'text','text', 'text', 'text', 'text', 'text', 'text', 'text', 'text', 'text', 'date', 'text'); $mdb2->loadModule('Extended'); $mdb2->extended->autoExecute('datosAlumnos', $valores, MDB2_AUTOQUERY_INSERT, null, $tipos); if (PEAR::isError($mdb2)) { die($mdb2->getMessage()); } else { echo 'Los datos han sido procesados correctamente'; } }} $form = new datosAlumnos();// se valida el formularioif ($form->validate()) { $form->procesa($dsn, $opciones);} else{ $form->display();}?>