Help! Waarom doet dit het niet?!?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jaha

Jaha

05/01/2006 16:15:00
Quote Anchor link
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?
 
PHP hulp

PHP hulp

04/12/2024 20:05:36
 
Jaha

Jaha

05/01/2006 16:18:00
Quote Anchor link
KAN IEMAND ME HELPEN????????
 
Eric Cartman

Eric Cartman

05/01/2006 16:42:00
Quote Anchor link
Hallo Jaha,
Als er na 3 minuten nog niemand antwoord heeft gegeven, hoef je niet gelijk al te gaan bumpen ^o)...
 
Willem vp

Willem vp

05/01/2006 16:44:00
Quote Anchor link
Arrays hebben de neiging bij index 0 te beginnen, en niet bij 1.

En doe effe niet zo wanhopig, alsjeblieft...
 
Robert Deiman

Robert Deiman

05/01/2006 17:02:00
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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:
Gewijzigd op 05/01/2006 17:04:00 door Robert Deiman
 
Jaha

Jaha

05/01/2006 17:10:00
Quote Anchor link
if (!($nr == count($_file)))
{
$ps[1] = substr($pss[1],0,(strlen($pss[1])-2));
}
else
{
$ps[1] = $pss[1];
}

dat moest de if zijn
 
Jaha

Jaha

05/01/2006 17:11:00
Quote Anchor link
bedankt voor de reacties
 
- SanThe -

- SanThe -

05/01/2006 17:11:00
Quote Anchor link
$_file en $file (in de count()) is niet hetzelfde.
 
Jaha

Jaha

05/01/2006 17:12:00
Quote Anchor link
jawel
 
Jaha

Jaha

05/01/2006 17:12:00
Quote Anchor link
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));
 
Jaha

Jaha

05/01/2006 17:13:00
Quote Anchor link
dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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++;
                    }

?>
Gewijzigd op 05/01/2006 17:16:00 door Jaha
 
Jaha

Jaha

05/01/2006 17:16:00
Quote Anchor link
Thx Robert
 
Onbekend onbekend

onbekend onbekend

05/01/2006 17:35:00
Quote Anchor link
Kan je hier niet gewoon beter met xml werken?
 
Lissy Pixel

Lissy Pixel

05/01/2006 18:26:00
Quote Anchor link
Jaha:
jawel


Dacht het niet!!!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.