Poslao: 09 Dec 2013 21:04
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Ovako, imam jedan tekstualni fajl u kom su smeštene neke kombinacije od 14 karaktera i nick-ovi korisnika.
ABCD87ER3T12OP Pera
J728PO9U1T27VG Zoran
LMXD5000UQ70YI Dragan
... ...
... ...
... ...
Zanima me kako da automatizujem proces provere , a ono što želim jeste da nakon što korisnik upiše tu kombinaciju PHP učita ovaj tekstualni fajl , pređe sve linije proveravajući da li postoji takva kombinacija i ako postoji da pokaže odgovarajući nick (neki sistem verifikacije). Ako ne postoji da korisnika redirektuje (prebaci) na stranicu error.php. Sad od toga jedino što znam je učitavanje fajla i prebacivanje
Ne morate pisati ceo kod , samo mi treba objašnjenje na koji način to da uradim i koje PHP funkcije da koristim, hvala unapred
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 09 Dec 2013 21:49
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
Ukratko: fopen(), fread(), fclose() - ako je veliki fajl (tipa preko nekoliko MB), file() ako je manji od toga,
Inace - cuvanje sifri korisnika u plain text fajlu, dostupnom odakle ti padne na pamet, pa jos i u neenkritpovanom formatu je prilicno losa ideja.
|
|
|
|
Poslao: 09 Dec 2013 21:57
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Nisam radio PHP nikada, ali mogu da ti dam neke smernice.
U principu, skeniraš fajl od početka do kraja. Za ovako nešto je najpogodnija while petlja koja će da provera uslov posle svake iteracije. Na početku postaviš neku logičku promenljivu koja će da omogući početak izvršenja petlje, ali će isto tako da prekine izvršavanje petlje ukoliko se promeni. U svakoj iteraciji pročitaš po jedan red (dva stringa, prvi je taj od 14 karaktera, a onda čitaš do kraja linije) i prvi string upoređuješ sa stringom koji je uneo korisnik. Ukoliko pronađeš poklapanje dva stringa menjaš logičku promenljivu i tom prilikom se na kraju te iteracije izlazi iz petlje jer uslov nije više zadovoljen. Drugi uslov u while petlji će ti biti nešto kao feof u C-u. Ne znam da li ta funkcija postoji u PHP-u, ali treba da postoji nešto slično. Ona proverava da li se sa čitanjem fajla došlo do kraja. Ukoliko jeste, uslov petlje nije više zadovoljen i izlazi se iz petlje. Na kraju samo proveriš uzrok izlaska iz petlje i odatle znaš da li string koji tražiš postoji ili ne.
|
|
|
|
Poslao: 10 Dec 2013 09:32
|
offline
- FoxVanis
- Ugledni građanin
- Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
- Pridružio: 13 Jun 2010
- Poruke: 307
- Gde živiš: Subotica
|
Odmah od starta ću ti reći koristi MySQL lakše će ti biti i konekcija i sve što ti treba nego da se drndaš sa fajlovima. Ono što i @Rastafarii kaže, to ti je način ali NIKAKAKO u fajlovima čuvati korisnička imena i šifre. EVENTUALNO unutar neke PHP klase ako znaš da ta imena i šifre nećeš menjati svakih 6 meseci pa će ti tako biti "sigurnija". Tu možeš i neku administraciju napraviti pa na isti način uraditi prepisivanje tog PHP fajla ali ga onda moraš izčitati, uzeti PHP elemnte i pripremiti, uzeti sve podatke svih korisnika, pa izdvojiti tvog korisnika a ostale staviti na čekanje, potom izmeniti podatke tvog korisnika, sve pridružiti i tek onda upisati... Pa... trebaće ti za to jedno 700-800 linija PHP koda a sa MySQL bi to rešio za 20-30 linija.
|
|
|
|
|
Poslao: 10 Dec 2013 14:09
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Napisano: 10 Dec 2013 14:05
@FoxVanis, sviđa mi se tvoj predlog. Nisu u pitanju baš lozinke, više kao neki bezbednosni ID koji je jedinstven za svakog korisnika (ručno ga dodajem). Verovatno će u MySQL to biti i brže jer ovako mora da otvara fajl pa da isčitava svaku liniju itd. ima tu dosta koda, pa bolje da odradim ispitivanje jednostavno nego to.
Znači to bi bilo ovako:
ako korisnik upiše nešto u polje za SID sledi provera (u suprotnom biva prebačen na glavnu stranu)
poseban SID za svakog korisnika (ovo mogu uneti i ručno)
ako postoji SID koji je ukucao korisnik on se šalje u Kontrol panel pod tim nick-om
Znači tabela , jedan red za nick, drugi za sid?
Dopuna: 10 Dec 2013 14:09
Rastafarii ::Inace - cuvanje sifri korisnika u plain text fajlu, dostupnom odakle ti padne na pamet, pa jos i u neenkritpovanom formatu je prilicno losa ideja.
Hvala na primedbi, na to uopšte nisam obratio pažnju.
|
|
|
|
Poslao: 10 Dec 2013 14:16
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
E.L.I.T.E. ::Znači tabela , jedan red za nick, drugi za sid?Ili pak kolone?
|
|
|
|
|
Poslao: 10 Dec 2013 16:09
|
offline
- FoxVanis
- Ugledni građanin
- Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
- Pridružio: 13 Jun 2010
- Poruke: 307
- Gde živiš: Subotica
|
E.L.I.T.E. ::Napisano: 10 Dec 2013 14:05
@FoxVanis, sviđa mi se tvoj predlog. Nisu u pitanju baš lozinke, više kao neki bezbednosni ID koji je jedinstven za svakog korisnika (ručno ga dodajem). Verovatno će u MySQL to biti i brže jer ovako mora da otvara fajl pa da isčitava svaku liniju itd. ima tu dosta koda, pa bolje da odradim ispitivanje jednostavno nego to.
Znači to bi bilo ovako:
ako korisnik upiše nešto u polje za SID sledi provera (u suprotnom biva prebačen na glavnu stranu)
poseban SID za svakog korisnika (ovo mogu uneti i ručno)
ako postoji SID koji je ukucao korisnik on se šalje u Kontrol panel pod tim nick-om
Znači tabela , jedan red za nick, drugi za sid?
Hvala na primedbi, na to uopšte nisam obratio pažnju.
Ako već imaš korisnike u bazi onda koristi ID i SID da bih lakše pratio. Predlog je da napraviš neki HASH generator koji će ti sakriti lozinku ili tvoj SID kod. Kasnije kod provere samo generišeš iz inputa ono što korisnik upiše i uporediš u bazi. Ako je to-to onda dalje ima pristup. neznam ali sve neka ide u MySQL. Prvo napravi šemu na papiru pa onda se baci na kodiranja.
|
|
|
|
|