[ CiM0beTa @ 29.06.2012. 14:12 ] @
Imam sledeci problem:

Code:

$_SESSION['user_id'] = login($username, $password);
            header('Location: index.php');
            exit();


ovaj gore deo koda se izvrsava kada je logovanje uspesno. Tacna kombinacija username i password. Ja sam proverio sa:

Code:

echo 'ok'. $_SESSION['user_id'];


i ispisuje mi ok2, sto znaci da se dobro postavlja sesija i da je logovanje uspesno. Ali izgleda da mi se ne izvrsava header('Location: index.php'),
to jest, kada se ulogujem, vise nije moguce pristupiti sajtu. Ni index.php, ni login.php niti bilo sta drugo. Sve dok ne izbrisem jedan cookies localhost PHPSESSID.
Inace sajt mi je na localhostu i skoro je gotov, ali ovo ne znam sta je. Ne moze ni iz mozile ni iz explorera?

Inace evo sta mozila kaze:

[ pajaja @ 29.06.2012. 14:19 ] @
U kom fajlu ti se nalazi prvi kod koji si okacio? I da li je ukljucen u index.php? Izgleda da se izvrsava i to u beskonacnost.
[ CiM0beTa @ 29.06.2012. 14:45 ] @
u login.php

Code:

<?php
include 'core/init.php';
logged_in_redirect();
if (empty($_POST) === false) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    if (empty($username) === true || empty($password) === true) {
        $errors[] = 'You need to enter a username and password';
    } else if (user_exists($username) === false) {
        $errors[] = 'We can\'t find that username. Have you registered?';
    } else if (user_active($username) === false) {
        $errors[] = 'You haven\'t activated your account!';
    } else {
        $login = login($username, $password);
        if ($login === false) {
            $errors[] = 'That username/password combination is incorect';
        } else {
            $_SESSION['user_id'] = login($username, $password);
            header('Location: index.php');
            exit();
        }
    }

} else {
    $errors[] = 'No data received';
}
include 'includes/overall/header.php';
if (empty($errors) === false) {
?>
    <h2>We tried to log you in, but...</h2>
<?php
    echo output_errors($errors);
}
include 'includes/overall/footer.php';
?>


hm...

a evo funkcije iz general.php koja se uvek ucitava:

Code:

function logged_in_redirect() {
    if (logged_in() === true) {
        header('Location: index.php');
        exit();
    }
}


da nije tu problem?

i ova funkcija koja se takodje uvek ucitava
Code:

function logged_in() {
    return (isset($_SESSION['user_id'])) ? true : false;
}
[ pajaja @ 29.06.2012. 14:49 ] @
Pa ako se logged_in_redirect() izvrsava u index.php a redirektujes na index.php nece se nikad zavrsiti. Pored toga ne znam zasto bi redirektovao uvek na index ako je neko ulogovan.
[ plus_minus @ 29.06.2012. 14:50 ] @
A šta ti je "core/init.php"? Šta tu imaš, kako to izgleda?

I zašto ovakav početak?

Code (php):


if (empty($_POST) === false) {

 


Zašto ne isset()?
[ CiM0beTa @ 29.06.2012. 15:13 ] @
init.php
Code:

<?php
session_start();
//error_reporting(0); // moze i da se iskljuci posle

require 'database/connect.php';
require 'functions/general.php';
require 'functions/users.php';

if (logged_in() === true) {
    $session_user_id = $_POST['user_id'];
    $user_data = user_data($session_user_id, 'user_id', 'username', 'password', 'first_name', 'last_name', 'email');
    if (user_active($user_data['username']) === false) {
        session_destroy;
        header('Location: index.php');
        exit();
    }
}

$errors = array();
?>


ovde mi je problem sa array()...mislio sam da je sintaksa neka...javljam se posle..

evo ga i resenje...moja greska..

$session_user_id = $_SESSION['user_id'];

i ovo

session_destroy();



[Ovu poruku je menjao CiM0beTa dana 29.06.2012. u 17:07 GMT+1]
[ CiM0beTa @ 29.06.2012. 16:13 ] @
Citat:
plus_minus: A šta ti je "core/init.php"? Šta tu imaš, kako to izgleda?

I zašto ovakav početak?

Code (php):


if (empty($_POST) === false) {

 


Zašto ne isset()?


stvar navike :)
inace

if (empty($_POST) === false) {

obradjuje sve $_POST varijable, pa ako ima "bilo sta" onda je false === false i sledi dalja obrada... po nekad je korisno..
ali slazem se moze i isset()