在写上下文中不能使用函数返回值

时间:2011-03-16 05:48:14

标签: php

好的,这是我的代码。它应该做的是检索发送给您页面的引用者,用户将输入someurl.com/refcreate.php?ref=username

<?php
session_start();

$referer = $_GET['ref'];
$_SESSION['referer'] = $referer;

if (!isset($referer))
{
    echo 'You did not specify a referer, please correct this to continue';
    die;
}
elseif($referer == "")
{
    echo 'You did not specify a referer, please correct this to continue';
    die;
}

如果忘记指定引用者,上述部分可以正常工作。下面的一半是检查指定的当前引用者是否是数据库中的实际用户。

if(refcheck($referer) = false)
    {
        echo 'that referer is not in our database,please double chek the spelling and try again.';
        die;
    }

    function refcheck($ref)
    {
        require('mysql_con.php');

        $query="SELECT username FROM jos_users WHERE username='". $ref ."'";
        echo $query;
        $result = mysql_query($query, $con);
        $exists =mysql_fetch_assoc($result);
        if ($exists != false)
        {
            //return true;      
            echo 'true';    
            return true;

        }

        require('mysql_close.php');
    }
    ?>

好的,我想出了问题(或者问题)。 1需要看起来像if(refcheck($referer) == false){}而不是if(refcheck($referer) = false);。所以这是一个缺少等号和错位的冒号:P谢谢你们

3 个答案:

答案 0 :(得分:9)

您正在分配变量而不是比较它

refcheck($referer) = false

应为refcheck($referer) == false

此外,如果您的IF条件失败,您的方法应该有一个默认返回。

答案 1 :(得分:0)

好吧我想出了问题或问题而不是1是否需要看起来如果(refcheck($ referer)== false){}而不是if(refcheck($ referer)= false);所以缺少等号和错位的冒号:P谢谢你们

答案 2 :(得分:0)

你在第三行拼错了“检查”