好的,所以我遇到了我的代码问题,因为无论我将其更改为什么,它都会保留在索引页面上?
这是我的代码
<?php
// Maintenance mode
$system = (mysql_query("SELECT * FROM system"));
if($system['maintenance'] == 1)
{
header('Location: /maintenance');
exit;
}
?>
我想要它,所以如果维护= 1,它会将你发送到maintenance.php页面但不是任何人都可以帮助我吗?我试过了,
if(!$system['maintenance'] == 1)
哪个有效,但我在maintenance.php页面中有这个代码
<?php
$system = (mysql_query("SELECT * FROM `system`"));
if(!$system['maintenance'] == 0)
{
header('Location: /index');
exit;
}
?>
我认为会把我发回到索引页面一旦它在数据库中显示它是0
或者我想要它做的事情。任何人都可以解释为什么我的代码不起作用吗?
我是初学者php,mysql和C ++编码器/程序员,所以请尽量以最简单的方式解释它。
由于@ Script47,我修复了它。 新代码和作品
<?php
$system = mysql_query("SELECT * FROM system");
$results = mysql_fetch_array($system);
if($results['maintenance'] == 1)
{
header('Location: /maintenance');
exit;
}
?>
我不需要维护的扩展名的原因是因为我将它设置在.htaccess中以忽略它们,但是每个人都知道它是php
文件。
答案 0 :(得分:1)
您需要实际从数据库中获取结果。查看我提供的链接。我会用代码更新我的帖子。
State
http://php.net/manual/en/function.mysql-fetch-row.php
修改1
您的代码很容易SQL injection
,即使已弃用,您仍然使用 <?php
$system = mysql_query("SELECT * FROM system");
$results = mysql_fetch_row($system);
if($results[yourColumnKey] == 1)
{
header('Location: /maintenance.php');
exit;
}
?>
,您应该使用MySQL
或MySQLi
准备好的语句。
修改2
您似乎没有在PDO
上指定文件扩展名。
header();
什么是维护?一个header('Location: /maintenance');
--^
文件?一个PHP
文件?您还需要指定扩展名。
答案 1 :(得分:0)
由于你是一个自我描述的初学者,最好学习如何使用mysqli而不是使用旧的弃用代码。
下面基本上是相同的事情,但将持续超过当前版本的PHP。这是一个很好的习惯。 (请注意,如果您要在查询中使用任何变量,则需要查找Prepared Statements
$conn = new mysqli($host, $username, $password, $dbname);
$system = $conn->query("SELECT maintenance FROM `system`");
while ($row = $system->fetch_assoc()) {
if($row['maintenance'] == 1) {
header('Location: /maintenance');
exit();
}
else {
header('Location: /index');
exit();
}
}