DwarfenMedlem sedan jan. 2002241 inlägg Sitter här och försöker göra användare med olika rättigheter.
Men det blir fel när jag skall hämta dem ur databasen.
Så här har jag gjort för att skapa en session med rättigheterna
$_SESSION['status'] = $status;
Inne i databasen har jag själv angivit siffror: 1 eller 2, beroende på rättigheterna så klart...
Men varför ser jag inte detta när jag skriver?
echo $_SESSION['status'];
Jag tycker att den borde skriva ut värdet som ligger i tabellen.
Eller?
//edit//
Hela min kod för lösenordskontrollen
<?php
session_start();
$username = '';
$password = '';
$dbName = '';
mysql_connect('localhost', $username, $password) or die (mysql_error());
mysql_select_db($dbName) or die (schyse());
// Skapar variablar
$username = $_POST['username'];
$password = $_POST['password'];
// Öppnar SQL frågan och sätter username = form-value och password = form-value
$SQL = mysql_query("SELECT * FROM login where username = '$username' AND password = '$password'") or die (mysql_error());
$objRS = mysql_fetch_array($SQL);
// Kollar om användaren finns i databasen, om han finns skapas alla Sessioner osv...
if (mysql_num_rows($SQL) <> 0) {
// Skapar sessioner och allt va du vill göra för den specifika användaren
$_SESSION['status'] = $status;
$_SESSION['online'] = 1;
$_SESSION['username'] = $username;
// Skickar tillbaka användaren om allt gått okej
Header ('Location: /index.php');
} else {
// Skickar tillbaka användaren om han el. hon skrivit något fel
Header ('Location:login.php');
}
?>
PeddaMedlem sedan juni 20006 032 inlägg Ja, den borde skriva ut värdet.
Ge oss mer kod så kanske vi kan se felet.
DwarfenMedlem sedan jan. 2002241 inlägg Ioggin.php
<?php
session_start();
if(isset($_SESSION['username'])) {
echo $_SESSION['username'];
echo '<A HREF="loggout.php">Loggout</A>';
} else {
echo '<form method="post" action="\login\kontroll.php" size="0">
Användare: <input name="username" size="10"><BR>
Lösenord: <input type="password" name="password" size="10">
<input type="submit" value="Login">
</FORM>';
}
?>
Kontroll sidan
<?php
session_start();
$username = 'r';
$password = '';
$dbName = '';
mysql_connect('localhost', $username, $password) or die (mysql_error());
mysql_select_db($dbName) or die (schyse());
// Skapar variablar
$username = $_POST['username'];
$password = $_POST['password'];
// Öppnar SQL frågan och sätter username = form-value och password = form-value
$SQL = mysql_query("SELECT * FROM login where username = '$username' AND password = '$password'") or die (mysql_error());
$objRS = mysql_fetch_array($SQL);
// Kollar om användaren finns i databasen, om han finns skapas alla Sessioner osv...
if (mysql_num_rows($SQL) <> 0) {
// Skapar sessioner och allt va du vill göra för den specifika användaren
$_SESSION['status'] = $status;
$_SESSION['online'] = 1;
$_SESSION['username'] = $username;
// Skickar tillbaka användaren om allt gått okej
Header ('Location: /index.php');
} else {
// Skickar tillbaka användaren om han el. hon skrivit något fel
Header ('Location:login.php');
}
?>
Och slutligen "check" sidan
<?
session_start();
if(isset($_SESSION['username'])) {
echo $_SESSION['username'];
echo $_SESSION['status'];
echo '<BR><A HREF="?page=utloggning">logga ut</A>';
} else {
echo '';
}
?>
Så, det skall vara all kod.
PeddaMedlem sedan juni 20006 032 inlägg Du har inte gett $status något värde.
$status = row[x]
DwarfenMedlem sedan jan. 2002241 inlägg Men hallå?
Ge ett värde?
Förklara?
Om jag ger den ett värde så får väl alla samma som loggar in?
PeddaMedlem sedan juni 20006 032 inlägg Re: Sessions fråga
Dwarfen skrev:
Inne i databasen har jag själv angivit siffror: 1 eller 2, beroende på rättigheterna så klart...
Du måste tilldela $status värdet från databasen, annars finns det ju inget att skriva ut.
DwarfenMedlem sedan jan. 2002241 inlägg Så jag skall alltså ge värdet på sessionen Status på genom att sätta
$_SESSION['sess_status'] = 0);
Iså fall förstår jag inte, för det funkar inte =(
tydalMedlem sedan juni 20034 013 inlägg Förmodligen menar du:
$_SESSION['status'] = $objRS['status'];
Men det är bara en kvalificerad gissning, så om det inte är vad du har tänkt dig undrar jag vad det är du vill ska sparas i sessionen? Du vill att någon slags status ska sparas där, men vadå för status? Var kommer den ifrån?
I koden du har skrivit finns ingen status. Den kommer rakt från tomma intet, och då blir det ju inget när man skriver ut den :-)
DwarfenMedlem sedan jan. 2002241 inlägg I själva fältet status finns det en siffra, det är den som jag vill ska hämtas.
Sedan skall siffran användas i en if sats för att slussa användaren till en sida som han har rättighet att vara i.
tydalMedlem sedan juni 20034 013 inlägg Aha, du menar i ett formulärfält på sidan innan som användaren har postat?
I så fall blir det:
$_SESSION['status'] = $_POST['status'];
Fast det låter ju inte så bra om användaren själv får välja sin status? :-/
DwarfenMedlem sedan jan. 2002241 inlägg Får nog ta det från början så jag förstår med.
Alltså.
På sidan som kontrollerar om man har skrivit in rätt nuffror (kontroll.php)
Så skapas ju en session för user
$_SESSION['username']
.
Och samtidigt så vill jag att det skall skapas en ['status'] session.
Vars värde (en siffra: t.ex 1 eller 2) skall hämtas ur en databas och bakas in i sessionen.
Detta värde skall sedan kunna hämtas ur sessionen för att skicka personen rätt.
Hänger du med?
tydalMedlem sedan juni 20034 013 inlägg Ja, då var det som jag skrev från början, förutsatt då att du har kallat värdet för 'status' även i databasen.
DwarfenMedlem sedan jan. 2002241 inlägg Wohii!!!!
Det funkar jU!!!
Tack som fan ! Tydal!
2-2 In nordic game!
PeddaMedlem sedan juni 20006 032 inlägg Var tvungen att gå och kolla på fotbollen. :)
Bra att tydal kunde ta över och förklara för dig.
DwarfenMedlem sedan jan. 2002241 inlägg Hehe =)
Ingen fara =)
Tack för din hjälp också.