» »

PHP prijava

PHP prijava

filips ::

Naredil sem program za prijavo v PHP. Koda deluje normalno, ko pa se pokliče funkcija header("Refresh: 0") se seja ponastavi. Tik pred klicem funkcije header("Refresh: 0") so vsi podatki v seji so še vedno tam, ko pa se stran ozveži pa ne več.

Kako lahko popraviti ali izboljšati to kodo?

index.php:
function session_setup($time) {
    $session = session_get_cookie_params();
    session_set_cookie_params($time,$session["path"], $session["domain"], false, true);
    session_name("SESSION");
    session_start();
}

session_setup(31536000);

function check_login($type,$offline="") {
    global $mysqli;
    $uTypeQuery = "SELECT * FROM ".dbPrefix."user_type" OR die("MySqli error (".$mysqli->errno."): ".$mysqli->error);
    $uTypeResult = $mysqli->query($uTypeQuery);
    if (true) {
        if (isset($_SESSION['user']['username']) and isset($_SESSION['user']['pass']) and $_COOKIE['logged-in']==1) {
            $username = $mysqli->real_escape_string($_SESSION['user']['username']);
            $password = $mysqli->real_escape_string($_SESSION['user']['pass']); 

            $query="SELECT * FROM ".dbPrefix."users WHERE username='$username' OR email='$username' AND password='$password'";
            $result = $mysqli->query($query) OR die("MySqli error (".$mysqli->errno."): ".$mysqli->error);
            
            if ($rez=$result->fetch_assoc()) {
                while($typeRez = $uTypeResult->fetch_assoc()) {
                    if ($typeRez['id']==$rez['type']) {
                        $uTypeRez=$typeRez;
                    }
                }
                if ($uTypeRez["admin"]==1 or ($offline=="offline" and $uTypeRez["offline"]==1)) {
                    $_SESSION['user']['username']=$rez['username'];
                    $_SESSION['user']['pass']=$rez['password'];
                    $_SESSION['user']['email']=$rez['email'];
                    $_SESSION['user']['type']=$rez['type'];
                    $_SESSION['user']['id']=$rez['id'];
                    $_SESSION['user']['authorized']=$uTypeRez;
                    $_SESSION['login']['status']=1;
                    
                    if ($offline=="offline") {
                        $_SESSION['login']['offline']=1;
                    }
                    if ($type==1) {
                        require("theme.php");
                    }else {
                        //tukaj so podatki še vedno v seji
                        header("Refresh: 0"); //ko se stran osveži pa ne več
                    }
                }else {
                    $_COOKIE['logged-in']=0;
                    setcookie("logged-in", 0, time()-3600);
                    
                    $_SESSION=array();        
                    $_COOKIE[sessionName]=array();
                    setcookie(sessionName, 0, time()-3600);
                    unset($_SESSION);
                    if ($type==1) {
                        if ($offline=="offline") {
                            login();
                        }else {
                            require("login.php");
                        }
                    }else {
                        echo 'Nimate dovoljenja za dostop do administracije.';
                    }
                }
            }else {
                $_COOKIE['logged-in']=0;
                setcookie("logged-in", 0, time()-3600);
                
                $_SESSION=array();        
                $_COOKIE[sessionName]=array();
                setcookie(sessionName, 0, time()-3600);
                unset($_SESSION);
                if ($type==1) {
                    if ($offline=="offline") {
                        login();
                    }else {
                        require("login.php");
                    }
                }else {
                    echo 'Uporabniško ime in/ali geslo ni pravilno';
                }
            }
        }else {
            $_COOKIE['logged-in']=0;
            setcookie("logged-in", 0, time()-3600);
            
            $_SESSION=array();        
            $_COOKIE[sessionName]=array();
            setcookie(sessionName, 0, time()-3600);
            unset($_SESSION);
            if ($type==1) {
                if ($offline=="offline") {
                    login();
                }else {
                    require("login.php");
                }
            }else {
                echo 'Potrebno je izpolniti vsa polja';
            }
        }
    }
}

check_login(1);


login.php:
<h1>Prijava</h1>
<p>
<?php
login();
?>
</p>


theme.php:
<h1>naslov</h1>
<p>vsebina</p>


Če namesto header("Refresh: 0") uporabim require("theme.php") nastane to:



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Django template language - trik

Oddelek: Programiranje
51269 (1082) dasf
»

Php varen login

Oddelek: Programiranje
203953 (3453) Volk|
»

PHP cookie problem

Oddelek: Izdelava spletišč
81350 (1045) Ziga Dolhar
»

unset cookie

Oddelek: Izdelava spletišč
221882 (1689) tomitza
»

[php] Problem z dinamično stranjo

Oddelek: Izdelava spletišč
111572 (1417) Iskraman

Več podobnih tem