From 7d464c22cb38affa8486506cd24604b1e4dc659a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 8 May 2012 12:39:18 +0000 Subject: [PATCH] =?UTF-8?q?Zugangscode=20f=C3=BCr=20Reihungstests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/testtool/login.php | 74 +++++++++++------- include/reihungstest.class.php | 47 ++++++----- system/FH-Complete.txp | 73 +++++++++++++---- system/checksystem.php | 15 +++- vilesci/stammdaten/reihungstestverwaltung.php | 78 ++++++++++--------- 5 files changed, 183 insertions(+), 104 deletions(-) diff --git a/cis/testtool/login.php b/cis/testtool/login.php index 21f3faa21..2774293fd 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -20,15 +20,15 @@ * Rudolf Hangl . */ - require_once('../../config/cis.config.inc.php'); - require_once('../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Fehler beim Oeffnen der Datenbankverbindung'); - +require_once('../../config/cis.config.inc.php'); require_once('../../include/person.class.php'); require_once('../../include/prestudent.class.php'); require_once('../../include/pruefling.class.php'); require_once('../../include/studiengang.class.php'); +require_once('../../include/reihungstest.class.php'); + +if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); session_start(); $reload=false; @@ -51,35 +51,52 @@ if(isset($_POST['tag']) && isset($_POST['monat']) && isset($_POST['jahr'])) $gebdatum=''; } -if (isset($_POST['prestudent']) && isset($gebdatum)) +if (isset($_POST['prestudent']) && isset($gebdatum) && isset($_POST['zugangscode'])) { $ps=new prestudent($_POST['prestudent']); + //Geburtsdatum Pruefen if ($gebdatum==$ps->gebdatum) { - $pruefling = new pruefling(); - if($pruefling->getPruefling($ps->prestudent_id)) + //Zugangscode fuer zugeteilten Reihungstest pruefen + $rt = new reihungstest(); + if($rt->load($ps->reihungstest_id)) { - $studiengang = $pruefling->studiengang_kz; - $semester = $pruefling->semester; - } - else - { - $studiengang = $ps->studiengang_kz; - $ps->getLastStatus($ps->prestudent_id); - $semester = $ps->ausbildungssemester; - } - if($semester=='') - $semester=1; - - $_SESSION['prestudent_id']=$_POST['prestudent']; - $_SESSION['studiengang_kz']=$studiengang; - $_SESSION['nachname']=$ps->nachname; - $_SESSION['vorname']=$ps->vorname; - $_SESSION['gebdatum']=$ps->gebdatum; - $stg_obj = new studiengang($studiengang); - $_SESSION['sprache']=$stg_obj->sprache; + if($_POST['zugangscode']==$rt->zugangscode) + { + $pruefling = new pruefling(); + if($pruefling->getPruefling($ps->prestudent_id)) + { + $studiengang = $pruefling->studiengang_kz; + $semester = $pruefling->semester; + } + else + { + $studiengang = $ps->studiengang_kz; + $ps->getLastStatus($ps->prestudent_id); + $semester = $ps->ausbildungssemester; + } + if($semester=='') + $semester=1; - $_SESSION['semester']=$semester; + $_SESSION['prestudent_id']=$_POST['prestudent']; + $_SESSION['studiengang_kz']=$studiengang; + $_SESSION['nachname']=$ps->nachname; + $_SESSION['vorname']=$ps->vorname; + $_SESSION['gebdatum']=$ps->gebdatum; + $stg_obj = new studiengang($studiengang); + $_SESSION['sprache']=$stg_obj->sprache; + + $_SESSION['semester']=$semester; + } + else + { + echo 'Der angegebene Zugangscode ist falsch'; + } + } + else + { + echo 'Der Reihungstest dem Sie zugeteilt sind kann nicht geladen werden'; + } } else { @@ -255,6 +272,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) for($i=date('Y');$i>date('Y')-99;$i--) echo ''; echo ''; + echo ' Zugangscode: '; echo '  '; echo ''; diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php index eae827223..36001d037 100644 --- a/include/reihungstest.class.php +++ b/include/reihungstest.class.php @@ -43,6 +43,7 @@ class reihungstest extends basis_db public $insertvon; // bigint public $updateamum; // timestamp public $updatevon; // bigint + public $zugangscode; // varchar(16) /** * Konstruktor @@ -69,7 +70,7 @@ class reihungstest extends basis_db return false; } - $qry = "SELECT * FROM public.tbl_reihungstest WHERE reihungstest_id='".addslashes($reihungstest_id)."'"; + $qry = "SELECT * FROM public.tbl_reihungstest WHERE reihungstest_id=".$this->db_add_param($reihungstest_id, FHC_INTEGER, false); if($this->db_query($qry)) { @@ -86,6 +87,7 @@ class reihungstest extends basis_db $this->insertvon = $row->insertvon; $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; + $this->zugangscode = $row->zugangscode; return true; } else @@ -110,7 +112,7 @@ class reihungstest extends basis_db { $qry = "SELECT * FROM public.tbl_reihungstest "; if($datum!=null) - $qry.=" WHERE datum>='".addslashes($datum)."'"; + $qry.=" WHERE datum>=".$this->db_add_param($datum); $qry.=" ORDER BY datum DESC, uhrzeit"; if($this->db_query($qry)) @@ -130,6 +132,7 @@ class reihungstest extends basis_db $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; + $obj->zugangscode = $row->zugangscode; $this->result[] = $obj; } @@ -155,7 +158,7 @@ class reihungstest extends basis_db return false; } //Gesamtlaenge pruefen - if(mb_strlen($this->ort_kurzbz)>16) + if(mb_strlen($this->ort_kurzbz)>32) { $this->errormsg = 'Ort_kurzbz darf nicht länger als 16 Zeichen sein'; return false; @@ -186,28 +189,29 @@ class reihungstest extends basis_db //Neuen Datensatz einfuegen $qry='BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit, - ext_id, insertamum, insertvon, updateamum, updatevon) VALUES('. - $this->addslashes($this->studiengang_kz).', '. - $this->addslashes($this->ort_kurzbz).', '. - $this->addslashes($this->anmerkung).', '. - $this->addslashes($this->datum).', '. - $this->addslashes($this->uhrzeit).', '. - $this->addslashes($this->ext_id).', now(), '. - $this->addslashes($this->insertvon).', now(), '. - $this->addslashes($this->updatevon).');'; + ext_id, insertamum, insertvon, updateamum, updatevon, zugangscode) VALUES('. + $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. + $this->db_add_param($this->ort_kurzbz).', '. + $this->db_add_param($this->anmerkung).', '. + $this->db_add_param($this->datum).', '. + $this->db_add_param($this->uhrzeit).', '. + $this->db_add_param($this->ext_id, FHC_INTEGER).', now(), '. + $this->db_add_param($this->insertvon).', now(), '. + $this->db_add_param($this->updatevon).','. + 'trunc(random()*100000));'; } else { $qry='UPDATE public.tbl_reihungstest SET '. - 'studiengang_kz='.$this->addslashes($this->studiengang_kz).', '. - 'ort_kurzbz='.$this->addslashes($this->ort_kurzbz).', '. - 'anmerkung='.$this->addslashes($this->anmerkung).', '. - 'datum='.$this->addslashes($this->datum).', '. - 'uhrzeit='.$this->addslashes($this->uhrzeit).', '. - 'ext_id='.$this->addslashes($this->ext_id).', '. + 'studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. + 'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).', '. + 'anmerkung='.$this->db_add_param($this->anmerkung).', '. + 'datum='.$this->db_add_param($this->datum).', '. + 'uhrzeit='.$this->db_add_param($this->uhrzeit).', '. + 'ext_id='.$this->db_add_param($this->ext_id, FHC_INTEGER).', '. 'updateamum= now(), '. - 'updatevon='.$this->addslashes($this->updatevon).' '. - 'WHERE reihungstest_id='.$this->addslashes($this->reihungstest_id).';'; + 'updatevon='.$this->db_add_param($this->updatevon).' '. + 'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';'; } if($this->db_query($qry)) @@ -254,7 +258,7 @@ class reihungstest extends basis_db */ public function getReihungstest($studiengang_kz) { - $qry = "SELECT * FROM public.tbl_reihungstest WHERE studiengang_kz='".addslashes($studiengang_kz)."'"; + $qry = "SELECT * FROM public.tbl_reihungstest WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER, false); if($this->db_query($qry)) { @@ -273,6 +277,7 @@ class reihungstest extends basis_db $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; + $obj->zugangscode = $row->zugangscode; $this->result[] = $obj; } diff --git a/system/FH-Complete.txp b/system/FH-Complete.txp index d618824e5..0ab4ca369 100644 --- a/system/FH-Complete.txp +++ b/system/FH-Complete.txp @@ -26874,11 +26874,11 @@ 0 0 -28 - 958 - 6487 + 929 + 6484 0 798 - 473 + 512 0 1 1 @@ -29082,8 +29082,8 @@ {1A08083C-F187-4B45-BE87-E0B5CFE7CBAF} - 4155 - 1348 + 4154 + 1343 2271 @@ -29094,12 +29094,12 @@ 1744 - 6456 - 1194 + 6453 + 1185 - 6487 - 1194 + 6484 + 1185 @@ -30513,8 +30513,8 @@ {1A08083C-F187-4B45-BE87-E0B5CFE7CBAF} - 6747 - 842 + 6745 + 828 6780 @@ -30525,12 +30525,12 @@ 878 - 6886 - 927 + 6883 + 898 - 6886 - 958 + 6883 + 929 @@ -49060,7 +49060,7 @@ Technikum Wien 2.0 2009-04-17T11:15:21.000+02:00 - 2012-04-16T11:05:21.295+02:00 + 2012-05-07T14:09:29.873+02:00 FH-Complete 2.0 <?xml-stylesheet type="text/xsl" href="FHCompleteTDM3PG83.xsl"?> @@ -108944,6 +108944,47 @@ ALTER TABLE tbl_mitarbeiter ALTER COLUMN personalnummer DROP NOT NULL; 0 + + {7EC34B37-9010-4C66-8563-DAA3AACE6162} + zugangscode + 0 + {BCE7DB0D-E8EA-4378-96C1-6A4D8224B1E5} + 0 + 0 + 0 + 0 + 1 + + + + + 16 + + 0 + + 0 + 0 + zugangscode + 0 + + + + + + + + + + {ECB8F02F-B683-4252-8508-ED9D064C9AF3} + + + + + + + + 0 + diff --git a/system/checksystem.php b/system/checksystem.php index 0f2ddec9c..4a485656c 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3558,6 +3558,19 @@ if(!@$db->db_query("SELECT 1 from public.tbl_preoutgoing LIMIT 1")) echo 'PreOutgoing Modul hinzugefuegt!
'; } +// Zugangscode fuer Reihungstest +if(!@$db->db_query("SELECT zugangscode FROM public.tbl_reihungstest LIMIT 1")) +{ + $qry = " + ALTER TABLE public.tbl_reihungstest ADD COLUMN zugangscode varchar(16); + UPDATE public.tbl_reihungstest SET zugangscode=trunc(random()*100000); + "; + + if(!$db->db_query($qry)) + echo 'public.tbl_reihungstest: '.$db->db_last_error().'
'; + else + echo 'Tabelle public.tbl_reihungstest Spalte zugangscode hinzugefuegt!
'; +} echo '
'; $tabellen=array( @@ -3710,7 +3723,7 @@ $tabellen=array( "public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat"), "public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id"), "public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung"), - "public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id"), + "public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","zugangscode"), "public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id"), "public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"), "public.tbl_sprache" => array("sprache","locale","flagge","index","content","bezeichnung"), diff --git a/vilesci/stammdaten/reihungstestverwaltung.php b/vilesci/stammdaten/reihungstestverwaltung.php index 5b5f80f8f..8dad637ed 100644 --- a/vilesci/stammdaten/reihungstestverwaltung.php +++ b/vilesci/stammdaten/reihungstestverwaltung.php @@ -64,6 +64,7 @@ $studiengang = new studiengang(); $studiengang->getAll('typ, kurzbz', false); + //Studierende als Excel Exportieren if(isset($_GET['excel'])) { $reihungstest = new reihungstest(); @@ -197,11 +198,11 @@ echo ' - Reihungstest - - - - + Reihungstest + + + +

Reihungstest - Verwaltung

'; @@ -236,7 +237,7 @@ } if($_POST['uhrzeit']!='' && !$datum_obj->checkUhrzeit($_POST['uhrzeit'])) { - echo 'Uhrzeit ist ungueltig:'.$_POST['uhrzeit'].'. Die Uhrzeit muss im Format HH:MM:SS angegeben werden!
'; + echo 'Uhrzeit ist ungueltig. Die Uhrzeit muss im Format HH:MM:SS angegeben werden!
'; $error = true; } @@ -258,7 +259,7 @@ } else { - echo 'Fehler beim Speichern der Daten: '.$reihungstest->errormsg.''; + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; } } $neu=false; @@ -279,7 +280,7 @@ } else { - echo '
Sie haben keine Berechtigung zur Uebernahme der Punkte fuer '.$row->nachname.' '.$row->vorname.'
'; + echo '
Sie haben keine Berechtigung zur Uebernahme der Punkte fuer '.$db->convert_html_chars($row->nachname).' '.$db->convert_html_chars($row->vorname).'
'; } } @@ -287,15 +288,15 @@ if(isset($_GET['type']) && $_GET['type']=='saveallrtpunkte') { $errormsg=''; - $qry = "SELECT prestudent_id, studiengang_kz, nachname, vorname - FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) - WHERE reihungstest_id='".addslashes($reihungstest_id)."'"; + $qry = "SELECT prestudent_id, tbl_prestudent.studiengang_kz, nachname, vorname, tbl_studiengang.oe_kurzbz, + FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE reihungstest_id=".$db->db_add_param($reihungstest_id, FHC_INTEGER); // AND (rt_punkte1='' OR rt_punkte1 is null)"; if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { - if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('assistenz', $row->studiengang_kz, 'suid')) + if($rechte->isBerechtigt('student/stammdaten', $row->oe_kurzbz,'suid')) { $prestudent = new prestudent(); $prestudent->load($row->prestudent_id); @@ -316,16 +317,13 @@ } if($errormsg!='') { - echo ''.$errormsg.''; + echo ''.$db->convert_html_chars($errormsg).''; } } } echo '
"; echo "
'; - //Studiengang DropDown - //$studiengang = new studiengang(); - //$studiengang->getAll('typ, kurzbz', false); echo ""; @@ -365,9 +363,9 @@ else $selected=''; - echo ""; + echo ''; } - echo ""; + echo ''; echo ""; echo ""; @@ -384,7 +382,7 @@ if(!$neu) { if(!$reihungstest->load($reihungstest_id)) - die('Reihungstest existiert nicht: '.$reihungstest_id); + die('Reihungstest existiert nicht'); } else { @@ -401,9 +399,13 @@ echo '
'; echo "
"; echo ""; + + echo ""; + if($reihungstest->zugangscode!='') + echo ''; //Studiengang DropDown - echo "
Zugangscode:'.$db->convert_html_chars($reihungstest->zugangscode).'
"; @@ -440,12 +442,12 @@ else $selected=''; - echo ""; + echo ""; } echo ''; - echo ''; + echo ''; echo ''; - echo ''; + echo ''; if(!$neu) $val = 'Änderung Speichern'; else @@ -470,7 +472,7 @@ (SELECT ausbildungssemester FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND datum=(SELECT MAX(datum) FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND status_kurzbz='Interessent') LIMIT 1) as ausbildungssemester FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) - WHERE reihungstest_id='$reihungstest_id' + WHERE reihungstest_id=".$db->db_add_param($reihungstest_id, FHC_INTEGER)." ORDER BY nachname, vorname"; $mailto = ''; if($result = $db->db_query($qry)) @@ -512,19 +514,19 @@ } } - echo " + echo ' - - - - - - - - - - - "; + + + + + + + + + + + '; $mailto.= ($mailto!=''?',':'').$row->email; }
Studiengang
Studiengang
Anmerkung
Anmerkung
Datum
Uhrzeit (Format: HH:MM:SS)
Uhrzeit (Format: HH:MM:SS)
$row->prestudent_id$row->vorname$row->nachname".$stg_arr[$row->studiengang_kz]."$row->ausbildungssemester".$datum_obj->convertISODate($row->gebdatum)."$row->email$rt_in_anderen_stg".($rtergebnis==0?'-':number_format($rtergebnis,2,'.',''))."".($rtergebnis!=0 && $row->rt_punkte1==''?'übertragen':$row->rt_punkte1)."
'.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($datum_obj->convertISODate($row->gebdatum)).''.$db->convert_html_chars($row->email).''.$db->convert_html_chars($rt_in_anderen_stg).''.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).''.($rtergebnis!=0 && $row->rt_punkte1==''?'übertragen':$row->rt_punkte1).'