Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Sisäänkirjautuminen

Sivun loppuun

Bagard [15.01.2004 17:09:57]

#

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
<?php
if ($_POST['tunnus'] == "Tunnus" and $_POST['salasana'] == "Salasana")
   echo "Tervetuloa ".$_POST['tunnus']."!";
else echo "Virhe: tunnus / salasana väärin!";
?>

jrantala [15.01.2004 17:18:22]

#

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 :)

Bagard [15.01.2004 17:33:18]

#

Pitäisikö tuon tukea montaakin tunnusta?

Draiz [15.01.2004 17:49:22]

#

Pitäis.

Bagard [15.01.2004 18:03:01]

#

Kokeilen sitten tota =)

TETRIS [15.01.2004 20:56:56]

#

Kokeile vaan tota... ja laita vaikka sivuilleskin niin tuun murtautumaan sinne... vinkki : passut kannattasi cryptata ettei niitä saa selville kovinkaan helposti.

Bagard [15.01.2004 21:42:14]

#

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?

Teme [16.01.2004 14:57:47]

#

<?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ä.

Bagard [16.01.2004 18:11:56]

#

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...

kenkku [16.01.2004 18:46:07]

#

kokeiles laittaa joka rivin loppuun |, eli ne ois tiedostossa noin:
tunnus|salasana md5:lla|

Bagard [16.01.2004 19:57:06]

#

Ei auttanut sekään =/

Antti Laaksonen [16.01.2004 22:44:07]

#

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!";
}

?>

Bagard [16.01.2004 23:22:51]

#

Kiitos Antti! Nyt toimii hienosti =)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta