login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Beveiliging > loginscript mbv sessies v1.2


Reacties op het script loginscript mbv sessies v1.2

Offline  PDX
Gepost op: 07 september 2004 - 19:41
Lid



tof script maar 1 ding doe ik mss fout! alsk van pagina verwissel op men site en kga trg naar de login ben ik plots uitgelogt! hoe komt dit???:?:

Offline  Thomas
Gepost op: 08 september 2004 - 12:55
Moderator



Op elke pagina waar je sessies wilt gebruiken moet je in ieder geval die session.php includen.
Normaal verloopt een sessie op den duur, maar als je aangeeft dat je ingelogd wilt blijven (extra in v1.2), zou je ingelogd moeten blijven...

Controleer bovenstaande punten even, en lees het commentaar bij het script door, wellicht dat je daar nog iets aan hebt.

Als je er dan nog niet uitkomt kun je eventueel (stukken van) je source doorsturen (via e-mail of prive-bericht) en dan kijken we er samen wel even naar.

Offline  PDX
Gepost op: 08 september 2004 - 20:56
Lid



Ik heb niets aan je script veranderd! heb alles nog eens zorgvuldig naar de interface gekopierd! geeft nergens errors aan e.c. alleen blijf je niet ingelogt!

Offline  Thomas
Gepost op: 09 september 2004 - 12:55
Moderator



Staan sessie-gerelateerde server-variabelen wel goed ?

Op te vragen met phpinfo();

Zie ook http://www.php.net/phpinfo/ en
http://www.php.net/ini_set/ voor het instellen van server-variabelen.

Offline  Maarten
Gepost op: 11 september 2004 - 19:36
Erelid



Bij mij werkt het perfect, heb het zelf nog wa uitgebreid met dropdown box voor cookietime en een e-mail na registratie etc... prachtig script gewoon... merci 

Offline  Dennisvb
Gepost op: 19 september 2004 - 16:50
MySQL ver gevorderde



Dus als ik het goed begrijp kan je nu op je website Rangen aanmaken met bepaalde rechten?

Ik snap het gebruik van dit rechtensysteem nog niet helemaal


edit: Ik begin het nu een beetje te snappen, ook hoe je online rangen kunt aanmaken.... Ik ga nu beginnen aan mijn oefensite waarik dit zeker ga gebruiken!

Offline  MadMike
Gepost op: 08 oktober 2004 - 15:05
Lid



Mooi en opzich eenvoudig script!!:cool:
Zit alleen met het probleem dat bij het inloggen niet wordt gelet op hoofdletters... stel username = Mad_Mike en ik log in met mad_Mike dan is dat ook goed 

  1. <?
  2. $username = $_POST['username'];
  3. $password = md5($_POST['password']);
  4.  
  5. $query = mysql_query("SELECT * FROM phpbb_users WHERE username = '$username' AND user_password = '$password'") or die(mysql_error());
  6. ?>


Dit lijkt mij goed... Ik kan het eventueel wel verhelpen door de 2 waarden met een md5(); met elkaar te vergelijken, maar hij moet ook anders (normaal) kunnen dacht ik zo....

Offline  Thomas
Gepost op: 08 oktober 2004 - 16:42
Moderator



Lijkt me toch sterk als je bij het aanmaken van je database gebruik maakt van het volgende:

  1. name varchar(20) BINARY NOT NULL default '',
  2. pass varchar(32) BINARY NOT NULL default '',


Dit (BINARY) zou moeten garanderen dat alles wat je in queries vergelijkt case-sensitive wordt vergeleken.

Ik kan me trouwens ook geen query herinneren waarin tegelijkertijd een username en een password met een "AND" werd opgehaald.

Op het moment dat je in mijn script gaat hacken kan ik niet meer garanderen dat het werkt.

Ik dacht dat ik het al dan niet case-sensitive zijn van username- en password-controles wel had meegenomen...

Offline  MadMike
Gepost op: 09 oktober 2004 - 15:16
Lid



Ik heb dit systeem gekoppeld aan een database van een forum van mij (phpbb forum). Daarom heb ik een paar dingen moeten aanpassen. Maar ik controleer nog wel ff de structuur van de database, en kom er verder wel uit ;)
Bedankt voor je reactie!

