2013-02-28 2 views
0

Я немного смущен. Наверное, только я очень толстый! В принципе, у меня есть следующие функции:Смущенный! PHP Если не работает

// Check if a verified email 
function verified($username) 
{ 
    global $conn; 
    if($username == '') { return; } 
    $q = $conn->prepare("SELECT * FROM users WHERE Username='".$username."' AND Verified = 1"); 
    $q->execute(); 

    return $q->rowCount(); 
} 

А то у меня следующий код в моем сценарии:

if (verified($_SESSION['Username'] == '0') 

Теперь я повторил свою функцию, как описано выше, и она возвращает 0, как должно, но по какой-то причине, если выше, похоже, не соглашается, что это действительно 0. Что я делаю не так?!

+2

Отсутствует ли закрывающая скоба? 'if (verified ($ _ SESSION ['Username']) == '0')' – Imperative

+0

Does $ _SESSION ['Username'] возвращает '0' или 0? – Massif

+0

if (подтверждено ($ _ SESSION ['Username']) == '0') вам не хватает закрывающей скобки –

ответ

5

Я думаю, что вы имеете в виду:

if (verified($_SESSION['Username']) == '0') 

Примечание закрывающая скобка после $ _SESSION [ «Имя пользователя»] ...

+1

Если это проблема, она даже не запустится ;-) – Etan

+0

В этом была проблема. Ха-ха. Теперь я чувствую себя глупо: P – Tenatious

+0

Вы должны отметить ответ, как принято тогда :-) – Etan

0

Я не понимаю вашу if (verified($_SESSION['Username'] == '0')) часть, но я думаю, что вы ожидаете строку 0 назад? Почему вы просто верны или ложны, как показано ниже?

// Check if a verified email 
function verified($username) { 
    global $conn; 
    if($username == '') { 
     return false; 
    } 
    $q = $conn->prepare("SELECT * FROM users WHERE Username='".$username."' AND Verified = 1"); 
    $q->execute(); 

    return ($q->rowCount() > 0); 
} 

if(verified('Foo')) { 
    echo 'Foo exists'; 
} 
0

Эта строка не является правильным:

if (verified($_SESSION['Username'] == '0') 

Вы пропускаете ')' после того, как $ _SESSION [ 'Имя пользователя']. И результат будет целым числом (ROWCOUNT), так что «» не нужны

if (verified($_SESSION['Username']) == 0) 
0

если ошибка на копии пасты, его хорошо, в противном случае проверьте

если (проверено ($ _ SESSION [» имя пользователя '] ) == '0')

проверить правильность' ) 'после [' Имя пользователя ']

затем проверьте session_start(); перед $_SESSION['Username']

Смежные вопросы