Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Salasananvaihto

Bagard [17.03.2004 22:45:45]

#

Eli pitäisi saada alla olevaan koodipätkään semmonen, joka vaihtaisi salasanan tunnuksesta. Uusi salasana löytyisi $pass muuttujasta. Lisään tuohon sitten itse myöhemmin mail-funktion, millä lähetetään uusi salasana käyttäjälle.

Tunnusten tiedot on .txt filessä muodossa:
tunnus|valimerkki|md5salasana|valimerkki|email|valimerkki|ip-osoite|valimerkki|hosti|valimerkki|syntyma-aika muodossa pp.kk.vvvv|valimerkki|[/l]

<?php
if (isset($_POST['email'])) {
    $email = $_POST['email'];
    $syntymaaika = "".$_POST['paiva'].".".$_POST['kuukausi'].".".$_POST['vuosi']."";
    // Luodaan uusi salasana
    $pass1 = rand(0,9);
    $pass2 = rand(0,9);
    $pass3 = rand(0,9);
    $pass4 = rand(0,9);
    $pass5 = rand(0,9);
    $pass = md5($pass1."".$pass2."".$pass3."".$pass4."".$pass5);
    $emailpass = $pass1."".$pass2."".$pass3."".$pass4."".$pass5;
    $tunnukset = file("data/tunnukset.txt");
    for ($i = 0; $i < count($tunnukset); $i++) {
        $tunnus = explode("|valimerkki|", $tunnukset[$i]);
        // Tarkistetaan onko annettu email ja syntymä-aika oikein
        if ($email == $tunnus[2] and $syntymaaika = $tunnus[5]) {
            $juttu = "on";
            // --------- Tähän pitäisi laittaa se salasananvaihtoskripta ---------
        }
    }
    if ($juttu != "on")
    $virhe = "Annoit virheelliset tiedot!\n";
}
?>

Olga [17.03.2004 23:32:14]

#

Kävisköhän näin:

<?php
if ($email == $tunnus[2] and $syntymaaika = $tunnus[5]) {
  $juttu = "on";
  $vali = "|valimerkki|"; // välimerkki
  $tunnukset[$i] = $tunnus[0].$valimerkki.$pass.$valimerkki.$tunnus[2].$valimerkki.$tunnus[3].$valimerkki.$tunnus[4].$valimerkki.$tunnus[5].$valimerkki;
  break();
} // if

// ja sit $tunnukset - taulu kirjoitetaan tiedostoon
?>

Ja sit vielä sellanen laiskan miehen huomautus, että nuo muuttujat voi yhdistää ihan pisteellä, eli sen sijaan että kirjottaisit

<?php
$pass = md5($pass1."".$pass2."".$pass3."".$pass4."".$pass5);
?>

voit kirjoittaa

<?php
$pass = md5($pass1.$pass2.$pass3.$pass4.$pass5);
?>

Bagard [18.03.2004 07:39:44]

#

Kiitos erittäin paljon Irksome!

Vastaus

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

Tietoa sivustosta