Offline  Crazy2
Gepost op: 01 december 2004 - 14:43
Nieuw lid



Ik heb als basis van mijn login scripts ook dit mooie script!
maar heb het in de laatste versie wel wat uitgebreid.
Bij de login geeft die overal een fout melding dus weet je waarom het script niet werkt. bvb onbekende login, geen correct wachtwoord, account die niet geactiveerd is.

ook een verbeterde versie van de onthoud login, die niet enkel op ip werkt

Offline  TeuT
Gepost op: 19 mei 2005 - 00:27
Nieuw lid



Ik kan op alle "beveiligde pagina's" zonder mij in te loggen? Kan iemand mij zeggen hoe ik dit kan verhelpen.

mvg

Offline  remifreriks
Gepost op: 26 mei 2005 - 18:32
Nieuw lid



Wat is precies het nut van de header in het session script?? 

Ik include de session op al mijn pagina's om te checken of men nog wel ingelogd is. heb nou alleen een probleem dat ik geen header meer in die pagina's kan gebruiken. :?:

Groetjes Remi

Offline  Thomas
Gepost op: 27 mei 2005 - 01:18
Moderator



Als je ob_start() gebruikt kan dat wel.

Offline  remifreriks
Gepost op: 27 mei 2005 - 11:00
Nieuw lid



Dit werkt nu.

Nog 1 vraagje 

In mijn systeem moet ik het wachtwoord en username uit 2 tabellen zoeken.

Heb 1 tabel voor de klanten en hun gegevens,
Heb 1 tabel voor de medewerkers en hun gegevens.

Hij moet dus kijken van zit de opgegeven inlognaam in die tabel zonee kijk in de andere.

Is dit mogelijk:?: 

Offline  Thomas
Gepost op: 27 mei 2005 - 13:12
Moderator



Mja, dat kan prima, maar daar zul je zelf iets op moeten verzinnen. Je controleert bijvoorbeeld eerst de tabel klanten, levert dit geen resultaten op controleer je de tabel medewerker, levert dit weer geen resultaten op geef een foutmelding ofzo.

Misschien is het een idee om daar één tabel "login" o.i.d. van te maken met een kolom die aangeeft of het een klant of medewerker betreft ?

Offline  remifreriks
Gepost op: 27 mei 2005 - 22:34
Nieuw lid



Heb het opgelost 

Heb inderdaad gekeken of een query een resultaat op leverde zoniet moest die in de andere query kijken. 

Bedankt voor het helpen. Heb nu de loginscript voor mijn applicatie werkende. Vooral die user_levels bij deze loginscript kwamen me goed te pas. 

Offline  nathanael
Gepost op: 05 juni 2005 - 17:40
Gouden medaille

HTML gevorderde




ik heb een probleem... als ik naar de url ga, en heb voor het erlaten van de site op uitloggen gedrukt, en ik ga weer naar de site dan gaat hij niet naar de site. Dan blijft hij alleen maar de pagina verversen. Waar kan dit aan liggen?

Offline  Thomas
Gepost op: 05 juni 2005 - 22:57
Moderator



Waarschijnlijk gaat er dan iets fout in session.php - hij breekt de hele tijd de sessie weer af omdat er bepaalde gegevens niet kloppen en ververst de pagina dan. Dit blijft hij doen omdat die "foute situatie" blijkbaar niet verandert (telkens levert hetzelfde if-statement die voor het verversen van de pagina zorgt "true" op)... Zoiets denk ik - heb het zelf ook dikwijls gehad, maar die fout zou niet op mogen treden in dit script. Weet je zeker dat je niets veranderd hebt (het wel of niet hashen van wachtwoorden bijvoorbeeld, heb je die controles overal hetzelfde gehouden) ?

Offline  simontjeuh
Gepost op: 06 juni 2005 - 20:07
HTML interesse



hey fangorn, ik heb een probleem bij het inloggen, ik heb het wel wat aangepast. Maar toen dat niet lukte, heb ik eens jouw basisloginscript genomen, en zelfs dat werkte niet. Wat is er fout? Het werkt nochtans bij anderen, heeft mijn server een versie van php die $_SESSION varaibelen niet begrijpt?

