VERO/verify.php
2026-03-04 10:12:09 +01:00

168 lines
5.5 KiB
PHP

<?php
// Include config file
require_once "config.php";
// Include config file
$config = parse_ini_file("config.ini", true) ;
$baseURL = $config['base']['URL'];
// Initialize the session
session_start();
// User account not yet verified => set loggedin to false
$_SESSION["loggedin"] === false;
if(empty($confirmation_err) ){
// Prepare a select statement
$sql = "SELECT userStatus, userLastname, userFirstname FROM User WHERE userToken = ?";
if($stmt = mysqli_prepare($link, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, "s", $param_token);
// Set parameters
$param_token = $_GET['token'];
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
// Store result
mysqli_stmt_store_result($stmt);
// Check if token exists.
// echo mysqli_stmt_num_rows($stmt) ; exit;
if($num=mysqli_stmt_num_rows($stmt) == 1){
// Bind result variables
mysqli_stmt_bind_result($stmt, $status, $lastname, $firstname);
// echo $status ." - " .$lastname ." - " .$firstname ."\n"; exit;
if(mysqli_stmt_fetch($stmt)){
if($status == 0){
// Account is already confirmed
$confirmation_err = "Benutzerkonto ist bereits freigeschaltet.";
} else {
// token available in database and status != 0
// update status and set token to '';
$sql = "UPDATE User set userStatus = 0, userToken = '' where userToken = ?";
if($stmt = mysqli_prepare($link, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, "s", $param_token);
// Attempt to execute the prepared statement
if(! mysqli_stmt_execute($stmt)){
$confirmation_err= "<div class='row'>Oops! Da ging etwas schief. Bitte versuchen Sie es später noch einmal.</div>";
}
// Close statement
sendmailToRepositoryTeam($lastname, $firstname);
mysqli_stmt_close($stmt);
}
}
}
} else {
$confirmation_err = '<div class="pb-2">Es wurde kein Datensatz für eine Freischaltung gefunden.</div><div>Das kann an der Verwendung einer alten Freischaltungs-Email liegen, bei der der verwendete Token bereits verwendet wurde oder aber an einem Fehler auf unserer Seite.</div><div class="pb-2">Bei Fragen wenden Sie sich bitte über unser <span style="font-weight:bold"><a href"=https://www.bibb.de/dienst/kontakt/de/kontaktformular.php?maid=4841" target="_blank" rel="noopener noreferrer" >Kontaktformular</a></span> an das Team des VET Repository.</div>';
}
}
}
}
function sendmailToRepositoryTeam($lastname, $firstname) {
$replyTo = "noreply@bibb-service.de";
$to = "repository@bibb.de";
$subject = '=?UTF-8?B?' . base64_encode('Registrierung im VET Repository') . '?=';
$message = "BenutzerIn $firstname $lastname hat ihre/ seine Mailadresse nun bestätigt.";
$headers = "From: $to\r\n";
$headers .= "Reply-To: $replyTo\r\n";
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
mail($to, $subject, $message, $headers);
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Konto Freischaltung</title>
<!-- Bootstrap 5 CSS && Bootstrap Icons -->
<?php include "include/includeJSandCSS.php" ?>
<!-- Custom CSS -->
<link href="css/bibb.css" media="all" rel="stylesheet" type="text/css">
<style>
html, body {
height: 100%;
}
.stickywrapper {
min-height: 60vh;
display: flex;
flex-direction: column;
}
.content {
flex: 1;
}
</style>
</head>
<body>
<?php include "templates/headerLogin.php"; ?>
<div class="stickywrapper">
<!-- Hauptinhalt der Seite -->
<div class="content">
<div class="container my-5">
<div id="verifcationScreen" class="wrapperconfirmation pb-3 shadow p-3 ms-5 bg-light bg-box rounded align-items-center">
<h4>Freischaltung Ihres Publikationskontos im VET Repository</h4>
<?php
$_SESSION["loggedin"] = true;
$_SESSION["firstname"] = $firstname;
$_SESSION["lastname"] = $lastname;
if ($confirmation_err == '') {
echo '
<div class="row">
Hallo ';
echo $firstname ." " .$lastname ."," ;
echo '
</div>
<div class="row">
danke für die Bestätigung Ihrer E-Mail-Adresse. Sie können sich zum Publizieren mit Ihren zuvor vergebenen Logindaten anmelden.
</div>
<div class="row"></div>';
echo
'<form action="';
echo $baseURL ."/login.php";
echo '" method="post">
<div class="mb-3">
<input type="submit" class="btn btn-success" value="Zum Login">
</div>
<p><a href="';
echo $baseURL ."/forgotten.php" ;
echo '">Passwort vergessen</a>.</p>
</form> ';
} else {
echo '
<div class="row"> ';
echo $confirmation_err;
echo ' </div>' ;
}
?>
</div>
</div>
</div>
</div>
<?php include "templates/stickyfooter.php" ?>
</body>
</html>