Prikazi cijelu temu 21.05.2020 10:56
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Lokacija:zagreb


Predmet:Re: csv u bazu
Nisam te razumio jer mi ovo ne radi:

PreuzmiIzvorni kôd (Text):
  1. $_SESSION['imeKorisnika']='Vasko';
  2. $_SESSION['email']='vasko@gmail.com';
  3. $_SESSION['tipKorisnika']='admin';
  4. $_SESSION['sifra']='admin';
  5. header('location: index.php');

Prilikom pokretanja index.php, odmah na pocetku ukljucen je fajl function.php.

include('functions.php');

onda se pokrene u index.php funkcija isLoggedIn(). To je logicna funkcija (bolen i moze vratiti true ili false

Kaze ta funkcija je false za prazna a ako nije prazna $_SESSION['korisnik'] onda je true:

function isLoggedIn()
    {
        if (isset($_SESSION['korisnik'])) {
            return true;
        }else{
            return false;
        }
    }


s obzirom da je $_SESSION['korisnik'] prazan dobit cemo false, a time cemo biti preusmjereni na login.php

U login.php nakon klika na buton type =submit

<button type="submit" class="btn" name="login_btn">Prijavi se</button>

posalju se "post" metodom name=sifra i name=imeKorisnika opet u istu stranicu login.pgp.
Posto je na pocetku ukljucen php kod function.php a u njoj provjera dali je pritisnut button login_btn

if (isset($_POST['login_btn'])) {
        login();
    }


i on ako je pritisnut izvrsit ce se i funkcija login().

function login()
    {    
        global $con, $imeKorisnika, $errors; // postavljaju se globalne varijable
        // uzmi varijable iz forme
        $imeKorisnika = e($_POST['imeKorisnika']);
        $sifra = e($_POST['sifra']);

        // provjeri dali je koje polje bilo prazno
        if (empty($imeKorisnika)) {
            array_push($errors, "Potrebno je unijeti ime");
        }
        if (empty($sifra)) {
            array_push($errors, "Potrebno je unijeti sifru");
        }
        // ako nije bilo gresaka na formi za unos
        if (count($errors) == 0)
        {
            //$password = md5($password); ovo je nekakva hex cripcija

//upit koji trazi korisnika i sifru u bazi
    $query = "SELECT * FROM korisnici WHERE imeKorisnika='$imeKorisnika' AND sifra='$sifra' LIMIT 1";
            $results = mysqli_query($con, $query);
            
            if (mysqli_num_rows($results) == 1)// ako je rezultat =1, pronasao korisnika
            {

// ovo je dio koji me zbunjuje
                $logged_in_user = mysqli_fetch_assoc($results);
                $_SESSION['korisnik'] = $logged_in_user;


                $_SESSION['success'] = "Prijavljeni ste.";
                header('location: index.php');
            }else{
                array_push($errors, "Pogresno uneseni podaci.");
            }
        }
    }


Ovo nisam znao razrijesiti:

$logged_in_user = mysqli_fetch_assoc($results); //upit je dao rezultat, korisnik i sifra se podudaraju

$_SESSION['korisnik'] = $logged_in_user; // u globalnu $_SESSION['korisnik'] sprema taj rezultat

Neznam kako izgleda rezultat i kako izgleda $_SESSION ['korisnik'] nakon sto se u nju spremi rezultat.

To mi treba objasniti.

pogledaj funkciju:

function isAdmin()
    {
        if (isset($_SESSION['korisnik']) && $_SESSION['korisnik']['tipKorisnika'] == 'admin' ) {
            return true;
        }else{
            return false;
        }
    }

zivot je moja domovina.
Ovaj post je ureden 10 puta. Posljednja izmjena 22.05.2020 14:45 od strane Avko.