Offline  Thomas
Gepost op: 06 juni 2005 - 21:41
Moderator



Omschrijving van het probleem ?
PHP-versie ?

Details plz...

Offline  simontjeuh
Gepost op: 08 juni 2005 - 14:36
HTML interesse



weet ik niet, ik zit bij downfire, kan nergens de phpversie vinden

de omschrijving: ik heb jouw basisscript volledig overgenomen om het te testen, maar nu blijkt dat zelf dat scriptje niet werkt, hoe komt dit?

SERVER:Welke php versie draait downfire ?
Downfire draait php 4.3.9.

Ik heb het gemaild en direct een mail teruggekregen, dit is dus de phpversie
zeg het als het ook nodig is de mysqlversie te weten

Offline  Thomas
Gepost op: 08 juni 2005 - 18:49
Moderator



kan nergens de PHP-versie vinden ?

zet de volgende code in een apart bestand (bijvoorbeeld phpinfo.php):

  1. <?php
  2. ?>


Dan krijg je een pagina te zien met alle PHP-gegevens.

Het script zoals deze op sitemasters staat zou moeten werken. Weet je zeker dat je alle tabellen hebt aangemaakt en alle gegevens juist hebt ingevoerd (gehashde wachtwoorden) ?

Je PHP-versie zou nieuw genoeg moeten zijn, dus het script zou gewoon moeten werken, ik kijk dit deze week wel eens na op een testserver.

Dit script-comments gedeelte is trouwens géén MSN, dus gelieve voortaan één reactie te geven, anders ben ik genoodzaakt strafpunten uit te delen...

Offline  simontjeuh
Gepost op: 08 juni 2005 - 18:58
HTML interesse



ik ga ff een testaccount aanmaken, dan kun je testen
ik heb de phpversie vermeld in het vorige bericht
ga hierheen
en vul het volgende in:

usernaam: test
wachtwoord: test

het werkt dus toch!
ik had gewoon een domme typfout gemaakt bij de query, had where uername = "$naam"
en dat moest natuurlijk
where username = "$naam"
worden, toch bedankt

Offline  Sjarelke
Gepost op: 09 juni 2005 - 02:32
Nieuw lid



Hoi iedereen!

Ik ben vrij noob op het gebied van sites maken, maar het leek me toch leuk om deze eens te proberen!

Ondertussen is het me gelukt om in de database een login te creeëren.
Ik kom dan op de "menu" pagina uit waarbij ik kan kiezen uit voorbeeld.php en uitloggen

Hoe kan ik deze 4 rechten instellen? (inloggen, info veranderen, nieuws toevoegen, members toevoegen)

Wat ik wil is eigenlijk een beveiligde pagina kunnen aanpassen en accounts aanmaken die de beveiligde pagina alleen kunnen bekijken.

Verder wil ik ook dat alleen gebruikers met een bepaald niveau mensen kunnen registreren. (aanmeld.php mag dus niet voor iedereen toegankelijk zijn)

Hoe kan ik dit maken? Iemand een handige tutorial voor me of een script ?

Alvast bedankt! 

Offline  bertenz
Gepost op: 20 augustus 2005 - 17:00
HTML beginner



Hallo allemaal,

Om een klantenlogin te maken voor een klein bedrijf heb ik een inlogsysteem nodig. Op deze website kwam ik dit script tegen en na het invoeren van de juiste gegevens en het aanmaken van een tabel werkte het helemaal perfect.
Ik zou alleen graag iedere gebruiker naar een aparte pagina willen laten gaan. Ik denk (dat hoop ik tenminste) dat ik al wel op de goede weg ben, maar het wil allemaal nog niet helemaal lukken. Als een gebruiker namelijk naar de pagina "user001.php" moet, moet ik in de tabel dan gewoon onder "pagina" "user001.php" neerzetten?
Verder nog een vraagje over het verwerken (ophalen) van de gegevens. Het vaststellen naar welke pagina iemand gestuurd moet worden, moet dat met de volgende code?
  1. $sql2 = mysql_query("SELECT pagina FROM `user` WHERE email = '".$email."'");
  2. $pagina = mysql_fetch_assoc($sql2);

