2013-04-28 79 views
1

我仍然是php的初学者,并且遇到逻辑运算符& &有点问题。我有一个令牌和秘密答案脚本,都是文本框。当用户提交令牌并回答时,脚本进入数据库,并且如果所有检查都清除(错误消息等),则进入下一步(输入新密码)。实际的脚本在我的生活网站上工作正常,但由于某种原因,它在我的计算机上本地工作不正常(说实话,我有点偏执,以防万一安全)。随着大量测试脚本指向此位的代码:逻辑运算符(&&)在本地不在php中工作

if(isset($uid) && isset($uidTwo)) { 
      header('Location: reset.php'); 
      exit(); 
     } 

的$ UID存储从用户数据库users_id和$ uidTwo存储从答案数据库tables_id(其中也有user_id说明作为一个其主要栏目)。当两者都匹配(True)时,脚本进入重置页面。

我已经做了很多测试,将& &更改为||。似乎工作和处理到下一页,但这种方式只适用于令牌框,你可以在答案框中键入任何内容,例如(ftgyhh),所以这没有用。

我已经检查头已经发送等,因为我有错误消息,但似乎没有任何工作的脚本本地。

那么,有没有人有任何想法,我可以错过?

编辑:$ uidTwo var_dump发现它是NULL,然后我意识到它可能是数据库端,所以我导入数据库的早期版本,发现它是。该脚本现在在本地工作,但在读取两个数据库sql文件之前和之后,我看不到我做错了什么。哦,这些东西在那里试试我们。干杯家伙为您提供所有帮助

+2

你可以显示设置'$ uid'和'$ uidTwo'的代码吗? – Ryan 2013-04-28 17:19:36

+0

是$ uid的代码是:list($ uid)= mysql_fetch_array($ result);和$ uidTwo相同 – bluefiredragon 2013-04-28 17:24:50

+0

只是一个提示:isset可以检查多个变量,因此不需要逻辑运算符。请参阅PHP手册[isset()](http://php.net/manual/de/function.isset.php) – SirDerpington 2013-04-28 17:27:27

回答

3

这里没有足够的信息来回答。仅供参考,你可以这样做:

if (isset($uid, $uidTwo)) { 
    header('Location: reset.php'); 
    exit(); 
} 

而不是使用& &。

我会做头之前类似

echo $uid ? "Uid is set" : "Uid is not set"; 
echo $uidTwo ? "Uid2 is set" : "Uid2 is not set"; 

,并开始,直到他们都没有什么,我想他们应该是工作我的方式回来。

+0

这比&&效果更好。为队友喝彩 – bluefiredragon 2013-04-28 19:10:45

0

isset()检查是否存在变量。你可能想使用empty(),看是否有变量包含的值,如:

if(empty($uid) && empty($uidTwo)) { 
     header('Location: reset.php'); 
     exit(); 
}