PHP, если / иначе не работает, как ожидалось - PullRequest
0 голосов
/ 17 сентября 2011

Я новичок в PHP и не могу понять, почему это не работает должным образом. То, что я хочу, чтобы это произошло, если сеанс найден, запустите веб-страницу, иначе перенаправьте на login.php. Происходит то, что веб-страница выполняется, и пользователь видит ошибки sql, а затем происходит перенаправление. Это как если бы выполнялись if и else. Пожалуйста, помогите.

<?php
if (isset($_SESSION['userID']))
{
$mainUID=$_SESSION['userID'];
?>
<body>

The entire webpage is in here but removed it for a short example.

</body>
</html>

<?
}
else
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=login.php">'; 
}
?>

Ответы [ 3 ]

2 голосов
/ 17 сентября 2011

приятнее:

<?php
session_start();
if (!isset($_SESSION['userID'])){
    header("Location: /login.php");
}
$mainUID=intval($_SESSION['userID']);

?>
<html>
<body>
The entire webpage is in here but removed it for a short example.
</body>
</html>

проверьте ваши фигурные скобки и выполните session_start перед использованием сеанса

0 голосов
/ 17 сентября 2011

Попробуйте этот код, который закрывала первая фигурная скобка вместо открытия

<?php
if (isset($_SESSION['userID']))
{
$mainUID=$_SESSION['userID'];
?>
<body>

The entire webpage is in here but removed it for a short example.

</body>
</html>

<?
}
else
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=login.php">'; 
}
?>
0 голосов
/ 17 сентября 2011

Если вы используете операторы if else на веб-странице, вам может показаться, что этот формат проще:

<?php if(true): ?>
    HTML Here
<?php else: ?>
    HTML Here
<?php endif; ?>

Но причина, по которой ваш код не работает, заключается в том, что у вас перепутаны фигурные скобки.

Изучите этот пример и сравните его с вашим кодом:

if(true) {
    // Do stuff
}
else {
    // Do stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...