我正在尝试让php选择应该出现哪个链接,具体取决于此人是否使用cookies登录我的网站。我试图编写这个我的自己,但它不起作用。所以我怎么去做这个这里正确的方法是我的代码:
<?php
if(isset($_COOKIE['maxgee_me_user'])) {
$username = $_COOKIE['maxgee_me_user'];
$password = $_COOKIE['maxgee_me_password'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
//if the cookie has the wrong password, echo's login
if ($password != $_COOKIE['maxgee_me_password'])
{ ?> <a href="logout.php"><?php echo "Logout"; ?></a>  
<?php
else {
?> <a href="loginpage.php"><?php echo "User Login";} ?></a>
答案 0 :(得分:1)
您永远不会从查询中读取密码。你有这个在顶部:
$password = $_COOKIE['maxgee_me_password'];
你将它与自己进一步比较下来:
if ($password != $_COOKIE['maxgee_me_password'])
你可以通过用以下方法替换它来修复它:
if ($password != $info['password'])
你也错过了一些花括号。您需要在else
之前和代码末尾添加一个,如果这不是脚本的结尾。使用格式和上述修复:
<?php
if(isset($_COOKIE['maxgee_me_user'])) {
$username = $_COOKIE['maxgee_me_user'];
$password = $_COOKIE['maxgee_me_password'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
$info = mysql_fetch_array( $check );
//if the cookie has the wrong password, echo's login
if ($password != $info['password']){ ?>
<a href="logout.php">Logout</a>
<?php }else{ ?>
<a href="loginpage.php">User Login</a>
<?php
}
}
?>
答案 1 :(得分:0)
<?php
if(isset($_COOKIE["maxgee_user"])) {
$username = $_COOKIE["maxgee_user"];
$password = $_COOKIE["maxgee_password"];
$q = mysql_query("SELECT password FROM users WHERE username = '".$username."' AND password = '".$password."'");
if(mysql_count_rows($q) > 0){
print("<a href='/logoutpage.php'>Logout</a>");
}else{
print("<a href='/loginpage.php'>Login</a>");
}
}else{
print("<a href='/loginpage.php'>Login</a>");
}
?>
快速而肮脏。自从我做了任何开发以来,已经有好几年了。在PHP中,但我想我还记得要领。请记住永远不要信任输入,包括保存在cookie中的输入,否则您将容易受到攻击。祝你好运![/ p>
答案 2 :(得分:0)
您的代码上有很多错误。 首先,在检查是否存在有效用户时,您需要同时使用用户名和密码。假设您已将pwd保存在表中。
$check = mysql_query("SELECT * FROM users WHERE username = '$username' AND password='$password'") or die(mysql_error());
使用mysql_num_rows($ check)&gt; 0查看是否找到了有效用户。 以下是一个完整的代码,但请注意这是一个糟糕的编码实践,你说你正在研究它。
<?php
if(isset($_COOKIE['maxgee_me_user']))
{
$username = $_COOKIE['maxgee_me_user'];
$password = $_COOKIE['maxgee_me_password'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username' AND password='$password'") or die(mysql_error());
if (mysql_num_rows($check)>0)
{
?>
<a href="logout.php">Logout</a>  
<?php
}
else
{
?>
<a href="loginpage.php"><?php echo "User Login"; ?></a>
<?php
}
}
else
{
?>
<a href="loginpage.php"><?php echo "User Login"; ?></a>
<?php
}
?>