這裏我有代碼將在其中創建用戶,他們必須輸入由admin給出的一個訪問代碼。該訪問碼受限於某些用戶,如10
或20
。之後,它顯示錯誤,如your accesscode is limited
。所以到現在爲止,它工作正常。如果該特定內容不在數據庫中,則顯示錯誤消息
現在,如果用戶嘗試輸入admin未給出的訪問碼,它必須顯示錯誤消息,如your accesscode is wrong
。
這裏是我的代碼:
<?php
require('../config.php');
require_once($CFG->dirroot . '/user/editlib.php');
$errorMessage = '';
$successMessage = '';
if(isset($_SESSION['successMessage'])) {
$successMessage = $_SESSION['successMessage'];
unset($_SESSION['successMessage']);
}
if (isset($_POST['register'])) {
$errors = array();
$data = array();
$chk_sql = "SELECT * FROM {user} u where username = ?";
if (!empty($chk_sql)) {
$errorMessage = 'Username already taken';
}
if(!$chk_username = $DB->get_record_sql($chk_sql, array($_POST['username']))) {
$secret = $_POST['secret'];
$access_code_sql = "SELECT * FROM {accesscode} WHERE random_no= ? and `number` > `used` and status=1";
if($chk_secret = $DB->get_record_sql($access_code_sql, array($secret))) {
$cadminid = $chk_secret->cadmin_id;
$clientid = $chk_secret->clientid;
$DB->execute("UPDATE {accesscode} SET used = used+1 WHERE random_no = '$secret'");
$insert_record = new stdClass();
$insert_record->firstname = $_POST['firstname'];
$insert_record->lastname = $_POST['lastname'];
$insert_record->username = $_POST['username'];
$insert_record->secret = $secret;
$insert_record->password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$insert_record->timecreated = time();
$insert_record->maildigest = $cadminid;
$insert_record->maildisplay = $clientid;
$insert_record->idnumber = 1;
$insert_record->mnethostid = 1;
$insert_record->confirmed = 1;
$insert_record->email = $_POST['email'];
if ($result = $DB->insert_record('user', $insert_record)) {
$_SESSION['successMessage'] = "record created successfully";
header('Location: register.php');
} else
$errorMessage = "error! can you please try again";
} else
$errorMessage = "your access code limit completed";
}
}
?>
沒有actually..i顯示此消息的errorMessage $ = 「您的訪問代碼限制完成」;一個條件..如果不是這種情況,我需要顯示另一個錯誤信息 – user200
我明白,但問題是,你不能顯示錯誤信息,對不對?嘗試使用「==」而不是「=」,因爲如果使用帶「=」的「if」語句,它將在100%的時間內爲真,因爲您分配了值,所以您不會將它們進行比較 –
ok ..如果我使用==我怎麼可以寫另一個這種條件..你可以請epxlain我.. – user200