Stel dat ik een tabel "gebruikers" heb met daarin een aantal user gegevens (voornaam, achternaam, leeftijd en woonplaats, inlognaam en wachtwoord), hoe kan ik er voor zorgen dat een gebruiker zich kan inloggen maar ook op een bepaalde pagina (userinfo.php) hun eigen informatie wordt laten zien die zij ook kunnen aanpassen?
Ik heb van alles geprobeerd maar ik krijg alleen maar vreemde resultaten. :(
Het is zeer moeilijk om hierop te reageren. Wat men in principe hier probeert, is concrete antwoorden geven op concrete problemen.
Daarvoor moeten we een beetje een inzicht hebben in het niveau van de vragensteller.
Ik heb geen idee of je iets van php weet, of je weet hoe je een mySQL kan openen, ...
Je spreekt niet eens over mySQL, zelfs niet over een database.
Als ik het een beetje kan inschatten, zou ik het volgende aanraden:
- lees een tutorial over SESSIONS
- lees een tutorial over inlogscripts
- lees een tutorial over gastenboeken
Die kan je allemaal op deze site vinden. Indien je daar iets van kent, zullen je vragen waarschijnlijk al opgelost zijn.
Stel dat ik een tabel "gebruikers" heb met daarin een aantal user gegevens (voornaam, achternaam, leeftijd en woonplaats, inlognaam en wachtwoord), hoe kan ik er voor zorgen dat een gebruiker zich kan inloggen maar ook op een bepaalde pagina (userinfo.php) hun eigen informatie wordt laten zien die zij ook kunnen aanpassen?
Ik heb van alles geprobeerd maar ik krijg alleen maar vreemde resultaten. :(
mvg
Je moet iets meer gegevens vertellen. Gebruik je sessies of cookies? En staat er in je sessie/cookie een id (onveilig) of een uniek gegenereerde hash die in de tabel gebruikers staat (veiliger)?
Ok, ik zal het proberen wat beter uit te leggen. :)
Ik heb een site waar je op kan registreren (gegevens worden opgeslagen in phpmyadmin tabel: gebruikers). Dit zijn dus gegevens zoals "inlognaam, wachtwoord, voornaam, achternaam, leeftijd, etc".
Een gebruiker kan zich op dit moment al inloggen dmv sessies. Dan heb ik ook nog een aparte pagina die "userinfo.php" heet. Als een gebruiker is ingelogd en naar de userinfo pagina gaat wil ik dat zijn gegevens daar worden uitgelezen.
Het probleem wat ik dus nu heb, is dat als ik met pietje inlog (voorbeeld) dan krijg ik ook de gegevens van pietje te zien. MAAR, als ik met een ander account inlog dan zie ik OOK de gegevens van pietje. Het maakt niet uit met welk account ik inlog. Ik heb waarschijnlijk iets fouts gedaan bij het uitlezen van gegevens. Ik heb al enorm veel geprobeerd maar ik kom er niet meer uit. Ik wil gewoon dat als een gebruiker ingelogd is EN naar die pagina toe gaat alleen zijn gegevens daar staan. En niet die van andere.
Jou fout komt waarschijnlijk omdat je een query hebt zonder een (goede) WHERE daarin, er worden dus geen voorwaarden gesteld aan welke rij wordt geselecteerd.
vb:
SELECT
*
FROM
gebruikers
Als je in deze situatie geen while()/for() lus (in PHP) gebruikt om de resultaten te lezen geeft die inderdaad altijd het laatst gevonden resultaat terug... (in jou geval pietje) Dit is op te lossen door de query een WHERE mee te geven.
Op de userinfo.php moet je query er (ongeveer) zo uit zien wanneer je in je sessie het id van de gebruiker opslaat:
$sql = "SELECT
inlognaam,
voornaam,
achternaam,
leeftijd
FROM
gebruikers
WHERE
id = ".$_SESSION['userid'];
Sla je de inlognaam op (is minder snel, eigenlijk een mindere oplossing, maar goed) dan ziet dat er zo uit:
$sql = "SELECT
inlognaam,
voornaam,
achternaam,
leeftijd
FROM
gebruikers
WHERE
inlognaam = '".$_SESSION['userid']."' ";