is het mogelijk session naam in de query zetten
ik heb even wat dingen geprobeerd en waar ik tot nu toe gekomen ben is bij:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$result = mysql_query("
SELECT *
FROM gebruiker
INNER JOIN tickets
ON gebruiker.gebruiker_id = tickets.gebruiker_id
");
?>
$result = mysql_query("
SELECT *
FROM gebruiker
INNER JOIN tickets
ON gebruiker.gebruiker_id = tickets.gebruiker_id
");
?>
maar dan krijg ik alles dus, hoe kan ik met een WHERE bepalen dat alleen de ingelogde gebruiker ziet wat voor HEM relevant is ?
Hoe weet jij dan, welke gebruiker wel en niet is ingelogd.
En wat mij betreft mag je er zelf ook wel eens wat beter over nadenken, want dit soort vragen worden toch wel bijna wekelijks gesteld.
Gewijzigd op 09/02/2012 18:17:33 door Eddy B
Ervan uitgaande dat je op een juiste manier de sessie start en de gebruiker laat inloggen, dan kan je na het inloggen de gebruiker id in de sessie stoppen:
Dan, als je het nodig hebt om alleen zijn data op te halen uit je database kan je die id weer uit je sessie halen:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$result = mysql_query("
SELECT *
FROM gebruiker
INNER JOIN tickets
ON gebruiker.gebruiker_id = tickets.gebruiker_id
WHERE gebruiker.gebruiker_id = '".$_SESSION['gebruiker_id']."'
");
?>
$result = mysql_query("
SELECT *
FROM gebruiker
INNER JOIN tickets
ON gebruiker.gebruiker_id = tickets.gebruiker_id
WHERE gebruiker.gebruiker_id = '".$_SESSION['gebruiker_id']."'
");
?>
wanneer je ingelogd bent krijg je uiteraard dat die session start,
en ik weet niet of deze vraag al wekelijks is gesteld, kan best zo zijn maar misschien is het aan mij voorbij gegaan. :)
ik dacht zelf overigens aan zoiets
Probeer zelf eens iets uit.
Volgens mij heb je mijn antwoord dan niet goed gegelezen, want ik leg precies uit hoe je het zou kunnen doen.
maar nu even een vraagje omtrent het session in een variable zetten,
ik gebruik de 'myusername' en zet deze in een sessie, maar wanneer ik dus de variable aanmaak moet ik dan myusername gebruiken? of is een elk ander willekeurig term ook goed?
dus
want als ik dit doe, en dan controleer of er ingelogd is krijg ik een access denied omdat myusername waarde veranderd in $naam
dus het lijkt me niet.. maar dan krijg ik dus ook niks meer te zien
dus manier 1 = toegang geweigerd,
manier 2 = krijg niks op scherm
Toevoeging op 09/02/2012 18:54:11:
Erwin H op 09/02/2012 18:49:09:
@reshadd
Volgens mij heb je mijn antwoord dan niet goed gegelezen, want ik leg precies uit hoe je het zou kunnen doen.
Volgens mij heb je mijn antwoord dan niet goed gegelezen, want ik leg precies uit hoe je het zou kunnen doen.
sorry hadhet al geschreven maar niet gereageerd, en was even avond eten en toen heb jij gereageerd in de tussen tijd :)
dan kan je op de volgende pagina $_SESSION['myusername'] gebruiken als een normale variabele. Wat je er dan mee doet maakt niet uit. Dus direct gebruiken in een query of het in een andere variabele stoppen. $naam bestaat op dat moment in elk geval niet meer, maar kan je natuurlijk wel opnieuw aanmaken. Dus
kan, maar ook
Alleen die access denied begrijp ik niet, daar zal iets anders aan de hand zijn gok ik. Als je dat blijft houden moet je de code waarop je het krijgt maar eens posten.
Gewijzigd op 09/02/2012 19:15:06 door Erwin H
even een vraagje wat misschien heel dom klinkt, de session wordt al automatisch aangemaakt als ik inlog en bij de admin.php
SESSION_START(); neerzet? ( sorry ik heb niet veel ervaring met sessions )
ik zal even mijn hele code posten van de admin.php
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
session_start();
naam1 = $_SESSION['myusername'];
if (isset($_SESSION['myusername'])) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>admin page</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- start container -->
<div id="container">
<h1>
<?php
echo "<a href='loguit.php'>loguit</a><br/>";
echo "ingelogd als ".$_SESSION['myusername'];
?>
</h1>
<div class="contact">
<?php
include("connect.php");
$result = mysql_query("
SELECT *
FROM gebruiker
INNER JOIN tickets
ON gebruiker.gebruiker_id = tickets.gebruiker_id
WHERE gebruiker.naam ='". $_SESSION['myusername'] ."'
");
$i=0;
while($row = mysql_fetch_assoc($result)) {
$naam = $row['naam'];
$ticketid = $row['ticket_id'];
$ticketdatum = $row['ticketdatum'];
$email = $row['email'];
$bericht = $row['bericht'];
$response = $row['response'];
print "$ticketid - $ticketdatum | $naam $email <br/><br/> bericht: <br /> $bericht <br/><br/> Antwoord: $response<hr/>";
$i++;
}
?>
session_start();
naam1 = $_SESSION['myusername'];
if (isset($_SESSION['myusername'])) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>admin page</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- start container -->
<div id="container">
<h1>
<?php
echo "<a href='loguit.php'>loguit</a><br/>";
echo "ingelogd als ".$_SESSION['myusername'];
?>
</h1>
<div class="contact">
<?php
include("connect.php");
$result = mysql_query("
SELECT *
FROM gebruiker
INNER JOIN tickets
ON gebruiker.gebruiker_id = tickets.gebruiker_id
WHERE gebruiker.naam ='". $_SESSION['myusername'] ."'
");
$i=0;
while($row = mysql_fetch_assoc($result)) {
$naam = $row['naam'];
$ticketid = $row['ticket_id'];
$ticketdatum = $row['ticketdatum'];
$email = $row['email'];
$bericht = $row['bericht'];
$response = $row['response'];
print "$ticketid - $ticketdatum | $naam $email <br/><br/> bericht: <br /> $bericht <br/><br/> Antwoord: $response<hr/>";
$i++;
}
?>
</div>
<!-- [END] container -->
</body>
</html>
Code (php)
Toevoeging op 09/02/2012 19:42:08:
edit:
ik heb even geechoed en ik krijg gewoon de waarde van $naam zoals hoort
maar als ik dit in de query gebruik krijg ik alsnog een leeg scherm
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// de session variable aanmaken
$naam1 = $_SESSION['myusername'];
SELECT *
FROM gebruiker
INNER JOIN tickets
ON gebruiker.gebruiker_id = tickets.gebruiker_id
WHERE gebruiker.naam = '" .$naam1."'
?>
// de session variable aanmaken
$naam1 = $_SESSION['myusername'];
SELECT *
FROM gebruiker
INNER JOIN tickets
ON gebruiker.gebruiker_id = tickets.gebruiker_id
WHERE gebruiker.naam = '" .$naam1."'
?>
Toevoeging op 09/02/2012 19:52:00:
hij doet het al ik moest myusername gebruiken in een sessie vorm! dankjewel erwin
Gewijzigd op 09/02/2012 19:49:56 door Reshad F
Reshadd farid op 09/02/2012 19:24:49:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
session_start();
naam1 = $_SESSION['myusername'];
if (isset($_SESSION['myusername'])) {
?>
session_start();
naam1 = $_SESSION['myusername'];
if (isset($_SESSION['myusername'])) {
?>
Heb je error-reporting aanstaan?
Je script klopt namelijk niet. naam1 moet, denk ik $naam1 zijn.
En je gaat eerst een variabele aanmaken en dan pas controleren of die bestaat?! :s
Wat is het nut van
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$naam = $row['naam'];
$ticketid = $row['ticket_id'];
$ticketdatum = $row['ticketdatum'];
$email = $row['email'];
$bericht = $row['bericht'];
$response = $row['response'];
$ticketid = $row['ticket_id'];
$ticketdatum = $row['ticketdatum'];
$email = $row['email'];
$bericht = $row['bericht'];
$response = $row['response'];
Output PHP is met ' en html met "
Verder op doe je het soms wel en dan weer niet goed. Als je script, doe het consequent.
Waar is je foutafhandeling???
In je laatste code:
Daar mist een deel en gebruik geen *, maar benoem de velden die je wilt ophalen.
Gewijzigd op 09/02/2012 20:25:16 door Obelix Idefix
$naam1 = $_SESSION... wordt volgens mij alleen de waarde van session in de variable gezet toch? dus als ik erop controleer en je bent direct naar admin.php gegaan dan krijg je error dat je correct moet inloggen :) hij doet wat hij dus doen moet, er zit nog een pagina tussen waar de myusername zijn waarde toegewezen krijgt ( in een sessie wordt gestopt )
en als je dat overslaat is het dus een lege session
de fouthandeling mist idd nog maar ik was ook niet helemaal klaar met het scriptje :)
het nut van die variablen uit row halen, ik dacht altijd dat dat moest als je het wilt echooen of printen als een variable?
De vraag is, waar je de naam van de gebruiker in de $_SESSION zet. Dat moet natuurlijk wel eerst gebeuren (na het inloggen van de gebruiker) voor je het weer kan gebruiken om de pagina op te maken.
daar wordt aan het eind een sessie meegegeven. als dat alles gebeurt is kom je in de admin page inclusief je sessie
Reshadd farid op 09/02/2012 21:25:40:
hij doet wat hij dus doen moet,
En dus ben je tevreden?! :s
Zou jij in een auto gaan rijden, waarvan bv de remmen het niet doen? Ach, hij rijdt toch....
Reshadd farid op 09/02/2012 21:25:40:
$naam1 = $_SESSION... wordt volgens mij alleen de waarde van session in de variable gezet toch?
Maar als die session niet bestaat, maak je dus een lege variabele aan? Ik zie daar geen toegevoegde waarde in. Je maakt het alleen jezelf moeilijk door weer een variabele aan te maken.
Reshadd farid op 09/02/2012 21:25:40:
de fouthandeling mist idd nog maar ik was ook niet helemaal klaar met het scriptje :)
Doe je dat altijd; een script in onderdelen opbouwen? Foutafhandeling is een 'basisbehoefte'. Waarom dat pas later inbouwen?
Reshadd farid op 09/02/2012 21:25:40:
het nut van die variablen uit row halen, ik dacht altijd dat dat moest als je het wilt echooen of printen als een variable?
Waarom? je kunt toch direct de output gebruiken?
Code (php)
1
print $row['ticketid'] .'-'. $row['ticketdatum'] .'|'. $row['naam'] $row['email'].' <br/><br/> bericht: <br /> '.$row['bericht'].' <br/><br/> Antwoord: '.$row['response'].'<hr/>';
Let ook op dat je de variabelen _buiten_ de quotes houdt. Volgens mij is je dat vast al eens een keer verteld...
Gewijzigd op 09/02/2012 22:17:05 door Obelix Idefix