我以前问过这个问题,但代码仍然不起作用。
我有一个登录系统,它运行良好,但我想做的下一步是根据每个用户的奖牌重定向,即1、2、3、4或5。在mysql数据库中,我有一个名为"奖章"的字段,它预先为每个用户名和密码填充5个金额中的1个。
假设一个有1枚奖牌的用户登录,我希望它转到位置"page1.html"
如果一个拥有2枚奖牌的用户登录,我希望它转到位置"page2.html"
如果一个有3枚奖牌的用户登录,我希望它转到"page3.html"等位置。
我尝试了以下代码,但它没有成功重定向:
// Check username and password match
if (mysql_num_rows($login) == 1) {
// Set username session variable
$_SESSION['username'] = $_POST['username'];
// Jump to secured page
$row = mysql_fetch_row($sql);
switch ($row['medals']):
case 1:
header('location: page1.html');
exit;
case 2:
header('location: page2.html');
exit;
case 3:
header('location: page3.html');
exit;
case 4:
header('location: page4.html');
exit;
case 5:
header('location: page5.html');
exit;
}
else {
// Jump to login page
header('Location: login.php');
}
?>
任何帮助都将是伟大的
您需要将$row = mysql_fetch_row($sql);
更改为$row = mysql_fetch_row($login);
mysql_fetch_row()
采用从mysql_query()
返回的资源,而不是SQL查询字符串(与传递给mysql_num_rows()
.的变量相同
看看这是否有帮助。你可能还想要一个默认的案例,重定向到主页或其他地方,以防奖牌列中出现意外值。
检查此项可能有用
$listQry = 'SELECT * FROM medals';
$listRes = mysql_query($listQry);
while($listRow = mysql_fetch_row($listRes)):
$data[] = $listRow[0];
endwhile;
foreach($data as $k=>$v):
switch($data[$k]):
case 1 : header('Location: page1.html');exit;break;
case 2 : header('Location: page2.html');exit;break;
endswitch;
endforeach;