Waarom werkt dit script niet altijd?

$_file = file('Login/Logins.txt');
$us = $_POST['user'];
$ps = $_POST['pas'];

for ($nr = 1; $nr <= count($file); $nr++)
{
$items = explode(';',$_file[($nr-1)]);
if ($us == $items[0] && $ps == $items[1])
{
echo "LOGIN!";
}
}

in die file staat:

username1;user
username2;user2

Waarom staat er niet altijd login als ik de goede inlognamen invoer en de goede paswoorden?

Kan iemand me helpen?
KAN IEMAND ME HELPEN????????
Hallo Jaha,
Als er na 3 minuten nog niemand antwoord heeft gegeven, hoef je niet gelijk al te gaan bumpen ^o)...
Arrays hebben de neiging bij index 0 te beginnen, en niet bij 1.

En doe effe niet zo wanhopig, alsjeblieft...
Let op!! Je haalt de file binnen, waarin dit staat:

username1;user
username2;user2

Als je dit alleen op ; explode krijg je:

array[0]username1
array[1]user
username2
array[2]user2, dus dat gaat fout. Ik zal het ff aanpassen, zodat het wel werkt met je indeling van je pwd file.

<?php

$_file = file('Login/Logins.txt');
$us = $_POST['user'];
$ps = $_POST['pas'];

$users = explode(':',$_file);
$aantal = count($users);

for ($nr = 0; $nr <= $aantal; $nr++)
{
$items = explode(';',$users[$nr]);
if ($us == $items[0] && $ps == $items[1])
{
echo "LOGIN!";
}
} <br>

?>

EDIT:
Zet users dan zo in je file:
username1;user:
username2;user2:
if (!($nr == count($_file)))
{
$ps[1] = substr($pss[1],0,(strlen($pss[1])-2));
}
else
{
$ps[1] = $pss[1];
}

dat moest de if zijn
bedankt voor de reacties
$_file en $file (in de count()) is niet hetzelfde.
jawel
omdat er achter het eerste paswoord een enter staat moet je die (\n of \r) weghalen met:

$ps[1] = substr($pss[1],0,(strlen($pss[1])-2));
dus:

<?php
$_file = file('Login/Logins.txt');
$us = $_POST['user'];
$ps[0] = $_POST['pas'];
$nr = 1;
while ($nr <= count($_file))
{
$pss = explode(';',$_file[($nr-1)]);
if (!($nr == count($_file)))
{
$ps[1] = substr($pss[1],0,(strlen($pss[1])-2));
}
else
{
$ps[1] = $pss[1];
}
if ($us == $pss[0] && $ps[0] == $ps[1])
{
echo 'login user<br>';
}
$nr++;
}
?>

Reageren