Gegevens uit MySQL halen en op PHP pagina zetten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees van Gelder

Kees van Gelder

04/03/2015 10:13:45
Quote Anchor link
Hallo,

In mijn MySQL tabel heb ik de volgende kollommen: id, omschrijving, gebruikersnaam en wachtwoord.
Graag wil ik op een php pagina het volgende hebben: Welkom, "omschrijving".

Maar na vele pogingen krijg ik alle omschrijvingen van alle gebruikers achter elkaar, wat natuurlijk niet mijn bedoeling is.

Wie kan mij verder helpen om alleen de omschrijving te laten weergeven van die gebruiker is ingelogd.
 
PHP hulp

PHP hulp

05/11/2024 11:51:20
 
Frank Nietbelangrijk

Frank Nietbelangrijk

04/03/2015 10:23:50
Quote Anchor link
Als eerste: een gebruiker die is ingelogd betekend net zoveel als er staat iets in de sessie waardoor php weet wie het is. doe dus eens een
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php print_r($_SESSION); ?>
na de session_start() uiteraard.

Indien het een beetje meezit vindt je in de session variabelen het id van de gebruiker die ingelogd is.

Met dit id kun je andere gegevens uit de database trekken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT omschrijving FROM users WHERE id=?


Op de plek van het vraagteken dan even het id-nummer invullen.
 
Kees van Gelder

Kees van Gelder

18/03/2015 10:11:58
Quote Anchor link
Dank je voor de reactie en excuses voor mijn late reactie.

Dit is mij gelukt. Maar is er ook een mogelijkheid om het id variabel te maken?

Geprobeerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
WHERE id='$id'"


Maar dan komt er helemaal niets te staan...
 
- Ariën  -
Beheerder

- Ariën -

18/03/2015 11:42:19
Quote Anchor link
Dan moet $id wel ergens een waarde van krijgen.

Waar komt het id-nummer vandaan?
Gewijzigd op 18/03/2015 11:43:00 door - Ariën -
 
Kees van Gelder

Kees van Gelder

18/03/2015 11:59:19
Quote Anchor link
Uit het header bestand vond ik het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$id = mysqli_real_escape_string($_POST['id']);
 
Henk de Vriep

Henk de Vriep

18/03/2015 14:05:06
Quote Anchor link
vergeet niet juist te escapen: WHERE id='".$id."' "
 
Thomas van den Heuvel

Thomas van den Heuvel

18/03/2015 14:23:40
Quote Anchor link
Dat is helemaal geen escaping, dat is een hack om SQL-injectie tegen te gaan.

Als je een nummer verwacht, controleer dan op een nummer.

$_POST['id'] geeft aan dat het id afkomstig is uit een formulier, maar dat lijkt mij een beetje een vreemde constructie?

Zoals Frank al aangaf: ergens moet onthouden worden dat je ingelogd bent. Als een gebruiker ingelogd is, dat wordt waarschijnlijk enige administratieve informatie opgeslagen in de sessie van die gebruiker ($_SESSION).

Als je een pagina bezoekt die uitsluitend toegankelijk is voor ingelogde gebruikers, en informatie wilt tonen specifiek voor die gebruiker ligt het voor de hand om bij de opbouw van de query voor het ophalen van deze specifieke informatie de (persoonlijke) gegevens van de gebruiker uit de sessie in de query te verwerken.

Je kunt de informatie die *IN* je sessie zit wel vertrouwen (noot voor puristen: hoe je met je sessies omspringt is natuurlijk een ander verhaal he), in die zin dat je deze er zelf (na controle, toch?) instopt (noot voor puristen: en als je deze niet kunt vertrouwen, heb je een heel scala aan andere problemen dus "for the sake of the problem at hand" laten we het simpel houden). Als je dus een user-id in je sessie hebt zitten ($_SESSION['user_id'] of wat dan ook) dan kun je deze in je query gebruiken om de gebruiker-specifieke informatie ophalen.

De vraag is dus: hoe heb je e.e.a. opgeslagen in je sessie. Dit bepaalt hoe je query er uit komt te zien.
 



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.