41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?php /* Name: validate-email.php
|
|
Beschreibung: Validierung der E-Mailadresse
|
|
- Wird innerhalb von validation.js aufgerufen
|
|
- Prüft ob E-Mail bereits vollständig registriert oder
|
|
ein offener Antrag vorliegt */
|
|
|
|
$pdo = require_once($_SERVER['DOCUMENT_ROOT']."/intranet_repo/general_files/ini/database.php");
|
|
|
|
header("Content-Type: application/json");
|
|
|
|
if (!isset($_GET["email"]) || empty(trim($_GET["email"]))) {
|
|
echo json_encode(["available" => false]);
|
|
exit;
|
|
}
|
|
|
|
$email = trim($_GET["email"]);
|
|
$is_available = true;
|
|
|
|
// Prüfung 1: Gibt es einen vollständigen Login für diese E-Mail?
|
|
$stmt = $pdo->prepare("SELECT u.user_id FROM user_general_information u INNER JOIN user_login l ON u.user_id = l.user_id WHERE u.mail = ?");
|
|
$stmt->execute([$email]);
|
|
|
|
if ($stmt->fetch()) {
|
|
$is_available = false;
|
|
}
|
|
|
|
// Prüfung 2: Liegt bereits ein offener Antrag vor?
|
|
if ($is_available) {
|
|
$stmt = $pdo->prepare("SELECT COUNT(*) FROM pending_registrations WHERE email = ? AND status = 'pending'");
|
|
$stmt->execute([$email]);
|
|
$pendingCount = $stmt->fetchColumn();
|
|
|
|
if ($pendingCount > 0) {
|
|
$is_available = false;
|
|
}
|
|
}
|
|
|
|
echo json_encode(["available" => $is_available]);
|
|
exit;
|
|
?>
|