嘿大家我已经完成了我的研究,我发现我仍然卡住很多人说在变量之前放@符号但它似乎没有用,所以我的代码给了我这个错误
Notice: Undefined index: 2 in login.php on line 20
我的代码是
if( isset($_REQUEST['email']) || isset($_REQUEST['pwd']) || $_REQUEST['email'] != "" || $_REQUEST['pwd'] != "" )
{
$inputFile = fopen("members.txt", "r");
$found = false;
$i =0;
//read the read.txt until the end of file
while(!feof($inputFile) && $found == false)
{
$line = fgets($inputFile);
// replace the special charater within the lines by there proper entity code
$lineArray = preg_split("/\,/", (string)$line);
if ($_REQUEST['email'] === $lineArray['2'] && $_REQUEST['pwd'] === $lineArray['4'])
{
session_start();
$found = true;
$useremail=$_REQUEST['email'];
$password= $_REQUEST['pwd'];
//time to set sessions and stuff
$_SESSION['useremail'] = $useremail;
$_SESSION['password'] = $password;
//send the redirect header
header('Location: index.php');
exit();
}
}
fclose($inputFile);
}
所以它所指的行是
if ($_REQUEST['email'] === $lineArray['2'] && $_REQUEST['pwd'] === $lineArray['4'])
我已尝试过许多其他变体,例如在$ lineArray前面删除单引号添加@并同时执行这两项操作,任何人都可以帮助我将值打印出来当我打印出来但是当它到达此if语句时它没有转向相等,它给了我这个错误。
如果也尝试了
if ($_REQUEST['email'] === $lineArray[2] && $_REQUEST['pwd'] === $lineArray[4])
和
if ($_REQUEST['email'] === @$lineArray[2] && $_REQUEST['pwd'] === @$lineArray[4])
答案 0 :(得分:2)
您需要$lineArray[2]
。数组的索引是整数,而不是字符串。并且还要确保相同的数组是否至少包含3个元素。
这就是问题所在:
$lineArray = preg_split("/\,/", (string)$line);
它应该是(因为你似乎在,
分裂):
$lineArray = preg_split("/,/", (string)$line);
PS:考虑使用更简单的$array = explode(",",$yourString)
答案 1 :(得分:1)
您需要为数组键使用数字(无引号),但在比较之前,您还需要检查这些数组值是否与isset()
一起存在。
if (isset($lineArray[2]) && $_REQUEST['email'] === $lineArray[2] ...
答案 2 :(得分:1)
错误意味着您的代码中使用了未定义的var。在你的情况下,它正在讨论$lineArray['2']
。这不是一个严重的错误,所以你可以懒惰并改变你的错误设置来摆脱它:
error_reporting(E_ERROR | E_WARNING | E_PARSE);
但你真的应该修改它。
正如Devnate建议的那样,你需要使用int来指定数组的索引键,而不是字符串(所以这个$lineArray[2]
而不是$lineArray['2']
)。为什么?因为之前使用的密钥('2')从未设置过,导致错误。
您说当您尝试上述操作时,比较失败。在看到print_r($lineArray);
的结果之前,我无法帮助你。
这是您上一个问题的代码。很遗憾你没有接受我的建议并且使用我的代码。如果你这样做,你就不会遇到这个问题。但那是另一回事。发布print_r($lineArray);
以便我可以看到比较的问题。