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
'; }else{ # echo $dateiname.' konnte nichtgelöscht werden
'; } } } } # 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 '
', print_r($_POST, true), '
'; $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 ""; exit; } # Tabelle bpm_parameter $size_mb = trim(get_parameter(12)); $size_bt = $size_mb * 1024 * 1024; if ($size > $size_bt) { echo ""; 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 ""; exit; } else { # Abbruch, datei nicht gelöscht echo ""; 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
"; $smarty->assign('index_error', 1); } } else { # Ergebnisse gibt es schon, kein insert $hinweis['hinweis'] = "TAN: " . $tan . " Ergebnisse schon gespeichert
"; $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)
"; $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"); ?>