函数在PHP中没有无故返回true或false



首先,我应该说我为wordpress创建了一个模板文件。现在的问题是,我创建了一个函数,它不工作无缘无故!我可以删除功能,但我想知道为什么这是不工作!

(我100%确定这两个变量是不同的,因为我打印了它们)

函数总是返回true,即使我的变量是不同的!我测试了它,我也想回显函数,但页面没有加载!

非常非常奇怪!

代码:
global $wpdb;
$lid = $_GET['lid'];
$row = $wpdb->get_row($wpdb->prepare("SELECT * FROM wp_edit_gf WHERE lid = $lid"), ARRAY_A);
global $current_user;
$user_id = $current_user->ID;
$user = get_user_by('id', $user_id);
$user_email=$user->user_email; 
$lid_mail = $row['user_mail'];
function gfedit_verify_user_entry(){
if(isset($_GET['lid']) && $lid_mail == $user_email){
return true;
}
else{
return false;
}
}
if(!is_user_logged_in()){
header("Location: https://example.com/my-account/?login=true&back=home&page=1");
exit();
}
elseif(!gfedit_verify_user_entry()){
echo "access denied!";
}
else{
.
.
.

在函数gfedit_verify_user_entry()中,您使用了在函数外部声明的两个变量($lid_mail$user_email)。所以没有什么奇怪的,它们不存在于函数中。

你应该很容易改正:

function gfedit_verify_user_entry($lid_mail, $user_email){
if(isset($_GET['lid']) && $lid_mail == $user_email){
return true;
}
else{
return false;
}
}

如果一行代码更可取的话,只是一个额外的添加。

$lid = isset($_GET['lid']);
function gfedit_verify_user_entry($lid, $lid_mail, $user_email){
return $lid && $lid_mail == $user_email;
}

@lagaart抱歉我不得不编辑你的答案。无法添加评论,因为我目前的声望评分不允许我评论。

相关内容

  • 没有找到相关文章

最新更新