(ik gebruik hier overigens "sql2" omdat ik al eerder "sql" heb gebruikt)

Als de pagina waar de gebruiker dan naartoe moet eenmaal bekend is, hoe stuur ik hem dan daar naartoe? Ik heb het zelf op deze manier geprobeerd, maar het werkt niet echt.
  1. header("Location: $pagina");


Kan iemand mij verder helpen?

Offline  Thomas
Gepost op: 21 augustus 2005 - 15:16
Moderator



Nu ja, je zou de namen van de pagina's waar gebruikers naartoe worden gestuurd gelijk kunnen laten zijn aan hun user-id (dus bijvoorbeeld 1.php, 2.php et cetera), dan hoef je geen extra gegevens in de gebruiker-tabel op te slaan - Als het soort gegevens dat getoond moeten worden altijd hetzelfde is (de inhoud (waarden) van gegevens hangt af van de gebruiker) dan zou je ook kunnen volstaan met een pagina van de (bijvoorbeeld) vorm gebruiker.php?id=12 - waarbij dus de gegevens van gebruiker 12 worden opgehaald. Je kunt dan dezelfde code / pagina gebruiken om gegevens van een andere gebruiker te tonen (gebruiker.php?id=10, gebruiker.php?id=88 et cetera). Als de pagina uitsluitend bedoeld is voor die persoon, bijvoorbeeld omdat deze persoonlijke gegevens bevatten, dan kun je via $_SESSION controleren welke gegevens getoond mogen worden.

mysql_fetch_assoc() doet wat de naam zegt: het haalt een query-resultaat op als een associatief array. $pagina bevat dus een array met één waarde (als de query resultaten oplevert natuurlijk), namelijk "pagina".
Om iemand naar de juiste pagina te sturen moet je dus niet $pagina gebruiken, maar $pagina['pagina'], dus als volgt:

  1. header("Location: ".$pagina['pagina']);

Offline  bertenz
Gepost op: 22 augustus 2005 - 00:23
HTML beginner



Bedankt voor je hulp. Het werkt nu gewoon goed. Ik heb alleen nog één klein vraagje. Als iemand helemaal niets invuld, vernieuwd de pagina zichzelf alleen maar, maar als ik dan een foutmelding weer wil geven, moet ik dat dan boven het html-gedeelte neerzetten of kan het ook na de html-tag? Ik heb het namelijk wel geprobeerd om het boven de html-tags te zetten, maar dan wordt de opmaak niet meegenomen. Als ik het tussen de HTML-tags zet, krijg ik steeds de tekst te zien die eigenlijk alleen zou moeten verschijnen als de naam / wachtwoord combinatie verkeerd is.

Misschien ook een oplossing:
Kan ik als het niet anders kan de bezoeker die een verkeerde combinatie invoerd ook naar een andere pagina sturen? bijv. op zo'n manier:
  1. if (mysql_num_rows($res) == 0)
  2. {
  3. header("Location: notloggedin.php");
  4. }

Ik zeg er overigens meteen bij dat er in deze code misschien best een klein foutje in kan zitten en dat ik ook niet weet of het wel op deze manier kan.
Alvast bedankt voor de hulp.

Offline  Thomas
Gepost op: 22 augustus 2005 - 19:38
Moderator



Ja hoor, als je pagina nog niet is "begonnen" zou je op elk moment iemand door kunnen verwijzen naar een (error)pagina.

Je zou de fouten ook in verschillende typen op kunnen delen (zodat je bijvoorbeeld een "boodschap op maat" krijgt zoals "gebruiker bestaat niet", "ongeldig wachtwoord" et cetera), zodat je meer informatie kunt geven over wat er precies fout is gegaan, maar hier moet je een beetje voorzichtig mee zijn, want dit kan waardevolle informatie voor kwaadwillenden zijn...

Offline  Bullitt
Gepost op: 31 augustus 2005 - 21:19
Nieuw lid



Nice script hoor... maar een register-pagina zou toch handig zijn... want zonder te registreren kan je niet inloggen e 

