Semikolon // oder $trennzeichen_excel = ","; --> Komma ############################################################# ############ ## ## 13.09.2011: Änderung des Passwortformats von dd.mm.jjjj auf ddmmjjjj weil auf der Loginseite das so angegeben ist. ## ############ setcookie("ck_verz", "$verz"); // Verzeichnis in Cookie speichern // Rechteüberprüfung #$db = dbconnect(); if ($user_admin == "") { require("index.php"); exit; } //Wenn man nicht angemeldet ist, darf man nicht auf die Seite if (!rore($user_admin, 'a_import', 'RE')) { echo "Keine Rechte"; exit; } // Rechteüberprüfung ende if (isset($_GET['action'])) $action = $_GET['action']; else $action = ""; switch ($action) { default: $heute = mktime(0, 0, 0, date("m"), date("d"), date("Y")); // heutiges Datum $heute_format = date("Y-m-d", $heute); // ISO-8601 Format wie in der Datenbank: Formatierung für Vergleiche erforderlich 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 echo " Excel Upload

Excel Upload
Import eines Studienjahrgangs.
Erlaubte Dateiendungen: *.xls; *.xlsx



 
 
Musterdatei downloaden
"; break; case "csvimp": // https://www.tutorials.de/tutorials65420.html $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( ".xls", ".xlsx" ); //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))) { $err[] = " Falscher Dateityp

Falscher Dateityp

Es dürfen nur Excel-Dateien hochgeladen werden!

"; } if ($size > "9900000") { $err[] = " Datei zu groß

Datei zu groß

Die Datei welche Sie hochladen wollen, ist zu gross!
Maximale Dateigroesse beträgt 9.900 KB!

"; } $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: https://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; setcookie("ck_neu", "$neu"); If (empty($err)) { move_uploaded_file("$tempname", "$verz$neu"); // Unterverzeichnisse wie folgt: copy("$tempname", "pdf/$neu"); $inputFileName = "$verz$neu"; $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); $sheet = $objPHPExcel->getActiveSheet()->toArray(null, true, false, true); $highestColumm = $objPHPExcel->setActiveSheetIndex(0)->getHighestColumn(); $highestRow = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow(); # Ab dem Tag rechnet Excel intern $datum = '30.12.1899'; echo " Datensätze prüfen

Datensätze prüfen
"; for ($i = 1; $i <= $highestRow; $i++) { $vorname = $sheet[$i]['A']; $nachname = $sheet[$i]['B']; $rel = $sheet[$i]['C']; $eingangsjahr = $sheet[$i]['D']; $klassenzusatz = $sheet[$i]['E']; $gebdat = date('m.d.Y', strtotime($sheet[$i]['F'])); # $gebdat = date("d.m.Y", $sheet[$i]['F']); $gebdatx = $sheet[$i]['F']; # $gebdat = date('d.m.Y', strtotime($datum . ' + ' . $gebdatx . ' days')); $gebdat = substr($gebdatx,0,2).".".substr($gebdatx,3,2).".".substr($gebdatx,6,4); # $gebdat2 = date('Y-m-d', strtotime($datum . ' + ' . $gebdatx . ' days')); $gebdat2 = substr($gebdatx,6,4)."-".substr($gebdatx,3,2)."-".substr($gebdatx,0,2); if ($nachname != '') { print ""; // for ($c=0; $c < $num; $c++) { // FOR-Schleife: Oder Anzahl der zu importierenden Felder ($num) print "\n"; // Vorname print "\n"; // Nachname print "\n"; // religionskenner print "\n"; // Einschulungsjahr print "\n"; // klassenzusatz A,B..; Ergibt dann Klasse 6A z.B. print "\n"; // Geburtsdatum/Passwort // } print ""; $ln_inserts[]++; //zählt die Anzahl der importierenden DS } } echo "
Vorname Nachname Religionspflichtig Einschulungsjahr Klassenzusatz Geburtsdatum
$vorname$nachname$rel$eingangsjahr$klassenzusatz$gebdat

"; $zahl = count($ln_inserts); echo "

Sollen die $zahl Datensätze importiert werden?
Auswahl Markieren
Datensätze nicht importieren
Datensätze importieren
   
 
"; } else { foreach ($err as $error) echo "$error"; exit; } //Ende if error break; case "csvimp2": $neu = $_COOKIE["ck_neu"]; //Excel-Dateinamen um Datei löschen zu können $verz = $_COOKIE["ck_verz"]; //Uploadverzeichnis aus Cookie holen 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 { echo " Import beendet

Importvorgang abgebrochen

Datemsätze wurden nicht importiert!
Die Excel-Datei wurde vom Server gelöscht!



"; } else { echo " Datei nicht gelöscht

Importvorgang abgebrochen

Datemsätze wurden nicht importiert!
Die Excel-Datei ($neu) konnte nicht vom Server gelöscht werden!



