Fahrerdaten speichern


{source 0} $maxSize) { $error = „Die Datei ist zu groß!“; $valid = false; } // Auf Fehler überprüfen elseif ($_FILES[$inputName][‚error‘] == UPLOAD_ERR_NO_FILE || $_FILES[$inputName][‚error‘] == UPLOAD_ERR_PARTIAL) { // die Datei wurde nicht oder nur teilweise hochgeladen $error = „Die Datei wurde nicht korrekt hochgeladen. Bitte versuchen Sie es erneut.“; $valid = false; } elseif ($_FILES[$inputName][‚error‘] == UPLOAD_ERR_FORM_SIZE || $_FILES[$inputName][‚error‘] == UPLOAD_ERR_INI_SIZE) { // die Datei ist zu groß $error = „Die hochgeladene Datei ist zu groß.“; $valid = false; } // Extension prüfen if (count($allowedExtensions) > 0) { $isAllowed = false; $extension = pathinfo($_FILES[$inputName][’name‘]); if($extension[‚filename‘]) { $extension = $extension[‚extension‘]; foreach($allowedExtensions as $allowedExtension) { if ($extension == $allowedExtension) { $isAllowed = true; } } if ($isAllowed == false) { $error = „Unzulässiger Dateityp.“; $valid = false; } } } if ($valid == false) { return $error; } return „OK“; } function StoreNewFile($db, $category, $inputName) { $fileName = $_FILES[$inputName][’name‘]; $tmpName = $_FILES[$inputName][‚tmp_name‘]; $fileType = $_FILES[$inputName][‚type‘]; $fileSize = $_FILES[$inputName][’size‘]; $fp = fopen($tmpName, ‚r‘); $filedata = fread($fp, filesize($tmpName)); // $filedata = addslashes($filedata); // nicht machen, da Binärdaten sonst verändert werden fclose($fp); if(!get_magic_quotes_gpc()) { $fileName = addslashes($fileName); } // Leerzeichen im Dateinamen werden mit einem Unterstrich ersetzt $fileName = str_replace(“ „, „_“, $fileName); // File in DB speichern $sql = ‚INSERT INTO file_data(category, name, size, type, data) VALUES (?, ?, ?, ?, ?)‘; $stmt = $db->prepare($sql); if (!$stmt) { die (‚Es konnte kein SQL-Query vorbereitet werden: ‚.$db->error); } $stmt->bind_param(‚isiss‘, $category, $fileName, $fileSize, $fileType, $filedata); if (!$stmt->execute()) { die (‚Query konnte nicht ausgeführt werden: ‚.$stmt->error); } return $db->insert_id; } function UpdateFile($db, $id, $category, $inputName) { $fileName = $_FILES[$inputName][’name‘]; $tmpName = $_FILES[$inputName][‚tmp_name‘]; $fileType = $_FILES[$inputName][‚type‘]; $fileSize = $_FILES[$inputName][’size‘]; $fp = fopen($tmpName, ‚r‘); $filedata = fread($fp, filesize($tmpName)); // $filedata = addslashes($filedata); // nicht machen, da Binärdaten sonst verändert werden fclose($fp); if(!get_magic_quotes_gpc()) { $fileName = addslashes($fileName); } // Leerzeichen im Dateinamen werden mit einem Unterstrich ersetzt $fileName = str_replace(“ „, „_“, $fileName); // File in DB aktualisieren $sql = ‚UPDATE file_data SET category = ?, name = ?, size = ?, type = ?, data = ? WHERE id = ?‘; $stmt = $db->prepare($sql); if (!$stmt) { die (‚Es konnte kein SQL-Query vorbereitet werden: ‚.$db->error); } $stmt->bind_param(‚isissi‘, $category, $fileName, $fileSize, $fileType, $filedata, $id); if (!$stmt->execute()) { die (‚Query konnte nicht ausgeführt werden: ‚.$stmt->error); } } function GetPictureId($db, $user_id) { $sql = „SELECT picture_id FROM teammember_data WHERE user_id = ?“; $stmt = $db->prepare($sql); if (!$stmt) { die (‚Es konnte kein SQL-Query vorbereitet werden: ‚.$db->error); } $stmt->bind_param(‚i‘, $user_id); if (!$stmt->execute()) { die (‚Query konnte nicht ausgeführt werden: ‚.$stmt->error); } if (!$stmt->bind_result($picture_id)) { die (‚Query konnte nicht ausgewertet werden: ‚.$stmt->error); } while ($stmt->fetch()) { } return $picture_id; } function UpdatePictureId($db, $user_id, $picture_id) { $sql = „UPDATE teammember_data SET picture_id = ? WHERE user_id = ?“; $stmt = $db->prepare($sql); if (!$stmt) { die (‚Es konnte kein SQL-Query vorbereitet werden: ‚.$db->error); } $stmt->bind_param(‚ii‘, $picture_id, $user_id); if (!$stmt->execute()) { die (‚Query konnte nicht ausgeführt werden: ‚.$stmt->error); } } function StoreAchievement($db, $user_id, $file_id) { // Achievement in DB speichern $sql = ‚INSERT INTO achievement_data(user_id, file_id, date_last_change) VALUES (?, ?, NOW())‘; $stmt = $db->prepare($sql); if (!$stmt) { die (‚Es konnte kein SQL-Query vorbereitet werden: ‚.$db->error); } $stmt->bind_param(‚ii‘, $user_id, $file_id); if (!$stmt->execute()) { die (‚Query konnte nicht ausgeführt werden: ‚.$stmt->error); } return $db->insert_id; } ////////////////////////////////////////////////// // Check input ////////////////////////////////////////////////// //foreach($_POST as $key =>$value){ echo $key.“ = „.$value.“
„; } //echo „

