У меня есть сценарий Pay To Click, и в этом скрипте у нас есть возможность приостановить действие члена, и когда этот участник попытается войти в свою учетную запись с их именем пользователя и паролем и мгновенно нажмите кнопку входа в систему, наша система покажет ему ошибку: «Ваша учетная запись Подвеска ".Как показать пользователю приостановленную причину?
Но я хочу показать приостановленную причину для каждого пользователя. Я имею в виду, когда я приостанавливаю любого пользователя, я напишу причину, по которой он приостановлен, и после этого, когда пользователь попытается войти в свой аккаунт, наша система покажет ему ошибку (ваша учетная запись приостановлена), а затем перерыв строки, и я хочу показать ему причину.
Я уже создал столбец в таблице Участника с именем "susreason", а также я показал его на моей панели администратора для каждой опции редактирования пользователя с опцией suspend. Теперь, когда я приостановить пользователя и написать причину приостановки, то пользователь подвешенный успешно, но система не показывает причину, потому что сеанс пользователя не вошли в
Ниже приведен код, это в моем login.php:.
$username = $db->real_escape_string($input->pc['username']);
$password = $input->p['password'];
$country = ip2country($_SERVER['REMOTE_ADDR']);
$ip_user = $_SERVER['REMOTE_ADDR'];
$sect = explode(".", $ip_user);
$reip = ((($sect[0] . ".") . $sect[1] . ".") . $sect[2] . ".") . $sect[3];
$reipa = (($sect[0] . ".") . $sect[1] . ".") . $sect[2] . ".*";
$reipb = ($sect[0] . ".") . $sect[1] . ".*.*";
$reipc = $sect[0] . ".*.*.*";
$verifyusername = $db->fetchOne(("SELECT COUNT(*) AS NUM FROM blacklist WHERE type='username' AND criteria='" . $username . "'"));
$ipban1 = $db->fetchOne(("SELECT COUNT(*) AS NUM FROM blacklist WHERE type='ip' AND criteria='" . $reip . "'"));
$ipban2 = $db->fetchOne(("SELECT COUNT(*) AS NUM FROM blacklist WHERE type='ip' AND criteria='" . $reipa . "'"));
$ipban3 = $db->fetchOne(("SELECT COUNT(*) AS NUM FROM blacklist WHERE type='ip' AND criteria='" . $reipb . "'"));
$ipban4 = $db->fetchOne(("SELECT COUNT(*) AS NUM FROM blacklist WHERE type='ip' AND criteria='" . $reipc . "'"));
$countryban = $db->fetchOne(("SELECT COUNT(*) AS NUM FROM blacklist WHERE type='country' AND criteria='" . $country . "'"));
if ($verifyusername != 0) {
serveranswer(0, $lang['txt']['usernameblocked']);
}
else {
if ((($ipban1 != 0 || $ipban2 != 0) || $ipban3 != 0) || $ipban4 != 0) {
serveranswer(0, $lang['txt']['ipblocked']);
}
else {
if ($countryban != 0) {
serveranswer(0, $lang['txt']['countryblocked']);
}
}
}
$verifyuser = $db->fetchOne(("SELECT COUNT(*) AS NUM FROM members WHERE username='" . $username . "'"));
if ($verifyuser == 0) {
serveranswer(0, $lang['txt']['invalidlogindetails']);
}
$user_info = $db->fetchRow(("SELECT id, username, password, status, country FROM members WHERE username='" . $username . "'"));
if ($user_info['password'] != md5($password)) {
$bid = array("user_id" => $user_info['id'], "ip" => $ip_user, "status" => "Failed", "password" => $password, "date" => TIMENOW, "agent" => (!empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : $_ENV['HTTP_USER_AGENT']));
$upd = $db->insert("login_history", $bid);
serveranswer(0, $lang['txt']['invalidlogindetails']);
}
if ($settings['multi_login'] == "yes") {
$checkip = $db->fetchOne("SELECT COUNT(*) AS NUM FROM members WHERE last_ip='" . $ip_user . "' AND id!=" . $user_info['id']);
if ($checkip != 0) {
$showip_error = "yes";
}
if ($showip_error == "yes") {
serveranswer(0, $lang['txt']['multipleaccountsdetected']);
}
}
if ($settings['multi_country'] == "yes") {
if ($country != $user_info['country'] && $country != "-") {
serveranswer(0, $lang['txt']['multiplecountrydetected']);
}
}
if ($user_info['status'] == "Un-verified") {
serveranswer(0, $lang['txt']['accountinactive']);
}
else {
if ($user_info['status'] == "Suspended") {
serveranswer(0, "<strong>Your Account has been Suspended</strong>" . "<br />" . "<div class=\"site_content\"><div class=\"info_box\"><strong>Reason of Suspend</strong>" . "<br />" . $user_info['susreason']);
}
}
Эта строка последней строки является оператором (если), когда пользователь приостанавливается, когда система будет работать.
Вы говорите, что пользователь должен войти в систему, чтобы показать причину приостановки. Но это означает, что ваша таблица пользователей может быть доступна только в том случае, если пользователь вошел в систему. Я думаю, что вы можете читать из него даже без пользовательских данных внутри сеанса, не так ли? – Giorgio
'$ user_info' не приходит из сеанса - просто из поиска базы данных по имени пользователя. Сделайте некоторые отладки, чтобы понять, почему это не появляется для вас. – halfer
@Giorgio я не говорю, поскольку вы говорите, что пользователь должен войти в систему, чтобы показать приостановившуюся причину. Я говорю, что мой скрипт показывает ошибку приостановки для пользователя, даже пользователь не вошел в систему, поэтому он не показывал значение " susreason "для заблокированного пользователя. –