Session vraagje

Gestart doorJob16 reacties143 weergaven

17 berichten · pagina 1 van 2

Job

Lid · Topicstarter

Berichten
425
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hoi,
Ik ben nu al een tijdje aan het stoeien met een script wat ik wil maken. Ik haal het userlevel van een gebruiker uit de database op, wil hem omzetten in $userlevel en vervolgens in een session zetten. Ditzelfde ook bij gebruikersnaam gedaan en als ik deze op een andere pagina op wil halen werkt dat prima. Bij het userlevel helaas niet, hieronder de codes die ik gebruik.
Onderstaande code word uitgevoerd nadat de gebruiker ingelogd heeft

Codeblok (inloggen_achter.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


session_start();
if(!empty($_POST)){
include("db_connect.inc.php");
$query = "SELECT gebruikersnaam,wachtwoord,userlevel FROM gebruiker WHERE gebruikersnaam=" . $_POST["gebruikersnaam"] ." AND wachtwoord=". $_POST["wachtwoord"] . " AND userlevel=". $userlevel . "";

$result = mysql_query($query);

if(mysql_num_rows($result) > 0){
$gebruiker = $_POST["gebruikersnaam"];
$wachtwoord = $_POST["wachtwoord"];
$_SESSION[gebruiker] = $gebruiker;
$_SESSION[userlevel] = $userlevel; //userlevel controleren, zelf toegevoegd, JO
//goede login

header("Location: index.php");
exit();
}

else { //foute login
$text = "Je hebt geen goede combinatie van gebruikersnaam en wachtwoord gebruikt!";
die($text);
} }

else{
header("Location: index.php");
}

?>

En in volgende code wil ik hem ophalen

Codeblok (index.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



session_start();
if(!isset($_SESSION[gebruiker])){
header("Location: login.php");
}


else{
?>
BlaBla

include(menu.inc.php); ?>

Index

Blablaabla

echo $_SESSION[gebruiker] ; ?>

if($_SESSION[userlevel] == 1) {
echo "Je bent lid!" ;
}
if($_SESSION[userlevel] == 2) {
echo "Je bent een admin";
}

echo $_SESSION[userlevel];
?>

Leuk om zo te puzzelen met PHP en MySQL, maar ik heb nu echt geen idee wat ik fout doe. Heb van alles geprobeerd. De standaard waarde van userlevel in PhpMyAdmin is 1.

Ik hoop dat jullie mij kunnen helpen!

0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
haal die [c]AND userlevel[/c] eens uit je query, en dan dit:

[COLOR= #0000BB]<?php[/COLOR]

[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_num_rows"]mysql_num_rows[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$result[/COLOR][COLOR= #007700]) >[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700])
{[/COLOR]
  [COLOR= #0000BB]$data[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_assoc"]mysql_fetch_assoc[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$result[/COLOR][COLOR= #007700]);[/COLOR] [COLOR= #FF8000]/* resultaat omzetten in een array */[/COLOR]

  [COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]];[/COLOR]
  [COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]userlevel[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]userlevel[/COLOR][COLOR= #007700]];
}[/COLOR]

?>


En pas op voor SQL injection, mensen kunnen heel je database droppen nu emo (zie mysql_real_escape_string).

En MySQL is verouderd en je hoort prepared statements te gebruiken, maar aangezien je enkel aan het leren bent kan het voor nu geen kwaad.

toevoeging op 31 januari 2015, 11:32:17:
En let ook een beetje op uitlijning en netheid van je code: wat je nu hebt ziet er echt niet uit.
0
Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je hebt in je inloggen_achter na je fetch geen [c]$userlevel[/c], dus kan hij ook geen [c]$_SESSION[/c] gelijk stellen aan [c]$userlevel[/c] want die bestaat niet.
0
Job

Lid · Topicstarter

Berichten
425
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt

[COLOR= #0000BB]<?php[/COLOR] 
[URL="http://www.php.net/session_start"]session_start[/URL][COLOR= #007700]();[/COLOR] 
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700](![/COLOR][URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700])){[/COLOR] 
[URL="http://www.php.net/include"]include[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"db_connect.inc.php"[/COLOR][COLOR= #007700]);[/COLOR] 
[COLOR= #0000BB]$query[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"SELECT gebruikersnaam,wachtwoord,userlevel FROM gebruiker WHERE gebruikersnaam="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]"gebruikersnaam"[/COLOR][COLOR= #007700]]  .[/COLOR][COLOR= #DD0000]" AND wachtwoord="[/COLOR][COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]"wachtwoord"[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700];[/COLOR]  

[COLOR= #0000BB]$result[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$query[/COLOR][COLOR= #007700]);[/COLOR] 

[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_num_rows"]mysql_num_rows[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$result[/COLOR][COLOR= #007700]) >[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700])
{[/COLOR]
  [COLOR= #0000BB]$data[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_assoc"]mysql_fetch_assoc[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$result[/COLOR][COLOR= #007700]);[/COLOR] [COLOR= #FF8000]/* resultaat omzetten in een array */[/COLOR]
[COLOR= #0000BB]$gebruiker[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]gebruikersnaam[/COLOR][COLOR= #007700]];[/COLOR]

  [COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$gebruiker[/COLOR][COLOR= #007700];[/COLOR]
  [COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]userlevel[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]userlevel[/COLOR][COLOR= #007700]];[/COLOR]

[COLOR= #FF8000]//goede login[/COLOR]
[URL="http://www.php.net/header"]header[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Location: index.php"[/COLOR][COLOR= #007700]);[/COLOR] 
[URL="http://www.php.net/exit"]exit[/URL][COLOR= #007700](); 
}[/COLOR] 
[URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR] [COLOR= #FF8000]//foute login[/COLOR]
[COLOR= #0000BB]$text[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"Je hebt geen goede combinatie van gebruikersnaam en wachtwoord gebruikt!"[/COLOR][COLOR= #007700];[/COLOR] 
[URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$text[/COLOR][COLOR= #007700]); 
} }[/COLOR] 
[URL="http://www.php.net/else"]else[/URL][COLOR= #007700]{[/COLOR] 
[URL="http://www.php.net/header"]header[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Location: index.php"[/COLOR][COLOR= #007700]); 
}[/COLOR]
?>
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Job schreef:
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt
Waarom sla je de userlevel op in de sessie?
Als je tijdens de sessie een andere rol krijgt toegewezen, dan moet je eerst uit- en inloggen voordat je nieuwe rol in gebruik kan worden genomen.

Als het een banned-role is, dan mag je wel een poosje mazzel hebben als gebruiker wink
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Aarclay schreef:
Eerdere citaten tonen
Job schreef:
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt

Waarom sla je de userlevel op in de sessie?
Als je tijdens de sessie een andere rol krijgt toegewezen, dan moet je eerst uit- en inloggen voordat je nieuwe rol in gebruik kan worden genomen.

Als het een banned-role is, dan mag je wel een poosje mazzel hebben als gebruiker wink
Sessies kan je gewoon aanpassen
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Jessee schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Job schreef:
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt

Waarom sla je de userlevel op in de sessie?
Als je tijdens de sessie een andere rol krijgt toegewezen, dan moet je eerst uit- en inloggen voordat je nieuwe rol in gebruik kan worden genomen.

Als het een banned-role is, dan mag je wel een poosje mazzel hebben als gebruiker wink
Sessies kan je gewoon aanpassen
Neehoor.
Je kunt hooguit andermans sessies kapen, maar wijzigen lukt je niet.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Jessee schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Job schreef:
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt

Waarom sla je de userlevel op in de sessie?
Als je tijdens de sessie een andere rol krijgt toegewezen, dan moet je eerst uit- en inloggen voordat je nieuwe rol in gebruik kan worden genomen.

Als het een banned-role is, dan mag je wel een poosje mazzel hebben als gebruiker wink
Sessies kan je gewoon aanpassen
Je bent in de war met cookies, denk ik wink
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Lennard schreef:
Eerdere citaten tonen
Jessee schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Job schreef:
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt

Waarom sla je de userlevel op in de sessie?
Als je tijdens de sessie een andere rol krijgt toegewezen, dan moet je eerst uit- en inloggen voordat je nieuwe rol in gebruik kan worden genomen.

Als het een banned-role is, dan mag je wel een poosje mazzel hebben als gebruiker wink
Sessies kan je gewoon aanpassen
Neehoor.
Je kunt hooguit andermans sessies kapen, maar wijzigen lukt je niet.
Aarclay schreef:
Eerdere citaten tonen
Jessee schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Job schreef:
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt

Waarom sla je de userlevel op in de sessie?
Als je tijdens de sessie een andere rol krijgt toegewezen, dan moet je eerst uit- en inloggen voordat je nieuwe rol in gebruik kan worden genomen.

Als het een banned-role is, dan mag je wel een poosje mazzel hebben als gebruiker wink
Sessies kan je gewoon aanpassen
Je bent in de war met cookies, denk ik wink
$_SESSION["banned"] = 1?
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Dylan schreef:
Eerdere citaten tonen
Lennard schreef:
Eerdere citaten tonen
Jessee schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Job schreef:
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt

Waarom sla je de userlevel op in de sessie?
Als je tijdens de sessie een andere rol krijgt toegewezen, dan moet je eerst uit- en inloggen voordat je nieuwe rol in gebruik kan worden genomen.

Als het een banned-role is, dan mag je wel een poosje mazzel hebben als gebruiker wink
Sessies kan je gewoon aanpassen
Neehoor.
Je kunt hooguit andermans sessies kapen, maar wijzigen lukt je niet.
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Jessee schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Job schreef:
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt

Waarom sla je de userlevel op in de sessie?
Als je tijdens de sessie een andere rol krijgt toegewezen, dan moet je eerst uit- en inloggen voordat je nieuwe rol in gebruik kan worden genomen.

Als het een banned-role is, dan mag je wel een poosje mazzel hebben als gebruiker wink
Sessies kan je gewoon aanpassen
Je bent in de war met cookies, denk ik wink
$_SESSION["banned"] = 1?
$_POST[naam] = Henk?
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Ooh dacht dat @jessee bedoelde dat sessies door de user aan te passen waren. biggrin
toevoeging op 2 februari 2015, 11:07:48:
Je info in sessies bewaren kan prima, maar dan moet je dus wel elke request kijken of die sessie-informatie nog klopt, en dan hebben sessies totaal geen nut.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Dylan schreef:
Eerdere citaten tonen
Lennard schreef:
Eerdere citaten tonen
Jessee schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Job schreef:
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt

Waarom sla je de userlevel op in de sessie?
Als je tijdens de sessie een andere rol krijgt toegewezen, dan moet je eerst uit- en inloggen voordat je nieuwe rol in gebruik kan worden genomen.

Als het een banned-role is, dan mag je wel een poosje mazzel hebben als gebruiker wink
Sessies kan je gewoon aanpassen
Neehoor.
Je kunt hooguit andermans sessies kapen, maar wijzigen lukt je niet.
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Jessee schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Job schreef:
Allebei bedankt, ik ga morgenmiddag eventjes kijken of het werkt! Vast wel. @Raoul: Ik zal ook even kijken naar de uitlijning smile
Bedankt in ieder geval tot nu toe en ik zal wel even laten horen hoe het gegaan is.

EDIT!!
Ik heb nu dit, maar nu kom ik na het inloggen niet op de homepage terecht, dus kan ik ook niet zien of het userlevel-gedeelte heeft gewerkt

Waarom sla je de userlevel op in de sessie?
Als je tijdens de sessie een andere rol krijgt toegewezen, dan moet je eerst uit- en inloggen voordat je nieuwe rol in gebruik kan worden genomen.

Als het een banned-role is, dan mag je wel een poosje mazzel hebben als gebruiker wink
Sessies kan je gewoon aanpassen
Je bent in de war met cookies, denk ik wink
$_SESSION["banned"] = 1?
Het kan wel, maar dan moet je die gebruiker gedwongen een nieuwe overschrijvende sessie geven door het uit de database op te halen. Maar waarom niet direct op de database ophalen?
Het opslaan in een sessie blijft een onnodige stap.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Lennard schreef:
Ooh dacht dat @jessee bedoelde dat sessies door de user aan te passen waren. biggrin
toevoeging op 2 februari 2015, 11:07:48:
Je info in sessies bewaren kan prima, maar dan moet je dus wel elke request kijken of die sessie-informatie nog klopt, en dan hebben sessies totaal geen nut.

Nee inderdaad dat als je de user banned, dat hij dan de sessie van de user aanpast
Dan hoeft die gebruiker niet eerst uit te loggen.
0
Job

Lid · Topicstarter

Berichten
425
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Kun je in zon geval niet een sessie na xxx tijd laten destroyen? Dan heb je hooguit dat iemand bijv 2 uur nog online kan. Noem maar wat hoor. Maar punt is dat ik er nu nog steeds niet uit ben wat ik nou fout doe bloos
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Bij iedere request:

if tijd van aanmaak sessie > 2 uur dan
  sessie verwijderen
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren