gpt4 book ai didi

PHP - 注册后如何阻止用户 - 手动批准?

转载 作者:行者123 更新时间:2023-11-29 17:58:24 25 4
gpt4 key购买 nike

现在我有这个注册脚本,但他们可以立即登录。我想先手动批准,然后他们应该登录。我在谷歌上查找,但找不到任何相关内容。谢谢!

我通过更改为修复它:

$statement = $pdo->prepare("SELECT * FROM users WHERE email = :email AND active='1'");

<?php
$showFormular = true; //Variable ob das Registrierungsformular anezeigt werden soll

if(isset($_GET['register'])) {
$error = false;
$email = $_POST['email'];
$passwort = $_POST['passwort'];
$passwort1 = $_POST['passwort1'];
$hotelname = $_POST['hotelname'];
$ansprech = $_POST['ansprech'];
$telefon = $_POST['telefon'];

if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo 'Please enter a valid Mail<br>';
$error = true;
}
if(strlen($passwort) == 0) {
echo 'Please enter a Passwort<br>';
$error = true;
}
if($passwort != $passwort1) {
echo 'The passwords must match<br>';
$error = true;
}

//Überprüfe, dass die E-Mail-Adresse noch nicht registriert wurde
if(!$error) {
$statement = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$result = $statement->execute(array('email' => $email));
$user = $statement->fetch();

if($user !== false) {
echo 'This email address is already taken<br>';
$error = true;
}
}

//Keine Fehler, wir können den Nutzer registrieren
if(!$error) {
$passwort_hash = password_hash($passwort, PASSWORD_DEFAULT);

$statement = $pdo->prepare("INSERT INTO users (email, passwort, hotelname, ansprech, telefon) VALUES (:email, :passwort, :hotelname, :ansprech, :telefon)");
$result = $statement->execute(array(':email' => $email, ':passwort' => $passwort_hash, ':hotelname' => $hotelname, ':ansprech' => $ansprech, ':telefon' => $telefon));

if($result) {
echo '<center><b><h2>You have been registered successfully.<a href="login.php">To the login</a></b></center></h2></center>';
$showFormular = false;
} else {
echo 'Unfortunately, an error occurred while saving<br>';
}
}
}

if($showFormular) {
?>

我不想只使用电子邮件确认,或者如果可能的话最好是在每个用户创建帐户后,然后我收到邮件来确认他们的帐户。谢谢!

最佳答案

据我了解您的问题,您可以将“user_active” bool 列添加到您的users表中,并在用户注册时将其设置为0:

$statement = $pdo->prepare("INSERT INTO users (email, passwort, hotelname, ansprech, telefon, user_active) VALUES (:email, :passwort, :hotelname, :ansprech, :telefon, 0)");
$result = $statement->execute(array(':email' => $email, ':passwort' => $passwort_hash, ':hotelname' => $hotelname, ':ansprech' => $ansprech, ':telefon' => $telefon));

仅当用户的 user_active 值设置为 1 时,才应允许用户连接(由管理员手动设置,或者如果您愿意,可通过电子邮件确认)。

关于PHP - 注册后如何阻止用户 - 手动批准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48608181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com