275 lines
9.2 KiB
PHP
275 lines
9.2 KiB
PHP
<?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 == '') {
|
|
# 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>';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$result_ct = $db->query("SELECT count(*) Anz FROM bpm_tanpool where verw_dat = '0000-00-00 00:00:00'");
|
|
$row_ct = $result_ct->fetch_array();
|
|
$smarty->assign('tanimp_anzahltan', "$row_ct[Anz]");
|
|
|
|
# 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'] . "?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'] . "?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
|
|
|
|
|
|
# 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
|
|
if(!isset($zaehler) or $zaehler == 1){
|
|
$zaehler = 0;
|
|
}else{
|
|
$zaehler = 1;
|
|
}
|
|
|
|
$tan = $data[3];
|
|
$tinyurl = $data[4];
|
|
|
|
$row1['zaehler'] = $zaehler;
|
|
$row1['tan'] = $tan;
|
|
$row1['tinyurl'] = $tinyurl;
|
|
$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'] . "?error=3\">";
|
|
exit;
|
|
} else {
|
|
# Abbruch, datei nicht gelöscht
|
|
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=4\">";
|
|
exit;
|
|
} // End if
|
|
|
|
} elseif ($_POST['import'] == "1") // DS sollen importiert werden
|
|
{
|
|
$handle = fopen("$verz$neu", "r"); // Datei zum Lesen öffnen
|
|
|
|
|
|
while (($data = fgetcsv($handle, 0, $trennzeichen_excel)) !== FALSE) { // Daten werden aus der Datei in ein Array $data gelesen
|
|
|
|
$dummy_vorname = $data[0];
|
|
$dummy_name = $data[1];
|
|
$tan = $data[3];
|
|
$tinyurl = $data[4];
|
|
|
|
$result_ct = $db->query("SELECT count(*) Anz
|
|
FROM bpm_tanpool
|
|
WHERE tan = '$tan'");
|
|
$row_ct = $result_ct->fetch_array();
|
|
|
|
if ($row_ct['Anz'] == 0) {
|
|
# keine TANs vorhanden, insert
|
|
|
|
$sql1 = $db->query("insert into bpm_tanpool (dummy_name
|
|
, dummy_vorname
|
|
, tan
|
|
, tinyurl
|
|
, aktiv)
|
|
VALUES ( '$dummy_name'
|
|
, '$dummy_vorname'
|
|
, '$tan'
|
|
, '$tinyurl'
|
|
, 'A'
|
|
)");
|
|
if (!$sql1) {
|
|
$hinweis['hinweis'] = "TAN: " . $tan . " Fehler: TAN nicht gespeichert<br>";
|
|
$smarty->assign('index_error', 1);
|
|
}
|
|
} else {
|
|
# Ergebnisse gibt es schon, kein insert
|
|
$hinweis['hinweis'] = "TAN: " . $tan . " schon vorhanden<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");
|
|
|
|
?>
|