Опция выпадающего меню, попадающая в базу данных, только когда установлена ​​переменная $ _SESSION - PullRequest
0 голосов
/ 20 декабря 2011

tl, dr: if (isset ($ _ SESSION ["school"])) == true, то работает, в противном случае - нет.

Итак, на моей главной странице есть раскрывающееся меню, в котором задается $ _SESSION ["school"], если пользователь решает, что ему нужно больше информации о своем местном филиале. Затем я хочу убедиться, что они правильно настроены при регистрации. Итак, у меня есть выпадающее меню, которое отображает $ _SESSION ["school"], если оно существует, а затем отображает все ветви ниже на случай, если их нужно изменить. Когда $ _SESSION ["school"] не существует, я хочу, чтобы он отображал только список школ и не обращал внимания на $ _SESSION ["school"].

Однако, что происходит с этим кодом, если задано значение $ _SESSION ["school"], информация попадает в базу данных, даже если вы изменили раскрывающийся список во время регистрации. Если $ _SESSION ["school"] не задано, информация никогда не попадает в базу данных даже при ее настройке во время регистрации. Что еще интереснее, у меня есть проверка этого пробела, что означает, что страница распознает, что меню! = "" ... информация просто не попадает в базу данных, если $ _SESSION ["school"] не имеет был ранее установлен. Я думаю, что приведенный ниже код является релевантным кодом, потому что именно здесь я использую $ _SESSION ["school"] для установки опции меню, но я могу опубликовать некоторые другие части, если вам это нужно.

schoolsList.php

<?php

if(isset($_SESSION['school']) && $_SESSION['school']==true) {
    echo
    '<option value="'.$_SESSION["school"].'">'.$_SESSION["school"].'</option>';
}

echo
'<option value=""></option>
<option value="Indiana University">Indiana University</option>
<option value="Purdue University">Purdue University</option>';

?>

в моей форме:

<select 
                            class="school"
                            id="school"
                            name="school"
                            >';

                    include "schoolsList.php";

                echo
                '</select>'; 

1 Ответ

1 голос
/ 21 декабря 2011
// will always validate to true except when $_SESSION["school"] is not set  
if($_SESSION["school"])

Это должно дать вам больше возможностей для улучшения кода.

if(isset($_SESSION['school']) && $_SESSION['school']==true)
{
    // do something here
}

PHP очень позволяет вам устанавливать переменные и переключаться между типами, поэтому эти оценки могут быть сложными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...