mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-10 00:29:27 +00:00
Fixed SQL Injection Problem
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
*/
|
||||
/*******************************************************************************************************
|
||||
* projektabgabe
|
||||
* projektabgabe ermöglicht den Download aller Abgaben eines Stg.
|
||||
* projektabgabe ermöglicht den Download aller Abgaben eines Stg.
|
||||
* fuer Diplom- und Bachelorarbeiten
|
||||
*******************************************************************************************************/
|
||||
|
||||
@@ -53,12 +53,12 @@ if(!is_numeric($stg_kz) && $stg_kz!='')
|
||||
|
||||
$abgabetyp=(isset($_REQUEST['abgabetyp'])?$_REQUEST['abgabetyp']:'');
|
||||
$termin=(isset($_REQUEST['termin'])?$_REQUEST['termin']:'');
|
||||
|
||||
|
||||
$htmlstr='';
|
||||
$datum_obj = new datum();
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
$rechte->getBerechtigungen($user);
|
||||
$berechtigung_kurzbz = 'lehre/abgabetool:download';
|
||||
|
||||
if(isset($_GET['id']) && isset($_GET['uid']))
|
||||
@@ -67,14 +67,14 @@ if(isset($_GET['id']) && isset($_GET['uid']))
|
||||
{
|
||||
if(!is_numeric($_GET['id']) || $_GET['id']=='')
|
||||
die($p->t('global/fehlerBeiDerParameteruebergabe'));
|
||||
|
||||
|
||||
$file = $_GET['id'].'_'.$_GET['uid'].'.pdf';
|
||||
$filename = PAABGABE_PATH.$file;
|
||||
header('Content-Type: application/octet-stream');
|
||||
header('Content-disposition: attachment; filename="'.$file.'"');
|
||||
readfile($filename);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
die($p->t('global/keineBerechtigungFuerDieseSeite'));
|
||||
}
|
||||
@@ -84,8 +84,7 @@ if(isset($_GET['id']) && isset($_GET['uid']))
|
||||
|
||||
if($aktion!='zip')
|
||||
{
|
||||
echo '
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
echo '<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>'.$p->t('abgabetool/projektabgabeUebersicht').'</title>
|
||||
@@ -97,22 +96,22 @@ if($aktion!='zip')
|
||||
<script src="../../../include/js/jquery.autocomplete.js" type="text/javascript"></script>
|
||||
<script src="../../../include/js/jquery.autocomplete.min.js" type="text/javascript"></script>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[5,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<H1>'.$p->t('abgabetool/projektabgabeUebersicht').'</H1>';
|
||||
|
||||
|
||||
$s = new studiengang();
|
||||
$s->loadArray($rechte->getStgKz($berechtigung_kurzbz),'typ,kurzbz');
|
||||
|
||||
|
||||
echo'<form method="GET" action="'.$_SERVER['PHP_SELF'].'" name="abgabeFrm">';
|
||||
|
||||
echo $p->t('global/studiengang').": <SELECT onchange='set_termin();' id='stg_kz' name='stg_kz'>";
|
||||
@@ -135,27 +134,24 @@ if($aktion!='zip')
|
||||
}
|
||||
}
|
||||
echo "</SELECT>";
|
||||
|
||||
|
||||
$qry_termin=" SELECT distinct campus.tbl_paabgabe.datum as termin , to_char(campus.tbl_paabgabe.datum, 'DD-MM-YYYY') as termin_anzeige
|
||||
FROM lehre.tbl_projektarbeit
|
||||
JOIN campus.tbl_paabgabe USING(projektarbeit_id)
|
||||
LEFT JOIN public.tbl_benutzer ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id)
|
||||
LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
|
||||
|
||||
";
|
||||
//AND public.tbl_benutzer.aktiv
|
||||
if ($stg_kz!='')
|
||||
$qry_termin.=" AND public.tbl_studiengang.studiengang_kz='$stg_kz'";
|
||||
if ($abgabetyp!='')
|
||||
$qry_termin.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz='$abgabetyp'";
|
||||
$qry_termin.=" ORDER BY termin desc";
|
||||
|
||||
|
||||
$qry_termin=" SELECT distinct campus.tbl_paabgabe.datum as termin , to_char(campus.tbl_paabgabe.datum, 'DD-MM-YYYY') as termin_anzeige
|
||||
FROM lehre.tbl_projektarbeit
|
||||
JOIN campus.tbl_paabgabe USING(projektarbeit_id)
|
||||
LEFT JOIN public.tbl_benutzer ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id)
|
||||
LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
|
||||
";
|
||||
//AND public.tbl_benutzer.aktiv
|
||||
if ($stg_kz!='')
|
||||
$qry_termin.=" AND public.tbl_studiengang.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER);
|
||||
if ($abgabetyp!='')
|
||||
$qry_termin.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz=".$db->db_add_param($abgabetyp);
|
||||
$qry_termin.=" ORDER BY termin desc";
|
||||
|
||||
echo ' '.$p->t('abgabetool/termin').' <select name="termin" id="termin">
|
||||
<option value="" '. (!isset($_REQUEST['termin']) || empty($termin)?' selected ':'') .'>-'.$p->t('global/alle').'-</option> ';
|
||||
if($result_termin=$db->db_query($qry_termin))
|
||||
@@ -166,37 +162,37 @@ if($aktion!='zip')
|
||||
}
|
||||
}
|
||||
echo '</select>';
|
||||
|
||||
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
function set_termin()
|
||||
<script type="text/javascript">
|
||||
function set_termin()
|
||||
{
|
||||
$('#termin').children().remove().end();
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
type: "POST",
|
||||
url: 'projektabgabe_autocomplete.php',
|
||||
dataType: 'json',
|
||||
data: "work=work_termin_select" + "&stg_kz=" + $('#stg_kz').val() + "&abgabetyp=" + $('#abgabetyp').val(),
|
||||
success: function(json)
|
||||
{
|
||||
var output = '';
|
||||
for (p in json)
|
||||
{
|
||||
$('#termin').children().remove().end();
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
type: "POST",
|
||||
url: 'projektabgabe_autocomplete.php',
|
||||
dataType: 'json',
|
||||
data: "work=work_termin_select" + "&stg_kz=" + $('#stg_kz').val() + "&abgabetyp=" + $('#abgabetyp').val(),
|
||||
success: function(json)
|
||||
{
|
||||
var output = '';
|
||||
for (p in json)
|
||||
{
|
||||
output += '<option value=\"' + json[p].oTermin + '\">' + json[p].oTerminAnzeige + '<\/option>\n';
|
||||
}
|
||||
$('#termin').html(output);
|
||||
$('#termin').result(function(event, data, formatted) {}).focus();
|
||||
}
|
||||
}
|
||||
);
|
||||
output += '<option value=\"' + json[p].oTermin + '\">' + json[p].oTerminAnzeige + '<\/option>\n';
|
||||
}
|
||||
</script>
|
||||
$('#termin').html(output);
|
||||
$('#termin').result(function(event, data, formatted) {}).focus();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
echo " <INPUT type='submit' name='ok' value='".$p->t('global/anzeigen')."' onclick=\"f=document.abgabeFrm;f.aktion.value='';\"> <INPUT type='button' value='ZIP' onclick=\"f=document.abgabeFrm;f.aktion.value='zip';f.submit();\"></FORM><br>";
|
||||
}
|
||||
|
||||
|
||||
##if($stg_kz!='' || $abgabetyp!='' || $termin!='')
|
||||
|
||||
if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']=='zip'))
|
||||
@@ -207,20 +203,20 @@ if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']=
|
||||
{
|
||||
die($p->t('global/studiengangKonnteNichtGefundenWerden'));
|
||||
}
|
||||
|
||||
|
||||
if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt($berechtigung_kurzbz, $s->oe_kurzbz))
|
||||
{
|
||||
$qry="";
|
||||
|
||||
$qry.=" SELECT public.tbl_studiengang.bezeichnung as stgbez, campus.tbl_paabgabe.datum as termin,* FROM lehre.tbl_projektarbeit
|
||||
|
||||
$qry.=" SELECT public.tbl_studiengang.bezeichnung as stgbez, campus.tbl_paabgabe.datum as termin,* FROM lehre.tbl_projektarbeit
|
||||
JOIN campus.tbl_paabgabe USING(projektarbeit_id)
|
||||
LEFT JOIN public.tbl_benutzer ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_benutzer ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id)
|
||||
LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
|
||||
|
||||
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
|
||||
|
||||
";
|
||||
|
||||
if ($stg_kz!='')
|
||||
@@ -233,7 +229,7 @@ if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']=
|
||||
|
||||
if($stg_kz=='' && $abgabetyp=='' && $termin=='')
|
||||
{
|
||||
$qry.=" limit 100 ";
|
||||
$qry.=" limit 100 ";
|
||||
}
|
||||
|
||||
if(!$erg=$db->db_query($qry))
|
||||
@@ -261,7 +257,7 @@ if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']=
|
||||
{
|
||||
$htmlstr .= " <td align=center><a href='".$_SERVER['PHP_SELF']."?id=".$row->paabgabe_id."&uid=$row->uid' target='_blank'><img src='../../../skin/images/pdf.ico' alt='PDF' title='abgegebene Datei' border=0></a></td>";
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td> </td>";
|
||||
}
|
||||
@@ -279,16 +275,16 @@ if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']=
|
||||
{
|
||||
$zipfile = $row->paabgabe_id.'_'.$row->uid.'.pdf';
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$zipfile .= " ".$row->paabgabe_id.'_'.$row->uid.'.pdf';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$htmlstr .= "</tbody></table>";
|
||||
}
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
die($p->t('global/keineBerechtigungFuerDieseSeite'));
|
||||
}
|
||||
@@ -317,18 +313,18 @@ else
|
||||
header('Content-Type: application/octet-stream');
|
||||
header('Content-disposition: attachment; filename="Abgabe_'.$s->kuerzel.'.zip"');
|
||||
$handle = fopen($zipausgabe, "rb");
|
||||
|
||||
while (!feof($handle))
|
||||
|
||||
while (!feof($handle))
|
||||
{
|
||||
echo fread($handle, 1024);
|
||||
}
|
||||
|
||||
|
||||
fclose($handle);
|
||||
|
||||
//echo file_get_contents($zipausgabe);
|
||||
unlink($zipausgabe);
|
||||
unlink($zipausgabe);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
echo $p->t('global/dateiExistiertNicht');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user