我有一个只有高级用户才能访问的网站,并且我有此代码
<?php
include_once('connectdb.php');
$account = $_SESSION["username"];
$sql = "SELECT acct_type FROM hash WHERE email = '$account'";
$result = $conn->query($sql);
$result = $conn->query($sql);
if ($result->num_rows > 0){
while($row = $result->fetch_assoc()){
if ($row['acct_type'] == 'Paid'){
echo"Not for free users";
echo'<br>';
exit();
}
}
}
?>
如何在此处使用isset
来阻止所有免费用户,而只授予对付费用户的访问权限?
PS:我不能将FREE
放在这里,因为我为用户提供了多种类型的帐户。
我已经尝试过
if (!isset($row['acct_type'] == 'Paid'))
但这不起作用。
答案 0 :(得分:1)
您不需要def verify_signature(params)
saml_request = URI.decode(params[:SAMLRequest])
relay_state_string = URI.decode(params[:RelayState])
signature = URI.decode(params[:Signature])
sign_alg = URI.decode(params[:SigAlg])
query_params,sig_params={},{}
query_params[:type] = "SAMLRequest"
query_params[:data] = saml_request
query_params[:relay_state] = relay_state_string
query_params[:sig_alg] = sign_alg
query = OneLogin::RubySaml::Utils.build_query(query_params)
sig_params[:cert] = getPublicKeyFromCertificate
sig_params[:sig_alg] = sign_alg
sig_params[:signature] = signature
sig_params[:query_string] = query
OneLogin::RubySaml::Utils.verify_signature(sig_params)
end
,如果isset
,那么可以保证$result->num_rows > 0
被设置。您需要检查的是该用户的帐户类型为$row['acct_type']
。如果未找到任何行,也需要退出(也许用户未登录,因此未设置Paid
):
$_SESSION['username']
答案 1 :(得分:0)
对于将要寻求同样帮助的人
isset用于检查它是否存在并且不为空。
if(isset($variable) && $variable == 'other'){
// do code
}