取决于条件显示php

时间:2017-09-26 13:51:05

标签: php

我有这样的代码

<?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'])) {

if(!preg_match("/^(?=.*[0-9])(?=.*[a-z])(\S+)$/i", $_POST['password']))
{
  $errorMessage="don't allow spaces";
} 
$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 status=1"; 
if($chk_secret = $DB->get_record_sql($access_code_sql, array($secret)) ) 
{ 

if ( $chk_secret->used >= $chk_secret->number ) { 
$errorMessage = "your access code limit completed..";
}

else
{
$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 is wrong..";
}
} 
?> 

所以我想写条件就像另一个条件

if ( $chk_secret->status='0' ) { 
$errorMessage = "your access code deactivated..";
}

如果没有,他们可以注册

我试过..但我不明白我必须添加的地方如果......

在我有条件之前,如果使用了数字&gt;它会显示一些错误消息,例如您的访问代码限制已完成

任何人都可以帮助我..

提前感谢..

1 个答案:

答案 0 :(得分:1)

=用于值分配 ==比较两个操作数

所以你需要改变

if ( $chk_secret->status='0' ) { 

if ( $chk_secret->status=='0' ) { 

更新:

您的查询SELECT * FROM {accesscode} WHERE random_no= ? and status=1

表示只返回status == 1

你可以检查返回的行数是ZERO然后通过状态零错误消息。

否则

仅基于random_no存在获取行,然后检查状态键