Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[PHP] Bestand lezen probleem

Pagina: 1
Acties:
  • 505 views

Onderwerpen


Verwijderd

Topicstarter
Hallo,

Ik was bezig met een klein blog. Ik heb een tekst bestand met een email en password erin. Ik heb daarvoor een klein script geprogrammeerd die het kijkt of de gebruikers mail overreen komt of niet dat werkt succesvol maar ik krijg telkens een message erbij die ik bij de else functie heb gezet. Ik heb momenteel op google gezocht ik heb niet zovele resultaat daarvan kunnen vinden.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php


$email = $_POST['email'];
$pass = $_POST['password'];


$bestand=fopen("tekst.txt","r");
    if(!$bestand)
        {   
            echo "kon geen bestand vinden";
        }   

    while(!feof($bestand))
        {
            $account =fgetcsv($bestand, 100, "\t");
            $account_new = $account[1];
            $pass_new = $account[2];
            
            if($email == $account_new && $pass == $pass_new){
                echo "succes vol in gelogd";
            }else{
                echo "fout tijdens het inloggen";
            }
        }
        fclose($bestand);
?>

  • Cartman!
  • Registratie: April 2000
  • Niet online
Debuggen! Wat staat er in $account, wat staat er in $account_new etc.

offtopic:
succes vol in gelogd ? www.spatiegebruik.nl

Verwijderd

Topicstarter
Cartman! schreef op donderdag 17 februari 2011 @ 14:59:
Debuggen! Wat staat er in $account, wat staat er in $account_new etc.

offtopic:
succes vol in gelogd ? www.spatiegebruik.nl
Wanneer ik het echo dan komt er wel de email en de password eruit dus dat is wel goed wanneer ik het vergelijk dan werkt het ook maar er komt wel succes vol ingelogd maar daar bij komt er ook nog de else functie er bij en die is -> (een fout tijdens het inloggen). Dus er komen 2 berichten eruit en dat wik ik niet :P

[ Voor 5% gewijzigd door Verwijderd op 17-02-2011 15:02 ]


  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Hint: je loop wordt meerdere malen uitgevoerd..

Verwijderd

Topicstarter
EddoH schreef op donderdag 17 februari 2011 @ 15:04:
Hint: je loop wordt meerdere malen uitgevoerd..
Maar ik kan de if statement tog niet buiten te loop uitvoeren?

  • Cartman!
  • Registratie: April 2000
  • Niet online
Daar moet je dus iets op verzinnen, dat heet programmeren ;)

offtopic:
tog -> toch.. een beetje op spelling letten mag best imo


edit: ik hoop dat je tekst.txt niet in je docroot staat maar daarbuiten trouwens? Zo te zien pas je niet een simpele hashing toe nu namelijk of wel?

[ Voor 73% gewijzigd door Cartman! op 17-02-2011 15:32 ]


Verwijderd

Los van bovenstaande opmerkingen is het opslaan van wachtwoorden in een tekstbestand geen goed idee. En je loopt alle wachtwoorden af. Als in het bestand 10 gebruikers staan krijg je 9 foutmeldingen bij een succesvolle login.

  • nemo55
  • Registratie: Februari 2004
  • Laatst online: 13-10 23:54
Laat eens zien wat er exact in je tekstbestand staat. Dus incl. leestekens en lege regels. Het lijkt er nl. op de er nog een lege regel achteraan komt waardoor je loop één keer teveel wordt uitgevoerd.

Daarnaast zie ik nog ik dat je de array posities 1 en 2 gebruikt. Ik neem aan dat je weet dat arrays vanaf 0. Aangezien dat het werkt maakt het hier weinig uit maar ik vraag me af wat je daar heb. Een leeg veld?

Nog een tip. Wat denkt je dat er gebeurt met je loop als $bestand false retouneert omdat ie niet geopend/gevonden kan worden en je alsnog gaat controleren op een eof? ;)

Check de manual nog eens:
http://php.net/manual/en/function.feof.php

Verwijderd

Topicstarter
Ik heb hem upgeload.


Hier het tekst bestand.

http://www.mediafire.com/?mhf9a1dbdibpd71

[ Voor 94% gewijzigd door Verwijderd op 17-02-2011 15:43 ]


  • Raymond P
  • Registratie: September 2006
  • Laatst online: 13:17
