• Dizaino ir programavimo pamokos

  •  
    Thread Rating:
    • 0 Votes - 0 Average
    • 1
    • 2
    • 3
    • 4
    • 5
    Darome paprastą registracija [PHP/SQL]

    Member


    ***
    78

    0
    Post: #1
    RE: Darome paprastą registracija [PHP/SQL]
    Labą vakarą,

    kaip matote tai 3 PHP mano pamoka, ir šioje pamokoje pamokinsiu kaip sukurti paprastą PHP registracija naudojant SQL ir PHP

    [small]1.[/small] Susikuriame failą reg.php ir jame pasidarome gražų HTML lapą, kiekvineas gali pasidaryti pagal save, kaip kam sekasi HTML/CSS, man su juo nelabai tai padariau paprastą, kad žiūrėtusi gražiau, ir jį naudosiu visuose mano pamokuose

    Code:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Registracija &bull; musLiz</title>

    <style>
    body { background:#eeeeee; font-family:Tahoma; color:#585858; font-size:13px; }
    .logo { background:#fff; border:#585858 dotted 1px; border-radius:3px; padding:5px; color:#585858;}
    .input { background:#fff; border:#c8c8c8 solid 1px; border-radius:3px; padding:5px; color:#585858;}
    .submit { background:#fff; border:#c8c8c8 solid 1px; border-radius:3px; padding:5px; color:#585858; }
    </style>

    </head>

    <body>
    <div class="logo" align="center"><b>musLiz</b> &bull; registracija</div>
    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
    <input class="input" type="text" name="vardas" placeholder="Įveskite savo vardą"><br />
    <input class="input" type="password" name="pass" placeholder="Įveskite slaptažodį"><br />
    <input class="input" type="text" name="email" placeholder="Įveskite el.paštą"><br />
    <input class="submit" type="submit" name="reg" value="Registruotis">
    </form>
    </body>
    </html>

    [small]2.[/small] Susikuriame savo duomenų bazėje lentelę nariai ir paskui susikuriame struktūrą id(int), vardas(varchar 32), password(varchar 62), email(varchar 100)

    [small]3.[/small] Po </html> praleidžiame vieną eilutę ir rašome PHP kodą

    [geshi=php]<?php

    require_once("config.php"); // includinam

    if(isset($_POST['reg'])) { // pradedame if'ą kuris tikrina ar paspaustas ,,Registruotis" mygtukas

    $vardas = htmlspecialchars(mysql_real_escape_string($_POST['vardas'])); // darome saugesnį input'ą ir tikriname
    $pass = htmlspecialchars(mysql_real_escape_string($_POST['pass'])); // taip pat darome saugesnį input'ą ir trikinrame
    $email = htmlspecialchars(mysql_real_escape_string($_POST['email'])); // taipogi darome saugesnį input'ą ir tikriname

    if($vardas != "" && $pass != "" && $email != "") { // pradedame if'ą ir tikriname ar yra įvesti registracijos laukeliai
    $q = mysql_query("SELECT * FROM `nariai` WHERE vardas='" . $vardas . "'") or die(mysql_error()); // pasirenkame duomenų bazes lentelę ir pasirenkame laukelį vardas
    if(mysql_num_rows($q) != 0) // tikriname ar toks vartotojas jau yra
    { // pradedame naują if'ą
    echo "<b>Klaida!</b> Toks vartotojas jau registruotas!<br />"; // išvedame klaidą, jog yra toks vartotojas
    die(); // nutraukiame kodo eigą
    } // uždarome if'ą
    else // grįžtam į true
    { // pradedam else
    mysql_query("INSERT INTO `nariai` (vardas, password, email) VALUES ('$vardas', '".hash_hmac("sha512", $pass, $config['hmac_key'])."', '$email')"); // įterpiame vartotoją į duomenų bazę, jei pereina visas klaidas
    echo "Sėkmingai užsiregistravote!"; // išveda tekstą, jog sėkmingai užregistruotas

    } // uždarom else
    } else { // uždarom pirmą if'ą ir darome else false
    echo "<b>Klaida!</b> Neįvestas kažkuris laukelis, prašome patikrinti!<br />";
    die(); // nutraukiame kodo eigą
    } // uždarome else ir grįžtame į true
    } // uždarome pirmą isset if'ą ir baigiame kodą

    ?>[/geshi]

    [small]4.[/small] Atsidarome config.php ir po [geshi=php]mysql_select_db("tvs") or die("mysql_connect : 1");[/geshi] rašome [geshi=php]$config['hmac_key'] = "rašome jūsų bet kokį kodą gali būti pvz(646fcx463e76sx6r7cxs7r7c3h)"; // sustipriname slaptažodžio apsaugą[/geshi]

    Gyvai galime pamatyti http://www.l2off.eu/php/reg.php

    Pamoką kūrė musLiz(Andrius), norint kopijuoti pamoką, nurodykite autorių!
    2013-03-25 10:30
    Find Quote

    Junior Member


    **
    6

    0
    Post: #2
     
    Na email laukeli tikrinti galima su
    Code:
    FILTER_VALIDATE_EMAIL
    tam ,kad nebutu paprastas teksto ivedimo laukelis, o butinai su test@test.lt


    PHP Code:
    if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) { 
                      echo 
    "Netinkamas el.pasto adresas!";

    2013-03-25 10:43
    Find Quote

    Member


    ***
    78

    0
    Post: #3
     
    Galima ir tai, bet apie tai vėliau dar padarysim pamokų, svarbu dabar jau minėjau išmokinti visokiausius if'us, else, kaip su jais ir panašiai Smile
    2013-03-25 10:44
    Find Quote

    Senior Member


    ****
    300

    0
    Post: #4
     
    Kur ifas kad paspaudei buttoną ? :D Nes dabar mes error kad nėra tokių kintamųjų _POST. :)

    Tinklapio programuotojas!
    2013-03-25 12:39
    Find Quote

    Member


    ***
    78

    0
    Post: #5
     
    Keista, bet man nemeta klaidų, nes jau yra tikrinimas

    [geshi=php]if($vardas != "" && $pass != "" && $email != "") { // pradedame if'ą ir tikriname ar yra įvesti registracijos laukeliai[/geshi]

    bet atnaujinau kodą įdėjau dar if'ą vieną :)
    2013-03-26 09:10
    Find Quote

    Junior Member


    **
    5

    0
    Post: #6
     
    Aš nematau ar šiaip dundunkas? O kodėl slaptažodžio ne convertini į md5hasha? Ir šiaip dar galėtum padaryt, kad vartotojo varde nebūtų papildomų simbolių.....
    2013-03-26 09:31
    Find Quote

    Senior Member


    ****
    300

    0
    Post: #7
     
    Quote:Factor parašė:

    Keista, bet man nemeta klaidų, nes jau yra tikrinimas

    [geshi=php]if($vardas != "" && $pass != "" && $email != "") { // pradedame if'ą ir tikriname ar yra įvesti registracijos laukeliai[/geshi]

    bet atnaujinau kodą įdėjau dar if'ą vieną :)

    Žmogau tu viįšuje jau _POST variablus naudoji ;) Ir man metą klaidą nuėjus į demo kad nėra trijų _POST variablų, bet jie jau naudojami.. Aišku forma veiks, bet kodas tikrai nėra tvarkingas ;)

    [geshi=php]if (isset($_POST['sumit'])) {
    // sukuriame variablus
    $vardas = $_POST['vardas'];
    // ----------------
    // Čia eina jau visas registracijos procesas.
    }[/geshi]

    Tinklapio programuotojas!
    2013-03-26 14:23
    Find Quote

    Member


    ***
    78

    0
    Post: #8
     
    Quote:mAnaXi parašė:

    Aš nematau ar šiaip dundunkas? O kodėl slaptažodžio ne convertini į md5hasha? Ir šiaip dar galėtum padaryt, kad vartotojo varde nebūtų papildomų simbolių.....

    mAnaXi - o kas čia nematai '".hash_hmac("sha512", $pass, $config['hmac_key'])."'? čia šiaip dar saugiau nei md5

    MariukasR - pataisiau
    2013-03-26 22:56
    Find Quote

    Senior Member


    ****
    300

    0
    Post: #9
     
    va dabar kur kas geriau Smile

    Tinklapio programuotojas!
    2013-03-26 23:06
    Find Quote

    Member


    ***
    78

    0
    Post: #10
     
    Per miegus biški rašiau pamoką, nepykit tik, nes rašiau po treniruotes, o tuomet gavau knockouta, tai biški skrajojau debesyse Big Grin
    2013-03-26 23:07
    Find Quote


    Possibly Related Threads...
    Thread: Author Replies Views: Last Post
      Darome paprastą laukelį [PHP/SQL] Factor 14 7356 2013-05-24 08:30
    Last Post: Generic-
      Darome paprastą šaukyklą [PHP/SQL] Factor 17 8404 2013-03-24 21:44
    Last Post: Factor


    About DESCO

    Mes esame ne komercinis projektas, norime, jog Lietuvos jaunimas vis sparčiau brautųsi į technologijų amžių. Negalima sėdėti vietoje, reikia kažką veikt, todėl mūsų projektas tam puikiai tinka. Galima pas mus išmokt kažko naujo, taip pat nepamirškite, kad ir jūs galite mokyti kitus! Žinių dalinimasis geriną lietuvių mentalitetą, todėl nesmerk kito, o pamokyk!