Sessie die niet werkt??
Ik zit met een probleem!! Ik wil graag binnen mijn check.php pagina gegevens controleren en variabelen er mee vullen en die in een sessie plaatsen. het vreemde is, dat het lijkt of mijn sessie niet werkt en niet gevuld wordt!!
Dit is de code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
include('connect.php');
$query = "SELECT * FROM user WHERE username='$gebruikersnaam' AND password='$wachtwoord'";
$result = mysql_query($query) or die ("Er is een error opgetreden bij het uitvoeren de opdracht. Probeer het later weer eens.");
while($obj = mysql_fetch_object($result))
{
session_start();
$log = "$gebruikersnaam";
$userlvl = "$obj->userlevel";
$iduser = "$obj->userid";
session_register("userlvl");
session_register("userid");
session_register("log");
echo "$log</br>";
echo "$userlvl</br>";
echo "$iduser</br>";
if ($userlvl == 1)
{
echo "<script>document.location.href='admin/index.php'</script>";
}
if ($userlvl == 2)
{
echo "<script>document.location.href='admin/index.php'</script>";
}
if ($userlvl == 3)
{
echo "<script>document.location.href='index.php'</script>";
}
}
?>
include('connect.php');
$query = "SELECT * FROM user WHERE username='$gebruikersnaam' AND password='$wachtwoord'";
$result = mysql_query($query) or die ("Er is een error opgetreden bij het uitvoeren de opdracht. Probeer het later weer eens.");
while($obj = mysql_fetch_object($result))
{
session_start();
$log = "$gebruikersnaam";
$userlvl = "$obj->userlevel";
$iduser = "$obj->userid";
session_register("userlvl");
session_register("userid");
session_register("log");
echo "$log</br>";
echo "$userlvl</br>";
echo "$iduser</br>";
if ($userlvl == 1)
{
echo "<script>document.location.href='admin/index.php'</script>";
}
if ($userlvl == 2)
{
echo "<script>document.location.href='admin/index.php'</script>";
}
if ($userlvl == 3)
{
echo "<script>document.location.href='index.php'</script>";
}
}
?>
snap er niets van!! Wie kan mij helpen!??
MOET helemaal boven aan...
en een sessie zet je beter zo:
session start moet vanboven. het moet samen met de headers verzonden worden.
Quote:
Dat zal niet goed werken...
Ten eerste omdat niet in elke browser javascript standaard script is, fuck IE trouwens, en ten tweede, niet iedereen heeft javascript enabled...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
session_start();
include 'connect.php';
$sql = mysql_query("SELECT * FROM leden1 WHERE username='$username' AND password = '$password'");
$login_check = mysql_num_rows($sql);
if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach($row AS $key => $val){
$$key = stripslashes($val);
}
session_register('userid');
$_SESSION['userid'] = $userid;
session_register('username');
$_SESSION['username'] = $username;
session_register('email');
$_SESSION['email'] = $email;
session_register('gender');
$_SESSION['gender'] = $gender;
session_register('country');
$_SESSION['country'] = $country;
session_register('level');
$_SESSION['level'] = $level;
session_start();
include 'connect.php';
$sql = mysql_query("SELECT * FROM leden1 WHERE username='$username' AND password = '$password'");
$login_check = mysql_num_rows($sql);
if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach($row AS $key => $val){
$$key = stripslashes($val);
}
session_register('userid');
$_SESSION['userid'] = $userid;
session_register('username');
$_SESSION['username'] = $username;
session_register('email');
$_SESSION['email'] = $email;
session_register('gender');
$_SESSION['gender'] = $gender;
session_register('country');
$_SESSION['country'] = $country;
session_register('level');
$_SESSION['level'] = $level;
Quote:
ik combineer die twee,
Zo moet het dus niet...
Lieven:
ik combineer die twee,
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
session_start();
include 'connect.php';
$sql = mysql_query("SELECT * FROM leden1 WHERE username='$username' AND password = '$password'");
$login_check = mysql_num_rows($sql);
if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach($row AS $key => $val){
$$key = stripslashes($val);
}
$_SESSION['userid'] = $userid;
$_SESSION['username'] = $username;
$_SESSION['email'] = $email;
$_SESSION['gender'] = $gender;
$_SESSION['country'] = $country;
$_SESSION['level'] = $level;
?>
session_start();
include 'connect.php';
$sql = mysql_query("SELECT * FROM leden1 WHERE username='$username' AND password = '$password'");
$login_check = mysql_num_rows($sql);
if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach($row AS $key => $val){
$$key = stripslashes($val);
}
$_SESSION['userid'] = $userid;
$_SESSION['username'] = $username;
$_SESSION['email'] = $email;
$_SESSION['gender'] = $gender;
$_SESSION['country'] = $country;
$_SESSION['level'] = $level;
?>
Sessies kosten dataverkeer hoor :)..
doe gewoon 1 sessie, en haal de rest van de gegevens uit de db..
voor een andere pagina:
Maar nu het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
session_start();
include('connect.php');
$query = "SELECT * FROM user WHERE username='$gebruikersnaam' AND password='$wachtwoord'";
$result = mysql_query($query) or die ("Er is een error opgetreden bij het uitvoeren de opdracht. Probeer het later weer eens.");
while($obj = mysql_fetch_object($result))
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
if ($userlvl == 1)
{
echo "$userlvl<br>";
echo "$log<br>";
echo "$user_id<br>";
// header("Location: admin/index.php");
}
if ($userlvl == 2)
{
header("Location: admin/index.php");
}
if ($userlvl == 3)
{
header("Location: index.php");
}
}
?>
session_start();
include('connect.php');
$query = "SELECT * FROM user WHERE username='$gebruikersnaam' AND password='$wachtwoord'";
$result = mysql_query($query) or die ("Er is een error opgetreden bij het uitvoeren de opdracht. Probeer het later weer eens.");
while($obj = mysql_fetch_object($result))
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
if ($userlvl == 1)
{
echo "$userlvl<br>";
echo "$log<br>";
echo "$user_id<br>";
// header("Location: admin/index.php");
}
if ($userlvl == 2)
{
header("Location: admin/index.php");
}
if ($userlvl == 3)
{
header("Location: index.php");
}
}
?>
(Code is dus nu veranderd naar wat jullie zeggen!!)
Hij doet het op zich wel, maar dan moet ik eerst op F5 drukken om het scherm te vernieuwen. Ik heb nu gewoon het uitlezen van de variabelen die in de sessie komen geplaatst onder userlevel 1. Hoe komt het dat ik dan eerst nog op F5 moet drukken!??
ergens bovenaan en kijk of het een waarde heeft...
Ik geloofk nl. dat je helemaal die waarde nergens opgegeven hebt :P...
en haal de while loop weg, met where doe je maar 1 tje uit db pakken ;)..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
session_start();
if (empty($_SESSION['log']))
{
include('connect.php');
$query = "SELECT * FROM user WHERE username='$gebruikersnaam' AND password='$wachtwoord'";
$result = mysql_query($query) or die ("Er is een error opgetreden bij het uitvoeren de opdracht. Probeer het later weer eens.");
while($obj = mysql_fetch_object($result))
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
echo "$userlvl";
}
}
else
{
if ($_SESSION['userlvl'] == 1)
{
echo "$userlvl";
}
if ($_SESSION['userlvl'] == 2)
{
header("Location: admin/index.php");
}
if ($_SESSION['userlvl'] == 3)
{
header("Location: index.php?id=recensietoevoegen");
}
}
?>
session_start();
if (empty($_SESSION['log']))
{
include('connect.php');
$query = "SELECT * FROM user WHERE username='$gebruikersnaam' AND password='$wachtwoord'";
$result = mysql_query($query) or die ("Er is een error opgetreden bij het uitvoeren de opdracht. Probeer het later weer eens.");
while($obj = mysql_fetch_object($result))
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
echo "$userlvl";
}
}
else
{
if ($_SESSION['userlvl'] == 1)
{
echo "$userlvl";
}
if ($_SESSION['userlvl'] == 2)
{
header("Location: admin/index.php");
}
if ($_SESSION['userlvl'] == 3)
{
header("Location: index.php?id=recensietoevoegen");
}
}
?>
Dit is tot dusver mijn laatste code voor mijn check.php. Ik begrijp er werkelijk helemaal niets van! Zodra je inlogt, als beheerder met userlevel 1, dan moet de sessie userlvl gevuld worden met een 1. Vervolgens controleerd hij of hij een waarde heeft waarna er gecontroleerd wordt wat er dan moet gebeuren. In dit geval moet hij de uitkomst van de sessie userlvl als uitkomst geven dmv de echo "$userlvl"
Maar dit doet ie de eerste keer niet. Druk ik op F5, dan krijg ik de juiste waarde te zien.
HELP ME!!!!!
Quote:
while($obj = mysql_fetch_object($result))
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
echo "$userlvl";
}
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
echo "$userlvl";
}
Waar wordt $userlvl geset... ?
$_SESSION['userlvl'] = $obj->userlevel;
hier toch!? Hij krijgt de waarde aangereikt vanuit de database!
Maar daarom $userlvl zelf toch niet?
Ik begrijp je echt niet!! Copy paste een stuk van mijn code... en geef aan wat je bedoeld!!
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
while($obj = mysql_fetch_object($result))
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
echo $obj->userlevel;
}
?>
while($obj = mysql_fetch_object($result))
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
echo $obj->userlevel;
}
?>
Try this, en euhm, als het jouw code was,
zou je me best begrijpen...
Maar soit, succes ermee...
Dus... het lijkt of de sessie gewoon niet goed wordt gevuld. Kan het te maken hebben met mijn database? Of heeft het andere punten...
Ik hoor het nog wel.
Gr. Douwe