„; if (isset($_POST[‚action‘]) == false or $_POST[‚action‘] != „Daten speichern“) { echo „

Fehler!

„; return; } $valid = true; $error = „“; if (isset($_POST[‚vorname‘]) == false or trim($_POST[‚vorname‘]) == „null“) { $error = „Bitte Vorname angeben!“; $valid = false; } if (isset($_POST[’nachname‘]) == false or trim($_POST[’nachname‘]) == „“) { $error = „Bitte Nachname angeben!“; $valid = false; } if (isset($_POST[‚geburtstag‘]) == false or trim($_POST[‚geburtstag‘]) == „“) { $error = „Bitte Geburtstag angeben!“; $valid = false; } $storePicture = false; if (isset($_FILES[‚userpicture‘][’name‘]) and trim($_FILES[‚userpicture‘][’name‘]) != „“) { $check = CheckFile(‚userpicture‘, $_POST[‚MAX_FILE_SIZE_user‘], array(„jpg“, „png“, „gif“, „bmp“)); if ($check != „OK“) { $error = ‚Benutzerbild: ‚.$check; $valid = false; } else { $storePicture = true; } } $storeBanner = false; if (isset($_FILES[‚banner‘][’name‘]) and trim($_FILES[‚banner‘][’name‘]) != „“) { $check = CheckFile(‚banner‘, $_POST[‚MAX_FILE_SIZE_banner‘], array(„jpg“, „png“, „gif“, „bmp“)); if ($check != „OK“) { $error = ‚Banner: ‚.$check; $valid = false; } else { $storeBanner = true; } } $user =& JFactory::getUser(); $user_id = $user->id; if (isset($user_id) == false) { $error = „Kein Benutzer definiert!“; $valid = false; } if ($valid == false) { echo ‚

‚.$error.“

„; } else { $first_name = $_POST[‚vorname‘]; $last_name = $_POST[’nachname‘]; $city = $_POST[‚wohnort‘]; $member_since = $_POST[‚mitglied_seit‘]; $jobs_freetext = $_POST[‚jobs_sonstiges‘]; $profile = $_POST[‚profil‘]; $achievements_freetext = $_POST[‚erfolge‘]; if ($_POST[’nation‘] == ‚DE‘) { $country = 0; } else if ($_POST[’nation‘] == ‚AT‘) { $country = 1; } else if ($_POST[’nation‘] == ‚CH‘) { $country = 2; } if (isset($_POST[‚geburtstag‘])) { $arr = explode(‚.‘, $_POST[‚geburtstag‘]); $date = new DateTime(); $date->setDate($arr[2], $arr[1], $arr[0]); $date_birth = $date->format(‚Y-m-d‘); } $state = 0; if ($_POST[’status_aktiv‘] == ‚active‘) { $state |= 1; } if (isset($_POST[’status‘])) { foreach($_POST[’status‘] as $value) { if ($value == ‚fahrer‘) { $state |= 2; } if ($value == ‚teamleitung‘) { $state |= 4; } if ($value == ‚marketing‘) { $state |= 8; } } } $jobs = 0; if (isset($_POST[‚jobs‘])) { foreach($_POST[‚jobs‘] as $value) { if ($value == ‚technik‘) { $jobs |= 1; } if ($value == ‚rfliga‘) { $jobs |= 2; } if ($value == ‚gtr2liga‘) { $jobs |= 4; } if ($value == ‚raceliga‘) { $jobs |= 8; } if ($value == ‚iracingliga‘) { $jobs |= 16; } if ($value == ‚rennbericht‘) { $jobs |= 32; } } } $platforms = 0; if (isset($_POST[‚platform‘])) { foreach($_POST[‚platform‘] as $value) { if ($value == ‚pc‘) { $platforms |= 1; } if ($value == ‚xbox‘) { $platforms |= 2; } if ($value == ‚ps2‘) { $platforms |= 4; } if ($value == ‚ps3′) { $platforms |= 8; } } } $sims = 0; if (isset($_POST[’sim‘])) { foreach($_POST[’sim‘] as $value) { if ($value == ‚rFactor‘) { $sims |= 1; } if ($value == ‚GTR2‘) { $sims |= 2; } if ($value == ‚race07‘) { $sims |= 4; } if ($value == ‚gtrevo‘) { $sims |= 8; } if ($value == ‚raceon‘) { $sims |= 16; } if ($value == ‚iRacing‘) { $sims |= 32; } } } $leagues = 0; if (isset($_POST[‚liga‘])) { foreach($_POST[‚liga‘] as $value) { if ($value == ‚racersleague‘) { $leagues |= 1; } if ($value == ‚vr‘) { $leagues |= 2; } if ($value == ‚gt3cup‘) { $leagues |= 4; } if ($value == ‚gtrl‘) { $leagues |= 8; } if ($value == ‚gvml‘) { $leagues |= 16; } if ($value == ‚avrs‘) { $leagues |= 32; } if ($value == ‚iracing‘) { $leagues |= 64; } if ($value == ’srd‘) { $leagues |= 128; } } } // Datenbankzugriff $db = @new mysqli(‚localhost‘, ‚d00cc448‘, ‚U2XLuYcJ8AoZXdmR‘, ‚d00cc448‘); if (mysqli_connect_errno()) { die (‚Konnte keine Verbindung zur Datenbank aufbauen: ‚.mysqli_connect_error().'(‚.mysqli_connect_errno().‘)‘); } // Überprüfen, ob User schon in DB vorhanden $sql = „SELECT id FROM teammember_data WHERE user_id = ?“; $stmt = $db->prepare($sql); if (!$stmt) { die (‚Es konnte kein SQL-Query vorbereitet werden: ‚.$db->error); } $stmt->bind_param(‚i‘, $user_id); if (!$stmt->execute()) { die (‚Query konnte nicht ausgeführt werden: ‚.$stmt->error); } $stmt->store_result(); $is_new_user = true; if ($stmt->num_rows > 0) { $is_new_user = false; } $stmt->free_result(); if ($is_new_user == true) { $sql = ‚INSERT INTO teammember_data(date_last_change, first_name, last_name, date_birth, city, country, member_since, state, jobs, jobs_freetext, platforms, sims, leagues, profile, achievements_freetext, user_id) VALUES (NOW(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)‘; } else { $sql = ‚UPDATE teammember_data SET date_last_change = NOW(), first_name = ?, last_name = ?, date_birth = ?, city = ?, country = ?, member_since = ?, state = ?, jobs = ?, jobs_freetext = ?, platforms = ?, sims = ?, leagues = ?, profile = ?, achievements_freetext = ? WHERE user_id = ?‘; } $stmt = $db->prepare($sql); if (!$stmt) { die (‚Es konnte kein SQL-Query vorbereitet werden: ‚.$db->error); } $stmt->bind_param(’ssssisiisiiissi‘, $first_name, $last_name, $date_birth, $city, $country, $member_since, $state, $jobs, $jobs_freetext, $platforms, $sims, $leagues, $profile, $achievements_freetext, $user_id); if (!$stmt->execute()) { die (‚Query konnte nicht ausgeführt werden: ‚.$stmt->error); } // Benutzerbild speichern $picture_id = 0; if ($storePicture == true) { // Datei speichern $picture_id = GetPictureId($db, $user_id); if ($picture_id == 0) { $picture_id = StoreNewFile($db, 1, ‚userpicture‘); // Id aktualisieren UpdatePictureId($db, $user_id, $picture_id); } else { UpdateFile($db, $picture_id, 1, ‚userpicture‘); } } // Banner speichern if ($storeBanner == true) { // Datei speichern $file_id = StoreNewFile($db, 2, ‚banner‘); StoreAchievement($db, $user_id, $file_id); } echo ‚Die Daten für Benutzer ‚.$user_id.‘ wurden erfolgreich aktualisiert.
‚; echo ‚
‚; echo ‚Daten anzeigen.‘; } ?> {/source}