Results 1 to 5 of 5

Thread: Login Forma

  1. #1
    Banovan
    Join Date
    Oct 2012
    Location
    Bogdanci
    Age
    27
    Posts
    657
    Karma
    0

    Login Forma

    U ovom tutorialu ću vam napisati tutorial kako da napravite login formu a da ta skripta radi i na php7.

    Dakle da krenemo.


    1 Korak: Kreiranje config fajl gde ćemo se povezivati sa mysql databazom

    Code:
    <?php 
    define('DB_HOST', 'localhost'); // Obratite paznju na ovo, kod nekih hostinga (posebno free web hostinge kao 000webhost), db host nije localhost.
    define('DB_USER', 'root'); // ovde korisnicko ime koji ce se povezivati na DB_NAME.
    define('DB_PASS', 'sifra-tog-korisnika'); // Sifra DB_USER koji smo kreirali u cpanel.
    define('DB_NAME', 'ime-databaze');  // Ovde ime databaze
    
    $db = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
    if(!$db) {
    die("Greska sa Mysql!");
    } else {
    $db->connect(DB_HOST,DB_USER,DB_PASS,DB_NAME); // Konektovanje na bazu
    }
    ?>
    Napomena: Kod DB_HOST,DB_USER,DB_PASS,DB_NAME menjate samo to sto sam vam obelezio crvenim.

    Zatim zaćuvajmo fajl. U mom slućaju ja ću ga saćuvati kao config.php.

    Onda otvaramo novi fajl i nazvacemo ga index.php

    Code:
    <?php 
    ob_start();
    session_start();
    require_once("config.php"); // Upišite ime fajla koji ste saćuvali u korak 1, u mom slućaju je config.
    ?>
    <html>
    <head> 
            <title>Login Page</title>
    </head>
    <body>
    <form action="" METHOD="POST">
    <label>Username:</label> <input type="text" name="username" required placeholder="Vase korisnicko ime"></input><br/>
    <label>Password:</label> <input type="password" name="password" required placeholder="Vasa lozinka"></input><br/>
    <input type="submit" name="submit" value="Login"></input>
    </form>
    </body>
    </html>
    <?php 
    
    if(isset($_POST["submit"]))
    {
    // Kada igrac popuni formu i klikne na submit dugme, onda proveravamo da li unete informacije su tacne.
    
    $username = $_POST["username"] ;
    $password = $_POST["password"]; 
    // Sada ide zastita od sqli i xSS
    $username = htmlspecialchars($db->escape_string(addslashes(trim($_POST["username"]))));
    $password  = htmlspecialchars($db->escape_string(trim($_POST["password"])));
    
    // ako igrac posalje praznu formu
    if($username == "" or $password == "")
    {
    die("All fields are required!");
    exit; 
    }
    else {
    $pass = md5($password);
    $rezult = $db->query("SELECT * FROM `korisnici` WHERE `username`='$username' AND `password`='$pass'");
    
    if($rezult->num_rows < 1) 
    {
     echo "<div class='error'>Pogresno korisnicko ime ili lozinka</div>";
    exit;
    }
    // A u slucaju da je tacno korisnicko ime i lozinka
    echo "<div class='uspesno'>Uspesan login</div>";
    }
    }
    ?>
    Sada je potrebno da kreiramo tabele u databazu.

    Code:
    CREATE TABLE IF NOT EXISTS `korisnici` (
    `id` int(11) NOT NULL,
      `username` text NOT NULL,
      `password` text NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    
    
    --
    -- Indexes for dumped tables
    --
    
    
    --
    -- Indexes for table `korisnici`
    --
    ALTER TABLE `korisnici`
     ADD PRIMARY KEY (`id`);
    
    
    --
    -- AUTO_INCREMENT for dumped tables
    --
    
    
    --
    -- AUTO_INCREMENT for table `korisnici`
    --
    ALTER TABLE `korisnici`
    MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
    Ovaj tutorial je bio za pocetnike.

  2. #2
    Banovan
    Join Date
    Nov 2013
    Age
    33
    Posts
    472
    Karma
    0

    Re: Login Forma

    MD5 hash? Da to nije malo prestaro, a i nesigurno? Po meni bolje je da se koristi funkcija password_hash jer pruza dosta vise mogucnosti i dosta je 'sigurnija'.

  3. #3
    Banovan
    Join Date
    Oct 2012
    Location
    Bogdanci
    Age
    27
    Posts
    657
    Karma
    0

    Re: Login Forma

    Quote Originally Posted by FoX^ View Post
    MD5 hash? Da to nije malo prestaro, a i nesigurno? Po meni bolje je da se koristi funkcija password_hash jer pruza dosta vise mogucnosti i dosta je 'sigurnija'.

    Md5 jeste star. I ne preporucljiv za ozbiljne radove.
    Namenjen je pocetnicima, u sledecem tutorialu cu napisati kriptovanje lozinke na bezbedniji nacin

    Što se tiće funkcija password_hash, može se zvati kako god hoćeš .
    Last edited by riste5; 09.04.17 at 12:12.

  4. #4
    VIP GaMeR FoReVeR's Avatar
    Join Date
    Mar 2014
    Location
    Бања Лука
    Posts
    715
    Karma
    31

    Re: Login Forma

    Code:
    <?php 
    define('DB_HOST', 'localhost'); // Obratite paznju na ovo, kod nekih hostinga (posebno free web hostinge kao 000webhost), db host nije localhost.
    define('DB_USER', 'root'); // ovde korisnicko ime koji ce se povezivati na DB_NAME.
    define('DB_PASS', 'sifra-tog-korisnika'); // Sifra DB_USER koji smo kreirali u cpanel.
    define('DB_NAME', 'ime-databaze');  // Ovde ime databaze
    
    $db = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
    if(!$db) {
    die("Greska sa Mysql!");
    } else {
    $db->connect(DB_HOST,DB_USER,DB_PASS,DB_NAME); // Konektovanje na bazu
    }
    ?>
    -->
    Code:
    <?php 
    define('DB_HOST', 'localhost'); // Obratite paznju na ovo, kod nekih hostinga (posebno free web hostinge kao 000webhost), db host nije localhost.
    define('DB_USER', 'root'); // ovde korisnicko ime koji ce se povezivati na DB_NAME.
    define('DB_PASS', 'sifra-tog-korisnika'); // Sifra DB_USER koji smo kreirali u cpanel.
    define('DB_NAME', 'ime-databaze');  // Ovde ime databaze
    
    $db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    
    if($db->connect_errno)
        die("Greska sa Mysql!");
    ?>
    Zašto ob_start() kad ga ne koristiš?

    Eh sad nešto što ti preporučujem, da stavljaš sve post podatke u niz i odmah u petlji ih "čistiš" i provjeravaš da li su prazni. Dosta pregledniji kod i kasnije je lako pristupiti svim podacima

  5. #5
    Banovan
    Join Date
    Oct 2012
    Location
    Bogdanci
    Age
    27
    Posts
    657
    Karma
    0

    Re: Login Forma

    Quote Originally Posted by GaMeR FoReVeR View Post
    Code:
    <?php 
    define('DB_HOST', 'localhost'); // Obratite paznju na ovo, kod nekih hostinga (posebno free web hostinge kao 000webhost), db host nije localhost.
    define('DB_USER', 'root'); // ovde korisnicko ime koji ce se povezivati na DB_NAME.
    define('DB_PASS', 'sifra-tog-korisnika'); // Sifra DB_USER koji smo kreirali u cpanel.
    define('DB_NAME', 'ime-databaze');  // Ovde ime databaze
    
    $db = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
    if(!$db) {
    die("Greska sa Mysql!");
    } else {
    $db->connect(DB_HOST,DB_USER,DB_PASS,DB_NAME); // Konektovanje na bazu
    }
    ?>
    -->
    Code:
    <?php 
    define('DB_HOST', 'localhost'); // Obratite paznju na ovo, kod nekih hostinga (posebno free web hostinge kao 000webhost), db host nije localhost.
    define('DB_USER', 'root'); // ovde korisnicko ime koji ce se povezivati na DB_NAME.
    define('DB_PASS', 'sifra-tog-korisnika'); // Sifra DB_USER koji smo kreirali u cpanel.
    define('DB_NAME', 'ime-databaze');  // Ovde ime databaze
    
    $db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    
    if($db->connect_errno)
        die("Greska sa Mysql!");
    ?>
    Zašto ob_start() kad ga ne koristiš?

    Eh sad nešto što ti preporučujem, da stavljaš sve post podatke u niz i odmah u petlji ih "čistiš" i provjeravaš da li su prazni. Dosta pregledniji kod i kasnije je lako pristupiti svim podacima
    Moze i ovo sa $db->connect_errno, ovo sam koristio u Kontakt formu
    Code:
    if(!$db)
    {
    die("Mysqli Error: " . $db->connect_errno)
    }
    Napisao tutorial na brzaka, nisam baš skrenuo pažnju na ove stvari.

    Inaće session_start() i ob_start(); sam iskljućivo stavio kao primer ukoliko je neki sajt u pitanju i želimo preko sesije da se izbacivaju greške, tipa $_SESSION["greska"] = "blabla"; ali nisam to stavio u tutorialu jer sam bio vremenski ogranićen.

    A inaće i ovo za post podatke definitivno dobra ideja k+

    EDIT: Spread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •