// Session starten, falls noch nicht geschehen
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
// Prüfen auf Duplikat aus der actions/register.php
$duplicateFound = false;
$existingProfile = null;
if (isset($_SESSION['duplicate_found'])) {
$duplicateFound = true;
$existingProfile = $_SESSION['duplicate_found'];
unset($_SESSION['duplicate_found']);
}
// Duplikatsprüfung und Profil-Zusammenführung verarbeiten
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['check_duplicate'])) {
$firstName = sanitize($_POST['first_name'] ?? '');
$lastName = sanitize($_POST['last_name'] ?? '');
if (!empty($firstName) && !empty($lastName)) {
try {
$db = getDbConnection();
$stmt = $db->prepare("
SELECT u.id, u.email, s.first_name, s.last_name, s.title, s.institution,
s.research_areas, s.biography, u.created_at
FROM users u
JOIN scholar_profiles s ON u.id = s.user_id
WHERE LOWER(TRIM(s.first_name)) = LOWER(TRIM(?))
AND LOWER(TRIM(s.last_name)) = LOWER(TRIM(?))
AND u.user_type = 'scholar' AND u.status = 'active'
LIMIT 1
");
$stmt->execute([$firstName, $lastName]);
$existingProfile = $stmt->fetch(PDO::FETCH_ASSOC);
if ($existingProfile) {
$duplicateFound = true;
}
} catch (Exception $e) {
logError("Fehler bei Duplikatsprüfung: " . $e->getMessage());
}
}
}
// Profil-Zusammenführung verarbeiten
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['merge_action'])) {
if ($_POST['merge_action'] === 'merge' && isset($_POST['existing_user_id'])) {
// Profile zusammenführen - auf profile_edit weiterleiten mit Merge-Daten
$_SESSION['merge_data'] = [
'existing_user_id' => $_POST['existing_user_id'],
'new_data' => $_POST
];
redirect('?page=profile_edit&merge=1');
exit;
} elseif ($_POST['merge_action'] === 'keep_existing') {
// Bestehendes Profil behalten - zum Login weiterleiten
setSuccessMessage('Ein Profil mit diesem Namen existiert bereits. Bitte melden Sie sich an.');
redirect('?page=login');
exit;
} elseif ($_POST['merge_action'] === 'create_new') {
// Neues Profil erstellen - normale Registrierung fortsetzen
$duplicateFound = false;
}
}
// Alle verfügbaren Expertise-Bereiche aus der Datenbank laden
$expertiseAreas = [];
try {
$db = getDbConnection();
$currentLang = getCurrentLanguage();
$stmt = $db->prepare("
SELECT id, name_de, name_en, name_zh, parent_id
FROM expertise_areas
ORDER BY parent_id NULLS FIRST, name_" . $currentLang . " ASC
");
$stmt->execute();
$expertiseAreas = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
logError("Fehler beim Laden der Expertise-Bereiche: " . $e->getMessage());
}
?>
Registrieren Sie sich bei China Competence
Erstellen Sie ein Konto, um mit China-Experten in Kontakt zu treten oder als Wissenschaftler Ihr Profil zu präsentieren.