redirect na gelukte aanmelding
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
Gewijzigd op 23/10/2017 15:16:18 door - SanThe -
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.
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.
Gewijzigd op 23/10/2017 15:23:56 door - Ariën -
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.
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 ;)
>> 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.
Gewijzigd op 23/10/2017 17:07:10 door Ben van Velzen
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.
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.
maak je al gebruik van $_session
als het antwoord dan nee is kan je je text neerzetten lijkt mij logischer
Zie ook je PM die ik je had gestuurd.
Again, Thomas kiest voor een volledige uitleg waar alles in staat. Vind je het dan niet normaal om eerst eens "dankjewel" te zeggen (het kan nog steeds) in plaats van in discussie te gaan over hoe Thomas in jouw ogen de door jouw gestelde vraag had moeten beantwoorden, blijkbaar volgens jouw zelfbedachte regels waar niemand van op de hoogte is? Thomas heeft er zijn eigen kostbare tijd in gestoken. Dat zou je ook kunnen ... * WAARDEREN *
+1
Bedankt SanThe :) zeggen we dan. maar ook dat gebeurt niet
Dit kan voor sommigen / gevorderden voldoende zijn. Maar is het vaak moeilijk om iemand zijn/haar niveau te peilen. Zo wordt namelijk in het oorspronkelijke bericht met geen woord over sessies gerept.
Daarnaast is deze website op den duur ook een plaats waar kennis zich ophoopt. Als je echter alleen maar rechtstreekse antwoorden geeft (adje hoc) is deze informatie wel erg toegespitst op de vraag en mogelijk niet echt "algemeen inzetbaar" / herbruikbaar.
Ook willen we hier denk ik wel een soort van sfeer creëren waarin zaken wat breder uit de doeken gedaan worden om zo te komen tot "inzicht" in plaats van enkel het aanleren van "apentruuks". In het eerstgenoemde geval zijn er nog steeds een heleboel implementaties van programmeervraagstukken mogelijk die je kunt gebruiken omdat je de materie snapt, in het laastgenoemde geval weet je waarschijnlijk nog steeds niet waarmee je bezig bent, en sta je morgen met een nieuwe vraag klaar. Dat lijkt mij niet de bedoeling van een community als deze.
1 +1 = 3
Ben van Velzen op 23/10/2017 17:05:48:
Het is al zo vaak gezegd: het is hier geen afhaalchinees.
Dat is een goeie :)
PS. ik werk toch al een tijdje met php. Wel als hobbyist en heb van Thomas zijn uitleg toch iets opgestoken. Bedankt.
Gewijzigd op 24/10/2017 07:01:18 door Jan R
Veel topics hier hebben een aantal views wat meer dan tien of vijftigmaal aantal reacties is. Er zijn dus kennelijk lurkers in veel topics. Oftewel: mensen die zich interesseren voor het probleem, maar niet zelf het lijdend voorwerp in het topic zijn. Ik gok dat deze mensen met veel plezier de extra informatie tot zich nemen.
Ik denk alleen dat "de druppel" geweest is dat het kennisniveau / de vertrouwdheid met PHP van de TS ter sprake is gekomen. Dan kan de lap tekst ook als "betutteling" overkomen. Zal niet de bedoeling zijn, maar toch.
Toch zit hier wel een addertje. Net als op veel fora willen sommige mensen hun kennis tentoon spreiden waarbij ze zich (ongemerkt?) beter willen profileren dan anderen. Denk bijvoorbeeld aan voorbeelden waar sanatizing geen rol speelt in de vraag, maar in de antwoorden "er toch met de haren bijgesleept wordt". Het kan geinterpreteerd worden als "goed bedoeld", en als "betutteling". Dit zal gedeeltelijk komen omdat men elkaar niet kent, maar probeert in te schatten op niveau aan de hand van het enige stuk code wat die persoon online gezet heeft. (Waarbij vaak niet bekend is of dit al een versimpelde situatie is)
In dit geval ben ik echter wel van mening dat de eerste regels van de TS doen vermoeden "dat deze het niet snapt". Er wordt eerst een verband gelegd tussen de redirect en ingelogd zijn, en vervolgens wordt daarbij vanuit gegaan dan het normaal is om telkens de usergegevens mee te sturen.
Vanuit dat standpunt is het denk ik wel logisch dat een uitgebreide uitleg volgt. En eerlijk is eerlijk: er wordt niet op de man gespeeld, maar op het onderwerp. Thomas geeft keurig aan:
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.
Er wordt niet gesteld dat iemand een beginner is, maar dat dit een blind spot zou kunnen zijn.
(Dempt, zo kom ik nooit aan de 490 woorden... Ik zal het hier maar bij laten)