first commit
This commit is contained in:
402
admin/old/upload.php
Normal file
402
admin/old/upload.php
Normal file
@ -0,0 +1,402 @@
|
||||
<?php
|
||||
if(!isset($_SESSION)) { session_start(); }
|
||||
include_once '../classes/TestProjektSmarty.class_subdir.php';
|
||||
require_once("../config.inc.php");
|
||||
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
|
||||
$smarty = new SmartyAdmin();
|
||||
require_once("../language/german.inc.php");
|
||||
require_once("../func_get_parameter.php");
|
||||
require_once("../config/func_cryption.php");
|
||||
|
||||
if (isset($_GET['action'])) {
|
||||
$action = $_GET['action'];
|
||||
} else {
|
||||
$action = '';
|
||||
}
|
||||
|
||||
|
||||
#########Konfiguration#######################################
|
||||
$verz = "upload_csv/"; // relatives Uploadverzeichnis (relativ zum 'Standort' dieser Datei, wohin die Dateien kopiert werden sollen
|
||||
$trennzeichen_excel = "\t"; // Das Trennzeichen das Excel für CVS-Dateien nimmt ist je nach Excelversion unterschiedlich:
|
||||
// Entweder $trennzeichen_excel = ";"; --> Semikolon
|
||||
// oder $trennzeichen_excel = ","; --> Komma
|
||||
#############################################################
|
||||
|
||||
|
||||
|
||||
|
||||
$_SESSION["ck_verz"] = $verz;
|
||||
|
||||
|
||||
if ($action == '') {
|
||||
|
||||
$german = $db->query("SET lc_time_names = 'de_DE';");
|
||||
|
||||
$query1 = "SELECT a.tm_id, date_format(tm_datum, '%a, %d.%m.%Y - %H:%i Uhr')tm_datum_form, tm_standort
|
||||
FROM bpm_termine a, bpm_term_kand b
|
||||
WHERE a.tm_id=b.tm_id
|
||||
AND a.tm_datum > ADDDATE(now(), -7)
|
||||
GROUP BY a.tm_id, tm_datum_form, tm_standort
|
||||
ORDER BY tm_datum ASC";
|
||||
|
||||
$result1 = $db->query($query1) or die("Cannot execute query1");
|
||||
|
||||
|
||||
while ($row1 = $result1->fetch_array()) {
|
||||
|
||||
if ($row1['tm_standort'] == 'L') {
|
||||
$standort = 'Ludwigsburg';
|
||||
}
|
||||
if ($row1['tm_standort'] == 'K') {
|
||||
$standort = 'Kehl';
|
||||
}
|
||||
|
||||
$row1['tm_standort'] = $standort;
|
||||
$table_data1[] = $row1;
|
||||
}
|
||||
$smarty->assign('table_data1', $table_data1);
|
||||
}
|
||||
|
||||
if ($action == 'upload') {
|
||||
# Den Testtermin wählt man, damit jede Hochschule seine eigenen Daten importieren kann. Wenn eine Hochschule am selben TAg einen Test hat vermeidet man dass ein halbfertiger Test importiert wird
|
||||
if (isset($_POST["testtermin"])) {
|
||||
$testtermin = $_POST["testtermin"];
|
||||
} else {
|
||||
$testtermin = $_SESSION["testtermin"];
|
||||
}
|
||||
|
||||
$_SESSION["testtermin"] = $testtermin;
|
||||
|
||||
|
||||
# Uploadverzeichnis aufräumen. Temporäre Dateien, die älter als 2 Wochen sind, werden gelöscht
|
||||
$dir = $_SERVER["DOCUMENT_ROOT"].dirname($_SERVER['PHP_SELF'])."/$verz";
|
||||
$folder = dir($dir);
|
||||
while ($dateiname = $folder->read()) {
|
||||
if (filetype($dir.$dateiname) != "dir") {
|
||||
if (strtotime("-2 weeks") >
|
||||
@filemtime($dir.$dateiname)) {
|
||||
if (@unlink($dir.$dateiname) != false){
|
||||
# echo $dateiname.' wurde gelöscht<br>';
|
||||
}else{
|
||||
# echo $dateiname.' konnte nichtgelöscht werden<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Fehler beim Upload anzeigen
|
||||
if (isset($_GET['error'])) {
|
||||
|
||||
$errorno = $_GET['error'];
|
||||
$smarty->assign('index_error', 1);
|
||||
|
||||
if ($errorno == 1) {
|
||||
$smarty->assign('index_error_text', "Es dürfen nur CSV Dateien hochgeladen werden.");
|
||||
}
|
||||
if ($errorno == 2) {
|
||||
# Tabelle bpm_parameter
|
||||
$size_mb = trim(get_parameter(12));
|
||||
$smarty->assign('index_error_text', "Die Datei ist zu groß. Die Dateigröße darf max. $size_mb MB betragen.");
|
||||
}
|
||||
if ($errorno == 3) {
|
||||
$smarty->assign('index_error_text', "Vorgang wurde abgebrochen. Die Datei wurde vom Server gelöscht");
|
||||
}
|
||||
if ($errorno == 4) {
|
||||
$smarty->assign('index_error_text', "Vorgang wurde abgebrochen. Die Datei wurde nicht vom Server gelöscht");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == 'csvimp') {
|
||||
|
||||
$testtermin = $_SESSION["testtermin"];
|
||||
|
||||
// http://www.tutorials.de/tutorials65420.html
|
||||
#echo '<pre>', print_r($_POST, true), '</pre>';
|
||||
|
||||
$tempname = $_FILES['file']['tmp_name'];
|
||||
$name = $_FILES['file']['name'];
|
||||
|
||||
$type = $_FILES['file']['type'];
|
||||
$size = $_FILES['file']['size'];
|
||||
$einheit = "Byte"; // Für die Efolgsmeldung.
|
||||
|
||||
$limitedext = array(
|
||||
".csv"
|
||||
); //Erlaubte Dateieindung beim Upload
|
||||
|
||||
$extlimit = "yes"; //Do you want to limit the extensions of files uploaded
|
||||
$ext = strrchr($name, '.');
|
||||
|
||||
if (($extlimit == "yes") && (!in_array($ext, $limitedext))) {
|
||||
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=upload&error=1\">";
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
# Tabelle bpm_parameter
|
||||
$size_mb = trim(get_parameter(12));
|
||||
$size_bt = $size_mb * 1024 * 1024;
|
||||
|
||||
if ($size > $size_bt) {
|
||||
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=upload&error=2\">";
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
$name = str_replace(array(
|
||||
"ä",
|
||||
"ö",
|
||||
"ü",
|
||||
"ß",
|
||||
"Ä",
|
||||
"Ö",
|
||||
"Ü",
|
||||
" "
|
||||
), array(
|
||||
"ae",
|
||||
"oe",
|
||||
"ue",
|
||||
"ss",
|
||||
"Ae",
|
||||
"Oe",
|
||||
"Ue",
|
||||
"_"
|
||||
), $name);
|
||||
$heute = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum & Zeit: http://de2.php.net/manual/de/function.date.php
|
||||
$heuteformat = date("H-i-s_Y-m-d", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
|
||||
$datum_db = date("Y-m-d H:i:s", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
|
||||
$neu = $heuteformat . "_" . $name;
|
||||
$_SESSION["ck_neu"] = $neu;
|
||||
move_uploaded_file("$tempname", "$verz$neu"); // Unterverzeichnisse wie folgt: copy("$tempname", "pdf/$neu");
|
||||
|
||||
$handle = fopen("$verz$neu", "r"); // Datei zum Lesen öffnen
|
||||
|
||||
# Bestehnswert 65 Punkte
|
||||
$bestehenswert = trim(get_parameter(11));
|
||||
|
||||
# Hier vor der Schleife erste Zeile holen und ignorieren. Enthält Überschrift
|
||||
fgetcsv($handle, 0, $trennzeichen_excel);
|
||||
|
||||
while (($data = fgetcsv($handle, 0, $trennzeichen_excel)) !== FALSE) { // Daten werden aus der Datei in ein Array $data gelesen
|
||||
#2020-02-23T17:44:56
|
||||
$tag = substr($data[11], 8, 2);
|
||||
$monat = substr($data[11], 5, 2);
|
||||
$jahr = substr($data[11], 0, 4);
|
||||
$std = substr($data[11], 11, 2);
|
||||
$min = substr($data[11], 14, 2);
|
||||
$sek = substr($data[11], 17, 2);
|
||||
$datum = "$tag.$monat.$jahr - $std:$min:$sek";
|
||||
$datum_db = "$jahr-$monat-$tag";
|
||||
$tan = $data[7];
|
||||
|
||||
$result_ct = $db->query("SELECT concat(vorname,' ', nachname) name, date_format(tm_datum, '%Y-%m-%d') tm_datum
|
||||
FROM bpm_kandidat a, bpm_term_kand b, bpm_termine c, bpm_tanpool d
|
||||
WHERE a.ka_id = b.ka_id
|
||||
AND b.tm_id = c.tm_id
|
||||
AND b.tp_id = d.tp_id
|
||||
AND d.tan = '$tan'
|
||||
AND c.tm_id = $testtermin");
|
||||
$row_ct = $result_ct->fetch_array();
|
||||
|
||||
if ($row_ct['name'] != '' AND $row_ct['tm_datum'] == $datum_db) {
|
||||
|
||||
$satzerg_raw = $data[13];
|
||||
#$analogie_raw = $data[14];
|
||||
$gemeinsamkeiten_raw = $data[15];
|
||||
$rechenaufgaben_raw = $data[16];
|
||||
$zahlenreihen_raw = $data[17];
|
||||
$rechenzeichen_raw = $data[18];
|
||||
$matrizen_raw = $data[21];
|
||||
$merkf_raw = $data[26];
|
||||
|
||||
$row1['tan'] = $tan;
|
||||
$row1['name'] = $row_ct['name'];
|
||||
$row1['datum'] = $datum;
|
||||
$row1['satzerg_raw'] = $satzerg_raw;
|
||||
#$row1['analogie_raw'] = $analogie_raw;
|
||||
$row1['gemeinsamkeiten_raw'] = $gemeinsamkeiten_raw;
|
||||
$row1['rechenaufgaben_raw'] = $rechenaufgaben_raw;
|
||||
$row1['zahlenreihen_raw'] = $zahlenreihen_raw;
|
||||
$row1['rechenzeichen_raw'] = $rechenzeichen_raw;
|
||||
$row1['matrizen_raw'] = $matrizen_raw;
|
||||
$row1['merkf_raw'] = $merkf_raw;
|
||||
|
||||
# In die Berechnung fliest verb/num Intelligenz nicht mit ein. Das sind interne Berechnungen und keine Testaufgaben
|
||||
$summe = $satzerg_raw + $gemeinsamkeiten_raw + $rechenaufgaben_raw + $zahlenreihen_raw + $rechenzeichen_raw + $matrizen_raw + $merkf_raw;
|
||||
|
||||
$row1['summe'] = $summe;
|
||||
if ($summe >= $bestehenswert) {
|
||||
$bestanden = 1;
|
||||
} else {
|
||||
$bestanden = 0;
|
||||
}
|
||||
$row1['bestanden'] = $bestanden;
|
||||
$table_data1[] = $row1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$smarty->assign('table_data1', $table_data1);
|
||||
fclose($handle);
|
||||
|
||||
}
|
||||
|
||||
if ($action == 'csvimp2') {
|
||||
$neu = $_SESSION["ck_neu"]; //CSV-Dateinamen um Datei löschen zu können
|
||||
$verz = $_SESSION["ck_verz"]; //Uploadverzeichnis aus Cookie holen
|
||||
$testtermin = $_SESSION["testtermin"];
|
||||
|
||||
|
||||
if ($_POST['import'] == "0") // DS sollen nicht importiert werden
|
||||
{
|
||||
$dateiname = "$verz$neu";
|
||||
if (@unlink($dateiname)) // Funktion löscht Dateien und gibt true / false zurück
|
||||
{
|
||||
# Abbruch, datei gelöscht
|
||||
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=upload&error=3\">";
|
||||
exit;
|
||||
} else {
|
||||
# Abbruch, datei nicht gelöscht
|
||||
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=upload&error=4\">";
|
||||
exit;
|
||||
} // End if
|
||||
|
||||
} elseif ($_POST['import'] == "1") // DS sollen importiert werden
|
||||
{
|
||||
$handle = fopen("$verz$neu", "r"); // Datei zum Lesen öffnen
|
||||
|
||||
# Bestehnswert 65 Punkte
|
||||
$bestehenswert = trim(get_parameter(11));
|
||||
|
||||
# Hier vor der Schleife erste Zeile holen und ignorieren. Enthält Überschrift
|
||||
fgetcsv($handle, 0, $trennzeichen_excel);
|
||||
|
||||
while (($data = fgetcsv($handle, 0, $trennzeichen_excel)) !== FALSE) { // Daten werden aus der Datei in ein Array $data gelesen
|
||||
|
||||
#2020-02-23T17:44:56
|
||||
$tag = substr($data[11], 8, 2);
|
||||
$monat = substr($data[11], 5, 2);
|
||||
$jahr = substr($data[11], 0, 4);
|
||||
$std = substr($data[11], 11, 2);
|
||||
$min = substr($data[11], 14, 2);
|
||||
$sek = substr($data[11], 17, 2);
|
||||
$datum = "$tag.$monat.$jahr - $std:$min:$sek";
|
||||
$datum_db = "$jahr-$monat-$tag";
|
||||
$tan = $data[7];
|
||||
|
||||
$result_ct = $db->query("SELECT a.ka_id, concat(vorname,' ', nachname) name, date_format(tm_datum, '%Y-%m-%d') tm_datum
|
||||
FROM bpm_kandidat a, bpm_term_kand b, bpm_termine c, bpm_tanpool d
|
||||
WHERE a.ka_id = b.ka_id
|
||||
AND b.tm_id = c.tm_id
|
||||
AND b.tp_id = d.tp_id
|
||||
AND d.tan = '$tan'
|
||||
AND c.tm_id = $testtermin");
|
||||
$row_ct = $result_ct->fetch_array();
|
||||
|
||||
if ($row_ct['name'] != '' AND $row_ct['tm_datum'] == $datum_db) {
|
||||
|
||||
$satzerg_raw = $data[13];
|
||||
#$analogie_raw = $data[14];
|
||||
$gemeinsamkeiten_raw = $data[15];
|
||||
$rechenaufgaben_raw = $data[16];
|
||||
$zahlenreihen_raw = $data[17];
|
||||
$rechenzeichen_raw = $data[18];
|
||||
$matrizen_raw = $data[21];
|
||||
$merkf_raw = $data[26];
|
||||
$summe = $satzerg_raw + $gemeinsamkeiten_raw + $rechenaufgaben_raw + $zahlenreihen_raw + $rechenzeichen_raw + $matrizen_raw + $merkf_raw;
|
||||
if ($summe >= $bestehenswert) {
|
||||
$bestanden = 1;
|
||||
} else {
|
||||
$bestanden = 0;
|
||||
# Tan Inaktiv setzen
|
||||
$result_1 = $db->query("UPDATE bpm_tanpool
|
||||
SET aktiv='I'
|
||||
WHERE tan = '$tan'");
|
||||
}
|
||||
$result_ct1 = $db->query("SELECT count(*) Anz
|
||||
FROM bpm_ergebnisse
|
||||
WHERE ka_id = $row_ct[ka_id]
|
||||
AND tan = '$tan'");
|
||||
$row_ct1 = $result_ct1->fetch_array();
|
||||
if ($row_ct1['Anz'] == 0) {
|
||||
# keine Ergebnisse vorhanden, insert
|
||||
|
||||
$sql1 = $db->query("insert into bpm_ergebnisse (ka_id
|
||||
, tan
|
||||
, satzerg
|
||||
, gemeinsamkeiten
|
||||
, rechenaufgaben
|
||||
, zahlenreihen
|
||||
, rechenzeichen
|
||||
, matrizen
|
||||
, merkf
|
||||
, summe
|
||||
, bestanden)
|
||||
VALUES ('$row_ct[ka_id]'
|
||||
, '$tan'
|
||||
, '$satzerg_raw'
|
||||
, '$gemeinsamkeiten_raw'
|
||||
, '$rechenaufgaben_raw'
|
||||
, '$zahlenreihen_raw'
|
||||
, '$rechenzeichen_raw'
|
||||
, '$matrizen_raw'
|
||||
, '$merkf_raw'
|
||||
, '$summe'
|
||||
, '$bestanden')");
|
||||
if (!$sql1) {
|
||||
$hinweis['hinweis'] = "TAN: " . $tan . " Fehler: Ergebnis nicht gespeichert<br>";
|
||||
$smarty->assign('index_error', 1);
|
||||
}
|
||||
} else {
|
||||
# Ergebnisse gibt es schon, kein insert
|
||||
$hinweis['hinweis'] = "TAN: " . $tan . " Ergebnisse schon gespeichert<br>";
|
||||
$smarty->assign('index_error', 1);
|
||||
}
|
||||
|
||||
} else {
|
||||
# Testdatum stimmt nicht, kein Student gefunden
|
||||
$hinweis['hinweis'] = "TAN: " . $tan . " in der CSV gehört nicht zu diesem Datum (Kein Fehler)<br>";
|
||||
$smarty->assign('index_error', 1);
|
||||
}
|
||||
$table_data2[] = $hinweis;
|
||||
}
|
||||
$smarty->assign('table_data2', $table_data2);
|
||||
|
||||
|
||||
fclose($handle);
|
||||
|
||||
} else { // Es wurde kein Radiobutton gewählt! Technisch aber ausgeschlossen
|
||||
|
||||
echo "sie müssen eine Auswahl treffen";
|
||||
|
||||
}
|
||||
|
||||
function deleteFiles($verz)
|
||||
{
|
||||
$handle = opendir($verz);
|
||||
while ($file = readdir($handle)) {
|
||||
if ($file != "." && $file != "..") {
|
||||
|
||||
$datei = $verz . $file;
|
||||
|
||||
if (@unlink($datei)) {
|
||||
$error = TRUE;
|
||||
} else {
|
||||
$error = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
return $error;
|
||||
}
|
||||
|
||||
deleteFiles($verz); // Dateien werden im Uploadverzeichnis gelöscht, falls noch welche darin wären
|
||||
|
||||
} // ende Action
|
||||
|
||||
$smarty->assign('action', "$action");
|
||||
$smarty->display("$template/admin/$templatename");
|
||||
|
||||
?>
|
Reference in New Issue
Block a user