PHP,未定义的偏移量:1
我想用一个文本文件构建一个超级简单的登录脚本。文本文件包含PHP,未定义的偏移量:1,php,login,login-script,Php,Login,Login Script,我想用一个文本文件构建一个超级简单的登录脚本。文本文件包含 password username name 密码、用户名和名称之间是一个选项卡。我读取文件,按制表符分解,然后对照行检查用户输入 但我总是得到(一)未定义的偏移量错误。我想这是因为爆炸功能,但我不知道为什么 这是我的密码: if(!empty($_POST['login_inputEmail']) || !empty($_POST['login_inputPassword'])) { $log = 0; //no
password username name
密码、用户名和名称之间是一个选项卡。我读取文件,按制表符分解,然后对照行检查用户输入
但我总是得到(一)未定义的偏移量
错误。我想这是因为爆炸功能,但我不知道为什么
这是我的密码:
if(!empty($_POST['login_inputEmail']) || !empty($_POST['login_inputPassword']))
{
$log = 0; //not logged in
$username = $_POST['login_inputEmail'];
$password = $_POST['login_inputPassword'];
$userdatei = fopen ("documents/user.txt","r");
while (!feof($userdatei))
{
$zeile = fgets($userdatei,800);
$userdata = explode("\t", $zeile);
if ($username == $userdata[1] && $password == trim($userdata[0]))
{
$log = 1; //logged in
}
}
fclose($userdatei);
}
在代码中添加is_array()和isset(),以避免错误。提及
可能是您的文件编码有问题。在
explode
操作之后,您可以执行var\u转储($userdata)
吗?请参阅@Benny yes我可以这样做,看起来像array(3){[0]=>string(1)“142”[1]=>string(18)”bla@blub.com“[2]=>string(11)“Mustermann”}
。。。在一些行中,我有这样的string(6)“B�hr“
在分解
行上,错误出现在哪一行?”。非常感谢您的帮助,现在它工作了!
if(!empty($_POST['login_inputEmail']) || !empty($_POST['login_inputPassword']))
{
$log = 0; //not logged in
$username = $_POST['login_inputEmail'];
$password = $_POST['login_inputPassword'];
$userdatei = fopen ("documents/user.txt","r");
while (!feof($userdatei))
{
$zeile = fgets($userdatei,800);
$userdata = explode("\t", $zeile);
if(is_array($userdata))
{
if(isset($userdata[1]) && isset($userdata[0]))
{
if ($username == $userdata[1] && $password == trim($userdata[0]))
{
$log = 1; //logged in
}
}
}
}
fclose($userdatei);
}