allé, dat zou toch niet mogen kunnen als je niet geregistreerd bent...


ik hoop dat je me hierbij zou kunnen helpen...

thx op voorhand...


Bullitt

Offline  bertenz
Gepost op: 09 september 2005 - 17:43
HTML beginner



Zo'n pagina staat er ook: aanmeld.php.

Bertenz

Offline  bertenz
Gepost op: 11 september 2005 - 21:27
HTML beginner



Ik heb dit script een tijdje geleden op mijn website geplaatst en het werkte (na enige problemen verholpen te hebben) perfect! De afgelopen 2 weken ben ik echter bezig om mijn website van een Framessite om te zetten in een website met Div's. Doordat ik nu Divs gebruik, werkt dit script ineens niet meer zo goed als eerst.
Het inloggen gaat nog wel goed, maar als ik dan naar een beveiligde pagina wil gaan (bij dit script was dat "voorbeeld.php") dan blijft hij niet ingelogd en krijg ik de melding dat ik niet ingelogd ben. Weet iemand waardoor ik niet meer ingelogd blijf?

Bertenz

P.s. Toch nog een voordeel aan een website met frames dus 

Offline  Thomas
Gepost op: 11 september 2005 - 23:14
Moderator



Je werkt dus nu met één pagina met includes? Gebruik je nog wel session_start() enzo? Het is een beetje moeilijk om aan te geven wat er mogelijk mis kan gaan als je verder geen informatie geeft over de opbouw van je pagina's...

Offline  bertenz
Gepost op: 12 september 2005 - 10:04
HTML beginner



Mijn pagina bestaat uit een "vaandel" "menu" en "inhoud" waarbij "inhoud" telkens veranderd (include).
Ik gebruik nog steeds gewoon session_start aan het begin van de inlogpagina. Zou dit anders aan het begin van de hele pagina moeten staan?
Ik zou niet weten wat ik hier aan zou kunnen doen.

Bertenz

Offline  Gotcha2006
Gepost op: 03 december 2005 - 23:42
Nieuw lid



bedankt voor deze inlog script ik heb geen woorden voor ik heb al eerder ander script geprobeerd maar ik kreeg allerei fout melding maar van jouw is perfect

Offline  Gotcha2006
Gepost op: 03 december 2005 - 23:49
Nieuw lid



kun je ook een voorbeeld met dit een webwinkel opzetten aub
ik zie gaarne je antwoordt tegemoet

Offline  ximie
Gepost op: 27 december 2005 - 16:56
Nieuw lid



Hallo, ik heb de bestanden op mijn server draain maar ik heb een probleem met de MySQL.. 
:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '<-- v1.2, extra functionaliteit voor ingelogd blijven
UNIQUE


KAN IEMAND MIJ HELPEN PLZ??



=> is opgelost.. in de MySQL moet je "<-- v1.2, extra functionaliteit voor ingelogd" verwijderen..:$

thx anyway

Offline  Rendo
Gepost op: 25 januari 2006 - 21:20
Nieuw lid



hoe kan ik dit eigenlijk testen, heb wel al een beetje webpaginas maar weet ni hoe ik dit nu moe gebruiken???

Offline  cyber78
Gepost op: 27 februari 2006 - 15:29
Nieuw lid



ik krijg de gegevens niet uit de databse gehaald.

Bijv. bij de welkomstboodschap na het inloggen, hij geeft gewoon niets weer! PS waarom staat het'=' teken bij <?= $_SESSION......

Idee?

Offline  Thomas
Gepost op: 27 februari 2006 - 21:57
Moderator



connect.php moet je zelf invullen, en de database-tabel moet je ook zelf aannmaken. Hoe je databases aanspreekt en tabellen aanmaakt en gegevens uitleest staat vast in een ander script of andere tutorial beschreven.

<?= ... ?> is equivalent met <?php echo ... ?>.

Offline  cyber78
Gepost op: 28 februari 2006 - 13:55
Nieuw lid



met dubbele "" doettie het wel..waarom weet ik niet, maar goed..thanks voor het script, het is verder erg makkelijk en duidelijk voor een starter like me!

dus echo ("".$_SESSION['xxx']."");

