php if/else未按预期工作

php if/else未按预期工作,php,if-statement,Php,If Statement,我是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

我是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">'; 
}
?>

整个网页在这里,但删除了一个简短的例子。

如果您在网页中使用If-else语句,您可能会发现这种格式更容易:

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

如果您在网页中使用If-else语句,您可能会发现这种格式更容易:

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

试试这个代码,你的第一个括号是关闭而不是打开的

<?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">'; 
}
?>

整个网页在这里,但删除了一个简短的例子。

试试这个代码,你的第一个短括号是关闭的,而不是打开的

<?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">'; 
}
?>

整个网页在这里,但删除了一个简短的例子。
更好的方法:

<?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>

整个网页在这里,但删除了一个简短的例子。
检查牙套,在使用本课程之前,请以更好的方式开始本课程:

<?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>

整个网页在这里,但删除了一个简短的例子。

检查大括号并在使用会话之前开始会话

检查if附近的大括号。在开始之前也要做一些练习谢谢大家。我在我原来的帖子中犯了一个错误,我道歉。大括号在我的代码中是正确的,而不是在我的问题中。我也作为第一行开始了我的课程。谢谢大家!!它现在工作正常,我真的很感谢你的帮助!!检查if附近的支架。在开始之前也要做一些练习谢谢大家。我在我原来的帖子中犯了一个错误,我道歉。大括号在我的代码中是正确的,而不是在我的问题中。我也作为第一行开始了我的课程。谢谢大家!!它现在工作正常,我真的很感谢你的帮助!!谢谢大家!!它现在工作正常,我真的很感谢你的帮助!!谢谢大家!!它现在工作正常,我真的很感谢你的帮助!!一个更好的方法是记住将
die()
放在
标题()之后,这样您就不会在重定向的同时发送更多的内容了。毫无疑问。此外,我通常创建自己的重定向函数,该函数打印出一个简单的html页面,其中包含meta重定向和js重定向。另一件事是使用输出缓冲区来确保在头文件之前不会刷新内容。感谢您的输入,您应该使用绝对URI作为参数“Location”(包括方案、主机名和绝对路径)。更好的方法是记住将
die()
放在
header()
之后,这样您就不会随重定向一起发送更多内容。毫无疑问。此外,我通常创建自己的重定向函数,该函数打印出一个简单的html页面,其中包含meta重定向和js重定向。另一件事是使用输出缓冲区来确保在头文件之前不会刷新内容。感谢您的输入,您应该使用绝对URI作为参数“Location”(包括方案、主机名和绝对路径)。