Eli voisiko joku väsätä alla olevaan koodipätkään semmosen, että se hakisi tunnukset ja salasanat esim tunnukset.dat tiedostosta. Tunnukset olisivat tiedostossa esim. tälläin:
tunnus1 salasana1 tunnus2 salasana2 tunnus3 salasana3
Data tiedostossa muodossa:
tunnus|salasana
$tiedosto = file("tiedosto.txt"); foreach ($tiedosto as $rivi) { explode("|", $rivi); $rivi[0]; // tunnus $rivi[1]; // salasana }
En testannut, mutta voisi toimiakin :)
Pitäisikö tuon tukea montaakin tunnusta?
Pitäis.
Kokeilen sitten tota =)
Kokeile vaan tota... ja laita vaikka sivuilleskin niin tuun murtautumaan sinne... vinkki : passut kannattasi cryptata ettei niitä saa selville kovinkaan helposti.
Heheh, luulitko etten ollut kryptaamassa niitä? :P
Mutta, toi skripti ei kyllä tunnu toimivan... en ole ihan varma olenko sen oikein laittanut, niin voisiko joku ihan varmistukseksi laittaa sen tuohon aiemmin lähettämääni koodinpätkään?
<?php $tiedosto = "tunnukset.txt"; $success = false; for ($i = 0; $i < count($tiedosto); $i++) { $temp = explode("|", $tiedosto[$i]); $tunnus = $temp[0]; $passu = $temp[1]; if ($_POST['tunnus'] == $tunnus and md5($_POST['salasana']) == $passu) { $success = true; } } if ($success) { echo("Tervetuloa, " . $_POST['tunnus'] . "!"); } else { echo("Virhe: Tunnus / salasana väärin!"); } ?>
Eli pitäis toimii siinä sun formissa, POST:illa lähetät ja kenttien nimet on 'tunnus' ja 'salasana'. Niin ja tunnukset menee näin tiedostoon:
Tunnus|Salasana kryptattuna md5():llä.
Edit: Myös tämä lukee useita tunnuksia, sun pitää vaan kattoo et ne menee omille riveilleen tiedostossa, ja salasanat kryptattuna md5():llä.
Oletko kokeillut tuota itse Teme? Vaikka tiedosto on oikein ja siellä on salasanat niin sanoo että väärin on. Lisäsin siihen semmosen että se näyttää mikä olisi ollut oikea tunnus ja salasana, niin tunnus oli "t" ja salasanaa ei ollut. Tekee samanlailla ilman md5:sta...
kokeiles laittaa joka rivin loppuun |, eli ne ois tiedostossa noin:
tunnus|salasana md5:lla|
Ei auttanut sekään =/
Tämän koodin pitäisi toimia:
<?php //muutetaan lomakemuuttujat lyhemmiksi $tunnus = $_POST['tunnus']; $salasana = $_POST['salasana']; //luetaan tunnukset ja salasanat tiedostosta taulukkoon $tiedot = file("tunnukset.dat"); //tämän muuttujan avulla tarkistetaan kirjautumisen onnistuminen $onnistui = 0; //käydään tiedoston rivejä läpi pareittain for ($i = 0; $i < count($tiedot); $i += 2) { //tarkistetaan tunnuksen ja salasanan vastaavuus //(trim-funktion avulla poistetaan rivinvaihto rivien lopusta) if (trim($tiedot[$i]) == $tunnus && trim($tiedot[$i + 1]) == $salasana) { //näytetään tervetuloviesti echo "Tervetuloa, $tunnus!"; //kirjautuminen siis onnistui $onnistui = 1; //poistutaan silmukasta break; } } //näytetään virheilmoitus, jos kirjautuminen ei onnistunut if (!$onnistui) { echo "Tunnusta ei löytynyt!"; } ?>
Kiitos Antti! Nyt toimii hienosti =)
Aihe on jo aika vanha, joten et voi enää vastata siihen.