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. ## ############ include("kurs/datenbankanbindung.php"); // fügt die Datenbankanbindung ein: Sys:\php\includes\kurs\datenbankanbindung.php function utf8_fopen_read($fileName) { $fc = iconv('windows-1250', 'utf-8', file_get_contents($fileName)); $handle=fopen("php://memory", "rw"); fwrite($handle, $fc); fseek($handle, 0); return $handle; } setcookie("ck_verz","$verz"); // Verzeichnis in Cookie speichern $user_admin=$_COOKIE["user_admin"]; //Cookie laden // Rechteüberprüfung $db = dbconnect(); if ($user_admin == ""){ require("index.php"); exit;} //Wenn man nicht angemeldet ist, darf man nicht auf die Seite $result = $db->query("SELECT 1 FROM sozkom_admin_rechte, sozkom_admin_rechte_zuord , sozkom_admin where sozkom_admin_rechte.sozkom_admin_rolle = sozkom_admin_rechte_zuord.sozkom_admin_rolle AND sozkom_admin_rechte_zuord.faid = sozkom_admin.faid AND sozkom_admin.user = '$user_admin' AND sozkom_admin_rechte_zuord.sozkom_admin_rolle = 'a_import'"); $row = $result->fetch_array(); if ($row[0] != 1){ include("kurs/rechte_subdir.php"); exit;} // Rechteüberprüfung ende $limitedext = array(".csv"); //Erlaubte Dateieindung beim Upload 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 " CSV Upload

CSV Upload
Import eines Studienjahrgangs
Datei wählen:
Erlaubte Dateiendungen: *.csv

"; 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. $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 csv-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"); $row = 1; // Anzahl der Arrays $handle = utf8_fopen_read ("$verz$neu","r"); // Datei zum Lesen öffnen echo " Datensätze prüfen

Datensätze prüfen
"; while ( ($data = fgetcsv ($handle, 1000, $trennzeichen_excel)) !== FALSE ) // Daten werden aus der Datei in ein Array $data gelesen { $num = count ($data); // Felder im Array $data werden gezählt //print "

$num fields in line $row:
\n"; print "\n"; $row++; // Anzahl der Arrays wird // inkrementiert $passwd = str_replace(".", "", $data[13]); print "

"; // for ($c=0; $c < $num; $c++) { // FOR-Schleife: Oder Anzahl der zu importierenden Felder ($num) print "\n"; // uid print "\n"; // Nacname print "\n"; // Vorname print "\n"; // Matrikelnr print "\n"; // KFZ print "\n"; // HS print "\n"; // PLZ print "\n"; // ORT print "\n"; // Straße print "\n"; // STG print "\n"; // StgText print "\n"; // AG print "\n"; // Jahrgang #print "\n"; // Passwort in Kleinbuchstaben print "\n"; // Passwort print "\n"; // Mail // } print ""; $ln_inserts[]++; //zählt die Anzahl der importierenden DS } echo "
uid Nachname Vorname Matrikelnr. KFZ HS PLZ Ort Straße Stg StgText AG Jahr Passwort Mail
".strtolower($data[0]) . "".$data[1] . "".$data[2] . "".$data[3] . "".$data[4] . "".$data[5] . "".$data[6] . "".$data[7] . "".$data[8] . "".$data[9] . "".$data[10] . "".strtoupper($data[11]) . "".$data[12] . "".strtolower($data[12]) . "".$passwd . "".$data[14] . "

"; $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 fclose ($handle); break; case "csvimp2": $neu=$_COOKIE["ck_neu"]; //CSV-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 CSV-Datei wurde vom Server gelöscht!



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

Importvorgang abgebrochen

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



"; } // End if } elseif($_POST['import'] == "1") // DS sollen importiert werden { $row = 1; // Anzahl der Arrays $handle = utf8_fopen_read ("$verz$neu","r"); // Datei zum Lesen öffnen while ( ($data = fgetcsv ($handle, 1000, $trennzeichen_excel)) !== FALSE ) // Daten werden aus der Datei in ein Array $data gelesen { $num = count ($data); // Felder im Array $data werden gezählt //print "

$num fields in line $row:
\n"; print "\n"; $row++; // Anzahl der Arrays wird // inkrementiert $pwd = strtolower($data[13]); $pwd = str_replace(".", "", $pwd); $uid = strtolower($data[0]); $passwd = md5($pwd); $geb = preg_split('/\./', $data[13]); $tag = $geb[0]; $mon = $geb[1]; $jahr = $geb[2]; $gebtag = "$jahr-$mon-$tag"; //$passwd = mysqli_escape_string($db,$passwd); // ACHTUNG: AN DIESER ZEILE NICHTS ÄNDERN, da die erste Zeile des Strings rausgefiltert wird bei der Ausgabe der nichtimportierten DS $insert[] .= "INSERT INTO stud (uid, nachname, vorname, mtknr, pokfz, hs, poplz, poOrt, poStrasse, stg, stgText, AG, Jahrgang, Pwd, mail, geburtstag) VALUES ( lower('$data[0]') ,'$data[1]' ,'$data[2]' ,'$data[3]' ,'$data[4]' ,'$data[5]' ,'$data[6]' ,'$data[7]' ,'$data[8]' ,'$data[9]' ,'$data[10]' ,upper('$data[11]') ,'$data[12]' ,'$passwd' ,'$data[14]' ,'$gebtag' ) "; } $db = dbconnect(); for ($i=0;$iquery("$insert[$i]"); if (!$sql) { $unimported[]= $insert[$i]; } } fclose ($handle); $dateiname="$verz$neu"; if (@unlink($dateiname)) // Funktion löscht Dateien und gibt true / false zurück { $y = str_replace (array("INSERT INTO stud (uid, nachname, vorname, mtknr, pokfz, hs, poplz, poOrt, poStrasse, stg, stgText, AG, Jahrgang, Pwd, mail, geburtstag) VALUES ( lower('"), array(""), $unimported); echo" Import beendet

Importvorgang erfolgreich

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

"; $num1 = count ($y); // Anzahl der nicht importierten UIDs if ($y != "") { 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"; } echo"



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

Importvorgang erfolgreich

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

"; $num1 = count ($y); // Anzahl der nicht importierten UIDs if ($y != "") { 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"; } 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 ?>