Keresés

Aktív témák

  • qfm

    őstag

    válasz agyergorcs #4958 üzenetére

    Belépésnél megnézed van e olyan felhasználo amit beirt. ha nincs akkor pl bedobod a regisztráciot, ha meg van akkor ellenörzöd hogy a jelszo jo e. Ezután valamilyen modszerrel azonositod a usert, ez történhet sütikkel, session okkal [utobbi hasznosabb egy védett oldalnál], esetleg ugy is hogy tovább küldöd url be a felhasználo nevet, és a jelszot. Én mondjuk online ID t, és egy kodolt jelszot szoktam tovább küldetni, de kezdésnek nem kell bonyolitani. Csinálnod kell egy rendszer filet, ami az azonositást fogja neked végezni. Megnézi hogy valamilyen uton kapott e nevet, és jo e az ahoz tartozo jelszo. Ha jo akkor bejön az oldal, ha nem akkor kidobsz egy hiba üzenetet, és exit el kiugrassz belőle, mielőtt még lefutna a normál oldal. Elsőre lehet bonyolultnak hangzik, de ha belejössz, egyáltalán nem az.

    A másik kérdésedre, egyszerü, ámbár nem tul praktikus megoldás, hogy a felhasználo nevét regnél kisbetüsre alakitod, vagy kodoltatod egy algoritmussal, és azzal egyező filenevü filet hozol létre. Ekkor ugy nézed meg hogy létezik e a felhasználo, hogy megnézed létezik e olyan nevü file.

    Remélem segitettem

    [Szerkesztve]

  • qfm

    őstag

    válasz agyergorcs #4942 üzenetére

    elég sok sebből vérzik a progid, de müködöképes állapotba hoztam neked:

    reg.php:

    <?php
    $talalat = ''N'';
    $db = 0;
    $name = $_POST['nev'];
    $jelszo1 = $_POST['jelszo1'];
    $jelszo2 = $_POST['jelszo2'];
    $jog = $_POST['jog'];
    $nev = $name;



    //ürlap ellenörzés
    if ( $name =='''')
    {
    print(''<a href=reg.html>Nem adtál meg nevet</a><br>'');
    }
    elseif ( $jelszo1 =='''')
    {
    print(''<href=reg.html>Nem adtál meg jelszót</a><br>'');
    }
    elseif ( $jelszo1 != $jelszo2)
    {
    print(''<href=reg.html>Nem egyforma a két jelszó</a><br>'');
    }
    else
    {
    //fájllétezés vizsgálat
    if ( ! file_exists(''users.dat''))
    {
    touch(''users.dat'');
    }

    // ellenörzés, hogy a név létezik e már
    if ( $fa=fopen(''users.dat'', ''r''))
    {
    while ( ! feof($fa))
    {
    $db++;
    $fnev[$db] = fgets($fa, 1024); //beolvas egy sort (fgets)
    $fjelszo[$db] = fgets($fa, 1024);
    $fjog[$db] = fgets($fa, 1024);
    }
    fclose($fa);
    // sorvége jelek levágása
    for ($i=1; $i<=$db; $i++)
    {
    $fnev[$i] = substr($fnev[$i], 0, strlen($fnev[$i])-2);
    $fjelszo[$i] = substr($fjelszo[$i], 0, strlen($fjelszo[$i])-2);
    $fjog[$i] = substr($fjog[$i], 0, strlen($fjog[$i])-2);
    }
    for ($i=1; $i<=$db; $i++)
    {
    // összehasonlítás
    if ( $nev == $fnev[$i])
    {
    $talalat = ''V'';
    break; //kiszáll az elso találatnál (keresi, hogy van e azonos felhasz.)
    }
    }
    }

    if ($talalat == ''N'')
    {
    //fájlba írás
    if ( $fa = fopen(''users.dat'', ''a'')) //r- olvasás, w - írás, a - hozzáfuzés (''a'' helyére)
    {
    fwrite( $fa, $nev.''\r\n''); //''/r/n'' sor vége jel
    fwrite( $fa, $jelszo1.''\r\n'');
    fwrite( $fa, $jog.''\r\n'');
    fclose($fa);
    }
    else
    {
    print(''nem sikerult megnyitni a fájlt<br>'');
    }
    }
    else
    {
    //ha van ilyen név
    print (''<a href=reg.html>Már van ilyen név</a>'');
    }
    }

    ?>

    viszont ha még most tanulod ezt figyelj oda pár dologra. a fileok nagyon könnyen feladják hatalmas forgalom esetén. a jogokat helyettesitsd számokkal, pl 0 - vendék 1 - felhasználo 2 - operátor 3 - RG, a jelszavakat kodolva tárold, jo lenne egy md5, bár az elég sok adat megint. rakj be ellenörzőket, jelszo, név hosszra szerintem, figyelj oda hogy ugyanazt a változot használd pl nev és name ugyanaz nálad, azért tettem egyenlővé. a register globals t meg állitsd off ra biztonsági okokbol. tilts le pár karaktert, pl a < jelet, és konvertáld át a html kodjára. és pl amikor leveszed a sor vége jelet az lehet egyszerübb lenne egy str_replace el. csak pár tipp:) sok sikert hozzá

    [Szerkesztve]

Aktív témák