is het mogelijk session naam in de query zetten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Reshad F

Reshad F

09/02/2012 18:08:30
Quote Anchor link
ik wil dat er wat weergegeven wordt door middel van php, nou werkt dit wel maar ik krijg standaard alles te zien maar ik wil alleen dat het voor de ingelogde gebruiker wordt weergegeven,

ik heb even wat dingen geprobeerd en waar ik tot nu toe gekomen ben is bij:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
                      
                      "
);

?>


maar dan krijg ik alles dus, hoe kan ik met een WHERE bepalen dat alleen de ingelogde gebruiker ziet wat voor HEM relevant is ?
 
PHP hulp

PHP hulp

11/10/2024 23:52:13
 
Noppes Homeland

Noppes Homeland

09/02/2012 18:14:12
Quote Anchor link
En zoals gewoonlijk, wordt er weer de benodigde info achter gehouden.

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.
 
Eddy B

Eddy B

09/02/2012 18:14:53
Quote Anchor link
Als een gebruiker inlogt moet je iets aan de gebruiker geven waarmee jij de gebruiker op andere pagina's kan identificeren, bijvoorbeeld een cookie of sessie. Het liefst beide zodat het moeilijker te kraken is, in latere queries gebruik je dan die sleutel om de gebruiker te identificeren.
Gewijzigd op 09/02/2012 18:17:33 door Eddy B
 
Erwin H

Erwin H

09/02/2012 18:21:47
Quote Anchor link
De vraag is wat je in je sessie hebt staan van de gebruiker. Dus gebruiker_id of gebruikernaam of iets anders dat hem kan identificeren. Dat zet je erin als de gebruiker inlogt en verwijder je als hij uitlogt. In de tussentijd kan je dat gebruiken in dit soort queries.

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['gebruiker_id'] = $gebuiker_id";
?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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']."'
                      "
);
?>
 
Reshad F

Reshad F

09/02/2012 18:23:43
Quote Anchor link
sorry volgens mij heb ik het niet goed uitgelegd, je logt in als gebruiker en wanneer je op je pagina komt dan krijg je informatie te zien wat uit de database opgehaald wordt, maar elke informatie is gelinkt aan een gebruiker_id, en een gebruiker_id is gelinkt aan gegevens van een gebruiker.

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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php WHERE naam='". $_SESSION['ingelogd'] ."'
?>
 
- SanThe -

- SanThe -

09/02/2012 18:24:52
Quote Anchor link
Probeer zelf eens iets uit.
 
Erwin H

Erwin H

09/02/2012 18:49:09
Quote Anchor link
@reshadd
Volgens mij heb je mijn antwoord dan niet goed gegelezen, want ik leg precies uit hoe je het zou kunnen doen.
 
Reshad F

Reshad F

09/02/2012 18:53:05
Quote Anchor link
@erwin de session wordt idd aangemaakt met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php SESSION_START(); ?>


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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$_SESSION
['myusername'] = $naam;

?>


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.


sorry hadhet al geschreven maar niet gereageerd, en was even avond eten en toen heb jij gereageerd in de tussen tijd :)
 
Erwin H

Erwin H

09/02/2012 19:14:28
Quote Anchor link
Als je dit gebruikt om het erin te stoppen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['myusername'] = $naam;
?>


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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$naam
= $_SESSION['myusername'];
?>

kan, maar ook
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$blabla
= $_SESSION['myusername'];
?>


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
 
Reshad F

Reshad F

09/02/2012 19:24:49
Quote Anchor link
ja dat access denied is voor een foutmelding wat ik zelf gemaakt heb als mensen direct naar admin.php bijv gaan

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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++;
      
    }


        ?>









</div>
<!-- [END] container -->
</body>
</html>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
}

else {
    
    echo "direct access denied!! log correct in. <br/>";
    echo '<input type="button" value="Terug" onClick="history.go(-1);return true;">';
        
    }

?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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."'

?>


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
 
Obelix Idefix

Obelix Idefix

09/02/2012 20:24:45
Quote Anchor link
Reshadd farid op 09/02/2012 19:24:49:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
  $naam = $row['naam'];
  $ticketid = $row['ticket_id'];
  $ticketdatum = $row['ticketdatum'];
  $email = $row['email'];
  $bericht = $row['bericht'];
  $response = $row['response'];


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo "<a href='loguit.php'>loguit</a><br/>";


Output PHP is met ' en html met "
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo '<a href="loguit.php">loguit</a><br/>';

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
 
Reshad F

Reshad F

09/02/2012 21:25:40
Quote Anchor link
dat controleren is alleen maar zodat je niet direct naar admin.php kan surfen,
$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?
 
Erwin H

Erwin H

09/02/2012 21:53:08
Quote Anchor link
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.
 
Reshad F

Reshad F

09/02/2012 21:57:06
Quote Anchor link
@erwin hij doet het al :) ik heb een pagina met cheklogin.php waar hij alles controleert met het inloggen.

daar wordt aan het eind een sessie meegegeven. als dat alles gebeurt is kom je in de admin page inclusief je sessie
 
Obelix Idefix

Obelix Idefix

09/02/2012 22:15:26
Quote Anchor link
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)
PHP script in nieuw venster Selecteer het PHP script
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.