Offline  nathanael
Gepost op: 08 maart 2006 - 22:10
Gouden medaille

HTML gevorderde




misschien is het echt een no_Ob vraag hoor...maar hoe prop ik een userid in de sessie ($_SESSION['sid'])

Dat moet ergens gebeuren in de session.php, maar ik zou echt niet weten heb al een aantal dingen geprobeerd, maar hij wil maar niet een userid meesturen

Offline  Flipper01
Gepost op: 09 april 2006 - 19:57
Nieuw lid



Een prima script! Ik ben het nu aan het implementeren op mijn site, maar loop tegen twee probleempjes aan:
- Ik kan op een beveiligde pagina komen (waar session.php geinclude is) als ik niet ingelogd ben.

- Als ik mijn browser afsluit ben ik niet meer ingelogd, terwijl ik wel aan heb gegeven dat ik mijn login op wilde slaan in een cookie.

Kan iemand uitleggen wat ik aan moet passen??

Offline  Quipeace
Gepost op: 22 mei 2006 - 20:36
Nieuw lid



hey ik heb hetzelfde probleem als Flipper01

echt ik snap er nix van kan iemand ff uitleggen wat ik fout heb gedaan:((et zal namelijk wel aan mij liggen met me belaberde php kennis )

Groetjes

Offline  Thomas
Gepost op: 23 mei 2006 - 08:43
Moderator



session.php includen alleen is niet genoeg. Je moet ook een if-statement op beveiligde pagina's zetten die controleert of je de juiste rechten hebt...

Hoe slaan jullie je login-cookie op? Is het cookie-path en -domein correct? Worden de gegevens goed opgeslagen in en ook weer juist opgevraagd vanuit het cookie?
wordt het cookie uberhaupt opgeslagen?

Zonder codefragmenten kan ik eerlijk gezegd niet zoveel. Het script zoals het hier staat functioneert bij mijn weten naar behoren.

Offline  Arjen
Gepost op: 01 augustus 2006 - 22:56
Nieuw lid



FangorN even een vraagje, is het mogelijk met dit script om bepaalde personen naar eigen pagina's te leiden met verschillende info? Zo ja hoe is dat in te voeren?

Verder lijkt het een picobello script! 

Offline  gerda2006
Gepost op: 30 januari 2007 - 18:32
Nieuw lid



Ik heb vandaag dit scrip getest en zonder en wanneer ik mijn login niet bewaar werkt alles goed. Zodra ik mijn login wil onthouden(cookie) dan geeft hij een mysql fout. Onderstaande wordt dan weergegeven.

Access denied for user 'apache'@'localhost' (using password: NO)

Moet memory ook niet in de database vermeld worden?

Ik hoop dat iemand mij antwoord!

alvast bedankt voor de te nemen moeite.

Offline  Thomas
Gepost op: 31 januari 2007 - 10:57
Moderator



Hmm, die foutmelding "Access denied for user 'apache'@'localhost' (using password: NO)" krijg je meestal als je queries probeert uit te voeren, maar je niet verbonden bent met je database.

Weet je zeker dat je connect.php goed hebt ingevuld en include op de verschillende pagina's?

Offline  slsites
Gepost op: 20 februari 2007 - 19:24
Nieuw lid



Ik weet eigenlijk niets af van php en toch ben ik erin geslaagd dit script toe te passen op mijn site.

Het enige wat ik nog zou willen is dat bepaalde pagina's enkel toegankelijk zijn voor de administrator en niet voor de in gelogde leden

Prachtig script bedankt om dit vrij te geven.


Offline  vinnybinny
Gepost op: 06 maart 2007 - 13:35
Nieuw lid



Ik wil meerdere velden weergeven in de login,
dus bijv. Welkom (voornaam) (achternaam) De velde aanmaken lukt,
maar dan weergeven krijg ik niet voor elkaar!

Offline  Thomas
Gepost op: 07 maart 2007 - 14:03
Moderator



Dit kun je het beste doen door een profiel-tabel aan te leggen, en te verwijzen naar de login-tabel (met een foreign key of koppeltabel).

Als je dit soort gegevens wilt afdrukken haal je de profielgegevens bij het login-id op.


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.106s