"; } // End if } elseif ($_POST['import'] == "1") // DS sollen importiert werden { $inputFileName = "$verz$neu"; $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); $sheet = $objPHPExcel->getActiveSheet()->toArray(null, true, false, true); $highestColumm = $objPHPExcel->setActiveSheetIndex(0)->getHighestColumn(); $highestRow = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow(); # Ab dem Tag rechnet Excel intern $datum = '30.12.1899'; for ($i = 1; $i <= $highestRow; $i++) { $vorname = $sheet[$i]['A']; $nachname = $sheet[$i]['B']; $religionskenner = $sheet[$i]['C']; $eingangsjahr = $sheet[$i]['D']; $klassenzusatz = $sheet[$i]['E']; $gebdat = date('m.d.Y', strtotime($sheet[$i]['F'])); $gebdat = date("d.m.Y", $sheet[$i]['F']); $gebdatx = $sheet[$i]['F']; # $gebdat = date('d.m.Y', strtotime($datum . ' + ' . $gebdatx . ' days')); $gebdat = substr($gebdatx,0,2).".".substr($gebdatx,3,2).".".substr($gebdatx,6,4); # $gebdat2 = date('Y-m-d', strtotime($datum . ' + ' . $gebdatx . ' days')); $gebdat2 = substr($gebdatx,6,4)."-".substr($gebdatx,3,2)."-".substr($gebdatx,0,2); $tag = substr($gebdat2, 8, 2); $mon = substr($gebdat2, 5, 2); $jahr = substr($gebdat2, 0, 4); $passwd = md5("$tag" . "$mon" . "$jahr"); if ($nachname != '') { if ($religionskenner == 'RK' or $religionskenner == 'EV') { $religionspflicht = 'J'; } else { $religionspflicht = 'N'; } $uid = genUser_schueler($vorname, $nachname); //$passwd = mysql_escape_string($passwd); #echo "SELECT count(*) Anz FROM users WHERE vorname='$vorname' AND nachname='$nachname' AND geburtstag='$gebtag'
"; $result_vorh = $db->query("SELECT count(*) Anz FROM users WHERE vorname='$vorname' AND nachname='$nachname' AND geburtstag='$gebtag2'"); $row_vorh = $result_vorh->fetch_array(); if ($row_vorh['Anz'] == 0) { // ACHTUNG: AN DIESER ZEILE NICHTS ÄNDERN, da die erste Zeile des Strings rausgefiltert wird bei der Ausgabe der nichtimportierten DS $insert = "INSERT INTO users (user, vorname, nachname, religionspflicht, religionskenner, jahrgang, klassenzusatz, passwort, geburtstag) VALUES ( lower('$uid') ,'$vorname' ,'$nachname' ,'$religionspflicht' ,'$religionskenner' ,'$eingangsjahr' ,'$klassenzusatz' ,'$passwd' ,'$gebdat2' )"; $sql = $db->query("$insert"); if (!$sql) { # Bei Fehler $unimported[] = $insert[$i]; } } else { $result_vorh1 = $db->query("SELECT user FROM users WHERE vorname='$vorname' AND nachname='$nachname' AND geburtstag='$gebtag'"); $row_vorh1 = $result_vorh1->fetch_array(); $ber_vorh[] = "$row_vorh1[user]'"; } } } $dateiname = "$verz$neu"; if (@unlink($dateiname)) // Funktion löscht Dateien und gibt true / false zurück { if (isset($unimported)) { $imp_err = str_replace(array( "INSERT INTO users (user, vorname, nachname, religionspflicht, religionskenner, jahrgang, passwort, geburtstag) VALUES ( lower('" ), array( "" ), $unimported); } if (sizeof($imp_err) > 0 AND sizeof($ber_vorh) > 0) { # Array zusaamenführen aus bereits vorhandenen Schülern und fehlerhaftem Insert $ausgabe = array_merge($imp_err, $ber_vorh); } if (sizeof($imp_err) > 0 AND sizeof($ber_vorh) == 0) { $ausgabe = $imp_err; } if (sizeof($imp_err) == 0 AND sizeof($ber_vorh) > 0) { $ausgabe = $ber_vorh; } echo " Import beendet

Importvorgang erfolgreich

Der Importvorgang wurde erfolgreich beendet!
Die Excel-Datei wurde vom Server gelöscht!

"; $num1 = count($ausgabe); // Anzahl der nicht importierten UIDs if ($ausgabe != "") { echo "Es wurden $num1 Datensätze nicht importiert
Wahrscheinlich ist die UID bereits in der Datenbank vorhanden,
oder eines der Felder ist zu lang:

"; } // Ausgabe der nicht importierten DS for ($i = 0; $i < sizeof($ausgabe); $i++) { $b = strpos($ausgabe[$i], "'"); $e = substr($ausgabe[$i], 0, $b); print strtolower($e); // Ausgabe der nicht importierten UIDs echo "
"; } echo "



"; } else { echo " Datei nicht gelöscht

Importvorgang erfolgreich

Der Importvorgang wurde erfolgreich beendet!
Die Excel-Datei ($neu) konnte nicht vom Server gelöscht werden!

"; $num1 = count($ausgabe); // Anzahl der nicht importierten UIDs if ($ausgabe != "") { echo "Es wurden $num1 Datensätze nicht importiert
Wahrscheinlich ist die UID bereits in der Datenbank vorhanden,
oder eines der Felder ist zu lang:

"; } // Ausgabe der nicht importierten DS for ($i = 0; $i < sizeof($ausgabe); $i++) { $b = strpos($ausgabe[$i], "'"); $e = substr($ausgabe[$i], 0, $b); print strtolower($e); // Ausgabe der nicht importierten UIDs echo "
"; } echo "



"; } // End if } 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 ?>