login  Naam:   Wachtwoord: 
Registreer je!
 Forum

session's

Offline BasDV - 25/05/2005 07:36 (laatste wijziging 26/05/2005 16:56)
Avatar van BasDVMySQL interesse ik gebruik dit script: http://www.site...amp;id=473

het inloggen heeft het altijd goed gedaan maar nu gaat er iets met die session's verkeerd want hij logd niemand in terwijl de gegevens wel goed zijn.

Probeer maar in te loggen met deze gegevens:
(gebr.)naam = test wachtwoord = test
http://members.lycos.nl/tijgerbas3/PHPBBLZ/
*EDIT:
Maar bestaat er dan niet een oplossing dat je een code uitvoerd zoiets dat al je session's die opgeslagen zijn worden gewist?
wat gaat er fout?

14 antwoorden

Gesponsorde links
Offline vinTage - 25/05/2005 07:44
Avatar van vinTage Nieuw lid uhm, ik kan gewoon inloggen met die gebruikersnaam en wachtwoord hoor..
Offline Martijn1989 - 25/05/2005 09:38
Avatar van Martijn1989 PHP ver gevorderde U bent Ingelogd als :
test

Komt pas na de 2e keer bij mij 
Offline Thomas - 25/05/2005 13:23
Avatar van Thomas Moderator Kijk naar de reacties op het script en de score... Het lijkt mij dus een niet al te best script...
Je zou kunnen proberen de maker op de hoogte te stellen van de problemen die spelen. Het lijkt mij de taak van de maker om er voor te zorgen dat een script werkt (dit hoort eigenlijk al het geval te zijn voordat je een script plaatst/post, sommige mensen zijn echter niet bekend met de begrippen "testen" en "debuggen"), als anderen zich met debugging bezig moeten gaan houden hadden die net zo goed zelf iets kunnen maken, niet ?
Offline BasDV - 25/05/2005 13:58
Avatar van BasDV MySQL interesse Maar hoe zou het nou kunnen dat ik eerst gewoon kon inloggen en uitloggen met het door mij veranderde script en nu niet meer en ook niet met het orgineel?

En bij jullie gaat alles gewoon goed?
Ligt dit aan mijn computer zoiets dat de session's eerst allemaal weggehaald moet worden zoiets?
Offline Thomas - 25/05/2005 14:18 (laatste wijziging 25/05/2005 14:19)
Avatar van Thomas Moderator Dat het nu niet meer werkt heeft waarschijnlijk twee oorzaken:

1. session_register
session_register is verouderd. Je dient al vanaf PHP versie 4.lang_geleden rechtstreeks te werken met $_SESSION (een superglobal)

2. superglobals en register_globals
gegevens die afkomstig zijn uit een formulier moet je zoeken in $_POST, uit een URL in $_GET, uit een sessie in $_SESSION et cetera.
Als je dus een inputveld in je formulier hebt met de naam "gebruikersnaam", dan is deze in veel gevallen niet meer benaderbaar via $gebruikersnaam (dit is ook al heel lang zo, variabelen worden niet meer "globaal geregistreerd"), je moet dan gewoon $_POST['gebruikersnaam'] gebruiken.

Dus, zet dat alles eerst maar eens om in dat script, en dan werkt het waarschijnlijk al een stuk beter.
Offline rutgerp - 25/05/2005 15:51 (laatste wijziging 25/05/2005 15:52)
Avatar van rutgerp HTML interesse Maar aan sessies zitten grote nadelen, net als sitemasters kan je niet inloggen als je firewall ofzo cookies blockt.
EN als je het sessie id meegeeft is dat lelijk  en kan iemAND HET ID WIJZIGEN EN INBReKEN
ik zou ipv sessies databases gebruiken  doe ik zelf ook en het is handig!;-)
PS bij mij logt hij daarom niet in!!!
Offline Legolas - 25/05/2005 15:54
Avatar van Legolas Onbekend @rutgerp: hoe doe je dat dan met DB's????
k gebruik nogsteeds sessies, alleen zonder cookies, die sla ik in de db op:)
Offline Fenrir - 25/05/2005 15:56
Avatar van Fenrir PHP expert Sessions is meestal met cookies. Behalve als je dat uitzet.
Met een DB sla je het ip op als iemand inlogt.
Offline Legolas - 25/05/2005 16:00
Avatar van Legolas Onbekend
Citaat:
Sessions is meestal met cookies. Behalve als je dat uitzet.
Met een DB sla je het ip op als iemand inlogt.

Het IP???
dat denk ik dan toch niet hoor, want dan zou je niet met meerdere verschillende users op 1 pc kunnen zitten, dus volgens mij kan het anders. Bijv.:
tabel ingelogd:
id
username
pass (md5!)
timelogged

en dan als je dan komt kijkt ie of de time groter is dan time(), zo ja ---> ingelogd, zo nee ===> login page
Offline Fenrir - 25/05/2005 16:05 (laatste wijziging 25/05/2005 16:06)
Avatar van Fenrir PHP expert Hehe, nee. Hoe hou je verschillende gebruikers uit elkaar? En de tijd die je in de DB opslaat is nooit groter dan time().

Je slaat per gebruiker het ip op:

Tabel ingelogd:
ID
userID
IP
time

Dan de tabel gebruikers:
ID
name
pass
email
etc...

Dus je slaat het ip bij een bepaalde pc op als de gebruiker inlogt. Als hij uitlogt verwijder je het weer. Je kunt nog controleren of hij meer dan 1 uur niets gedaan heeft, en zo ja, moet hij opnieuw inloggen. Je kunt met een DB dus WEL onderscheid maken tussen verschillende gebruikers op 1 pc. Je moet alleen steeds op uitloggen klikken als je klaar bent, want anders kan iemand anders op hetzelfde IP jouw account gebruiken.
Offline Legolas - 25/05/2005 16:08
Avatar van Legolas Onbekend
Citaat:
En de tijd die je in de DB opslaat is nooit groter dan time().

Dat is niet waar, je kunt toch een verlooptijd instellen, bijv. time()+3600?
of ??
Offline BasDV - 26/05/2005 16:52
Avatar van BasDV MySQL interesse Maar bestaat er dan niet een oplossing dat je een code uitvoerd zoiets dat al je session's die opgeslagen zijn worden gewist?
Offline Legolas - 26/05/2005 20:37
Avatar van Legolas Onbekend Ja;
  1. "DELETE FROM sessies"

of
  1. "DELETE FROM sessies WHERE sessid=".$_SESSION['id']
Offline Fenrir - 26/05/2005 21:14
Avatar van Fenrir PHP expert
Citaat:
Dat is niet waar, je kunt toch een verlooptijd instellen, bijv. time()+3600?
of ??
Ja, maar dat zou onlogisch zijn: als je dan wilt weten wanneer iemand voor het laatst online was, oid, moet je dat gaan uitrekenen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.203s