Ovako imam funkciju s kojom hocu izvuc username iz database
prvo sto mi ne radi ne vraca mi username kako bi trebo u varijablu $user_id tako da mogu koristi na drugim stranicama npr. treba mi kad se logiram ode mi na logged.php i tu imam sljedeci kod
ovo init.php tu su mi funkcije ali ovaj dio mi ne radi echo 'Welcome back : ’ . user($user_id) . ’
baca mi greske :
Notice: Undefined variable: user_id in C:\xampp\htdocs\cms2\logged.php on line 7
Notice: Undefined variable: username in C:\xampp\htdocs\cms2\core\functions\func.php on line 38
7 linija je echo 'Welcome back : ’ . user($user_id) . ’
Eventualno, možeš koristeći session ili cookie totalno izbaciti zvanje funkcije user(user_id), primjerice:
function user() {
$user_id=$_SESSION["userid"]; // ili cookie, sto ti odgovara vise
$username="";
$query = mysql_query("SELECT username FROM users WHERE user_id=".$user_id);
$result = mysql_fetch_row($query);
$username=$result[0];
return ($username!="" ? $username : false);
}
Pa kad napraviš:
echo "Korisnik: ".user();
Pa ako se user_id prilikom logiranja stavio u sesiju ili u cookie, tada će ispisati username od tog user_id-a…
$_SESSION[“userid”]="1"
ako u funkciji koristiš
$user_id=$_SESSION[“userid”];
ili
$_SESSION[“user_id”]="1"
ako u funkciji koristiš
$user_id=$_SESSION[“user_id”];
Ne zaboravi da na stranicu gdje postavljaš session ($_SESSION[“userid”]=“1”) i na stranici gdje se nalazi funkcija (function user(){…}) OBAVEZNO u vrh staviš session_start();
session_start() mora biti postavljen prije bilo kakvog outputa (dakle i prije tagova), zato se stavlja na vrh stranice, odnosno da bude među prvim funkcijama (a najbolje prva) koje se pozivaju.
Otprilike bi trebalo to izgledat ovako:
<?php
session_start();
// sav ostali php koji se vrti prije...
?>
<html>
<head>
<!-- header tagovi -->
</head>
<body>
<!-- body dokumenta -->
</body>
</html>
znaci taj init.php di god includam imam pokrenitu sessiju, povezivanje na bazu, i funkcije dakle to nije problem.
u logged.php tu sam na vrh includo ovo i radi mi funkcija logged() znaci da je sve ok, i logiranje i sve to, samo mi to nece da radi kad logiram korisnika nece prikazat username probo sam i ovo sto si mi dao sad.
evo i logged.php
a ovo je u login.php kad pokrecem sessiju $_SESSION[‘user_id’] = 1;
Ček malo, pa di ti definiraš varijablu $username? Koliko sam ja shvatio iz tvog koda, jedino gdje je ta varijabla definirana je login.php. Nakon toga ide redirekt (varijable se unišavaju) i sada u logged.php koristiš funkciju user koja koristi varijablu $username, a te varijable nema.
i ove funkcije koristim samo za provjeru login skripte, ali sad mi treba da nakon svih provjera kad logiram korisnika imam funkciju koja ce uzet username i stavit ga u sessiju i prikazati di hocu sa user();