Beste.

Ik heb op een x aantal websites gezien dat men gebruikt maakt van een redirect na het aanmelden.
Je meld je aan op de website en dan redirect hij en ben je gelijk ingelogd.

mijn vraag is hoe kun je de waardes mee geven van de gebruikersnaam en wachtwoord ?

redirect na gelukte aanmelding zal zo ongeveer werken
header("Location: index.php");
exit();
}

ik hoop dat iemand mij hiermee kunt helpen
Zet iets van een userid in een session en dan kun je op elke pagina de gewenste gegevens uit de database halen. Uiteraard nooit een wachtwoord in een session en/of een cookie zetten.
HTTP is stateless. Dat wil zeggen dat wanneer je van pagina A naar pagina B navigeert, je browser alweer vergeten was dat je op pagina A zat. Je hebt dus een middel nodig waarbij je pagina-overbruggend informatie kunt onthouden.

Zo zou je bijvoorbeeld gebruik kunnen maken van cookies. Een cookie is niets meer dan een tekstbestandje wat opgeslagen wordt op jouw computer die vervolgens elk request mee wordt gestuurd als header naar de website (die het cookie heeft ingesteld). Het "nadeel" van deze methode (gezien vanuit veiligheidsoptiek) is dat de inhoud van een cookie aangepast kan worden. Hierin wil je dus geen informatie opslaan die jou bijvoorbeeld identificeert als super admin :p.

Een andere methode is sessies. Ik vergelijk sessies altijd met "serverside cookies". Je kunt nog steeds informatie van een specifieke gebruiker onthouden, maar deze hebben hier geen inhoudelijke toegang toe. Het enige wat zij aan de webserver moeten vertellen is welke sessie van hun is. Dit doe je met behulp van een sessie-cookie. Deze bevat als enige waarde het sessie-id. Hier is het dus belangrijk dat iemand niet zomaar dit cookie kan stelen en daarmee effectief je sessie over kan nemen. Daarom worden er vaak additionele controles toegevoegd om -na inloggen- verder te kunnen garanderen dat iemand -op grond van zijn/haar sessie-id- ook daadwerkelijk is wie hij/zij zegt te zijn. Denk bijvoorbeeld aan een IP-controle.

Maar los daarvan, het is een misvatting om zaken als gebruikersnaam en wachtwoord op te slaan in een sessie. Tijdens het verwerken van een inlogpoging controleer je de ingevulde gegevens. Kloppen deze, dan stop je een minimale hoeveelheid informatie in je sessie, bijvoorbeeld een gebruikers-id... EN VERDER NIETS. Vervolgens wordt je vaak doorgestuurd naar een afgeschermd deel van de website of heb je de beschikking over meer functionaliteit op eenzelfde publieke pagina.

Het idee is dat je elke page-access gebruikersinformatie opnieuw uit de database trekt en in een (tijdelijke) PHP-variabele (bijvoorbeeld een array of een object) opslaat (bijvoorbeeld $user). Dit doe je omdat dan de informatie elke pagina-access "vers" is en niet een verouderde situatie weerspiegelt.

Stel dat jij iemand zijn gebruikersrechten wilt intrekken en deze verwerkt zitten in je sessie, dan zou deze gebruiker ingelogd blijven totdat de sessie verloopt, of je zou hier speciale code voor moeten schrijven die elke page-access deze informatie in je sessie bijwerkt. Maar als deze informatie toch zo vluchtig is, waarom sla je die dan in eerste instantie op in je sessie? Het is beter om je sessie zo lichtgewicht mogelijk te houden.

Uit het bovenstaande maak ik wel een beetje op dat je nog niet vertrouwd was met het fenomeen "sessies". Misschien moet je je hier eerst wat meer in verdiepen voordat je hiermee aan de slag gaat.

Hints: PHP heeft hiervoor een superglobal genaamd $_SESSION. Om een sessie te starten/voort te zetten gebruik je de functie session_start(). Elke pagina / script waarin je sessies wenst te gebruiken dien je session_start() aan te roepen.
Als je handmatig in zou loggen zou je een cookie op je PC krijgen met een unieke identificatiecode, waaraan de server weet dat jij het bent.

Ik denk gewoon dat dit proces direct wordt uitgevoerd zodra je door je registraieproces heen bent. Een setcookie() is niet zo heel lastig te realiseren.

Persoonlijk zou ik zo'n mogelijkheid pas doen als je je e-mailadres geverifieerd hebt. Anders heb je kans dat de botjes massaal en direct zullen spammen.
Maar dat gaat meer over de registratie-flow. Daarbij is het inderdaad wel verstandig dat je de registratie en activatie scheidt in twee handmatige stappen.

In dit geval lijkt mij dat toch een beetje vers twee (of drie :p) aangezien TS niet echt een indruk achterlaat van vertrouwdheid met de materie.
@thomas op de website word al gebruik gemaakt van $_SESSION en ik ben daar gewoon bekend mee alleen stel ik een simpele vraag jij reageerd met een lap tekst waar je naar van word is dit nou hulp ? je verondersteld dingen zoals aangezien TS niet echt een indruk achterlaat van vertrouwenheid , waar is dat op gebaseerd op een simpele vraag van mij ? je zult het vast en zeker goed bedoelen maar dit slaat in mijn ogen nergens op 489 woorden voor een 1 simpele regel wat ik erbij moet gooien om het te laten werken..

maar laat maar weer zitten het is al gelukt beetje jammer dat het niveau hier heel hard daalt vroeger was het vele malen beter en kon je gewoon normaal je vragen stellen en kreeg je gewoon andwoord simpel kort en direct zonder 489 woorden te moeten lezen ;)

Is een beetje achtergrondinformatie dat uitlegt waarom dingen zijn zoals ze zijn teveel voor je? Als je al bekend was met sessions was de vraag een beetje overbodig, toch?

>> maar laat maar weer zitten het is al gelukt beetje jammer dat het niveau hier heel hard daalt
Correct. Het niveau van de vragen daalt ontzettend hard :-)
Het is al zo vaak gezegd: het is hier geen afhaalchinees.
als men gewoon een antwoord kan geven ipv 489 woorden tikken waar nog steeds geen antwoord in staat zou dat wel beter voor de website zijn
Onzin. Achtergrondinformatie is belangrijk, en het antwoord staat er wel degelijk in. Dat je geen interesse hebt in de achtergrond heeft niets te maken met de validiteit van wat er gezegd wordt. Het maakt topics als dit nuttig voor degene die wel geinteresseerd is.
Michael Visser op 23/10/2017 17:08:11

als men gewoon een antwoord kan geven ipv 489 woorden tikken waar nog steeds geen antwoord in staat zou dat wel beter voor de website zijn

Je zou ook eens kunnen beginnen met te zeggen "Dankjewel!". Lijkt me niet meer dan normaal. Iemand besteedt zoveel aandacht aan jou om je iets duidelijk te maken, en vervolgens ga jij lopen zeuren dat het teveel tekst is? Sorry, maar ik vind jouw houding (en dat zeg ik niet vaak) een beetje beschamend.

We kunnen natuurlijk niet van de leden verplichten om kort en bondig te zijn en een hap-klaar antwoord te geven in enkele regels. Als iemand een uitgebreid achtergrondverhaal in een topic post, dan is dat zijn/haar keuze.

Sommigen gebruikers houden het nu eenmaal kort in hun reactie, en sommige geven ook wat achtergrond-informatie met vaak wat handige adviezen.

Hierin kan de crew niet bemiddelen omdat er geen enkele regels worden overtreden.

Reageren