Zoals lfs zegt, is dit waarschijnlijk geen goed idee.
Als je het toch liever simpel houdt dan kan je je data misschien beter in een array opslaan in een php filetje en die includen zo nodig.

Om dit probleem op te lossen zou je een boolean kunnen gebruiken zodat je na je while je foutafhandeling kan doen.
Je zou dan de boolean mee kunnen nemen in de while om te checken of je al een hit hebt.
Of je zou je while kunnen breaken zodra je een hit hebt.

- knip -


Verwijderd

Topicstarter
Ik heb nu een link upgeload.

Ik moest het vanaf een tekst bestand halen.

  • nemo55
  • Registratie: Februari 2004
  • Laatst online: 13-10 23:54
Ah, zoals ik al dacht. Er zit nog een lege regel achter je eerste. Misschien handig om een betere teksteditor te gebruiken zodat je dit meteen ziet. Notepad++ heeft dit bijvoorbeeld

code:
1
2
user-->account-->pass
[lege regel]


[Lege regel] moet je dan even wegdenken maar anders sloopt tweakers hem compleet weg.

Verwijderd

Topicstarter
nemo55 schreef op donderdag 17 februari 2011 @ 15:59:
[...]


Ah, zoals ik al dacht. Er zit nog een lege regel achter je eerste. Misschien handig om een betere teksteditor te gebruiken zodat je dit meteen ziet. Notepad++ heeft dit bijvoorbeeld

code:
1
2
user-->account-->pass
[lege regel]


[Lege regel] moet je dan even wegdenken maar anders sloopt tweakers hem compleet weg.
Heb het lege regel weggehaald maar de probleem blijft zicht voordoen!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Verwijderd schreef op donderdag 17 februari 2011 @ 15:48:
Ik moest het vanaf een tekst bestand halen.
van wie?
Heb het lege regel weggehaald maar de probleem blijft zicht voordoen!
Ga nu eens debuggen dan... echo in je loop even alles wat ie doet. Het komt op mij over als "fix mijn code want ik ben lui".

edit: @hieronder: geef dan antwoord ook op m'n vraag en post debug info :{

[ Voor 47% gewijzigd door Cartman! op 17-02-2011 16:26 ]


Verwijderd

Topicstarter
Cartman! schreef op donderdag 17 februari 2011 @ 16:11:
[...]

van wie?


[...]

Ga nu eens debuggen dan... echo in je loop even alles wat ie doet. Het komt op mij over als "fix mijn code want ik ben lui".
Nee hoor ik heb momenteel al geprobeerd om te echo'en!

[ Voor 7% gewijzigd door Verwijderd op 17-02-2011 16:26 ]


  • kKaltUu
  • Registratie: April 2008
  • Laatst online: 16-11 20:57

kKaltUu

Profesionele Forumtroll

Verwijderd schreef op donderdag 17 februari 2011 @ 16:21:
[...]


Nee hoor ik heb momenteel al geprobeerd om te echo'en!
En waar gaat het dan fout?

Bovenstaande is mijn post. Lees deze aandachtig, dank u wel voor uw medewerking.


  • nemo55
  • Registratie: Februari 2004
  • Laatst online: 13-10 23:54
Verwijderd schreef op donderdag 17 februari 2011 @ 16:09:
[...]


Heb het lege regel weggehaald maar de probleem blijft zicht voordoen!
Dan doe je iets niet goed. Ik heb jou code gebruikt en je tekstbestand waarbij ik de 2e regel heb verwijderd. Controleer anders wat er uit $account komt rollen.

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 12:11

MueR

Admin Devschuur® & Discord

is niet lief

Dit gaat niet werken. Lees Programming FAQ - Debuggen: hoe doe ik dat? en de Quickstart nog eens door. Steeds maar roepen dat het niet werkt en wachten tot wij een oplossing aandragen is niet heel productief.

Probeer het gerust met een nieuw topic, maar dan met de informatie die we nodig gaan hebben om je te helpen. Daarbij moet je wel in de gaten houden dat we hier zijn voor advies, niet om je script voor je te maken.

Anyone who gets in between me and my morning coffee should be insecure.

Pagina: 1

Dit topic is gesloten.