/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Password-kontrol virker ikke
Fra : Erik Ginnerskov


Dato : 02-10-04 14:22

Hej NG
Jeg forsøger at lave en password-kontrol, der skal køre med en MySQL
database. Jeg har fået etableret basen og har også fået oprettelsen af
brugere til at virke.

Men den side, der burde være beskyttet af password-kontrollen, kan man
'vade' direkte ind på:

http://hjemmesideskolen.dk/scripts/phpmysql/login.php

Den php-kode, der burde spærre for ukorrekt login, er vist i en kodeboks på
siden.

Korrekt login kan foretages fra:

http://hjemmesideskolen.dk/scripts/phpmysql/default.php

.... hvor et brugernavn/password-sæt er angivet under formularen. Men hvis
man bare klikker på [Login], uden at skrive noget, kommer man også ind.

Det er underligt, for hvis man skriver noget lodret sludder i felterne eller
kun skriver enten brugernavn eller password, kan man ikke komme ind. Man får
i stedet den planlagte fejlmeddelelse.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



 
 
Kristian Thy (02-10-2004)
Kommentar
Fra : Kristian Thy


Dato : 02-10-04 14:51

Erik Ginnerskov uttered:
> Jeg forsøger at lave en password-kontrol, der skal køre med en MySQL
> database. Jeg har fået etableret basen og har også fået oprettelsen af
> brugere til at virke.
>
> Men den side, der burde være beskyttet af password-kontrollen, kan man
> 'vade' direkte ind på:
>
> http://hjemmesideskolen.dk/scripts/phpmysql/login.php
>
> Den php-kode, der burde spærre for ukorrekt login, er vist i en kodeboks på
> siden.

Hvad sker der i de her to linier:

    = mysql_fetch_array(Resource id #4);
    if( == ){

?

\\kristian
--
http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt
http://home.att.net/~jbcole/humor/Microsoft_patents.htm

Erik Ginnerskov (02-10-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-10-04 16:10

Kristian Thy wrote:

>> Den php-kode, der burde spærre for ukorrekt login, er vist i en
>> kodeboks på siden.
>
> Hvad sker der i de her to linier:
>
> = mysql_fetch_array(Resource id #4);
> if( == ){

Et godt spørgsmål. Men da koden i sin oprindelse ikke er min, kan jeg ikke
sige andet end at det ser lidt ufærdigt ud.

Men hvorfor kan man komme ind uden at skrive noget, hvorimod forkert
brugernavn/password fanges? Det er det, der undrer mig mest.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Kristian Thy (02-10-2004)
Kommentar
Fra : Kristian Thy


Dato : 02-10-04 16:52

Erik Ginnerskov uttered:
>> Hvad sker der i de her to linier:
>>
>> = mysql_fetch_array(Resource id #4);
>> if( == ){
>
> Et godt spørgsmål. Men da koden i sin oprindelse ikke er min, kan jeg ikke
> sige andet end at det ser lidt ufærdigt ud.

Der mangler i hvert fald noget logik der. PHP burde faktisk smide en
compilefejl på det der, så er du sikker på koden i boksen stemmer
overens med koden du rent faktisk bruger? Hvis ikke det er tilfældet, er
det svært at hjælpe dig

> Men hvorfor kan man komme ind uden at skrive noget, hvorimod forkert
> brugernavn/password fanges? Det er det, der undrer mig mest.

Bruger du sessions? Står der "session_start();" i toppen af alle
passwordbeskyttede sider?

\\kristian
--
http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt
http://home.att.net/~jbcole/humor/Microsoft_patents.htm

Erik Ginnerskov (02-10-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-10-04 22:46

Kristian Thy wrote:

> Der mangler i hvert fald noget logik der. PHP burde faktisk smide en
> compilefejl på det der, så er du sikker på koden i boksen stemmer
> overens med koden du rent faktisk bruger? Hvis ikke det er tilfældet,
> er det svært at hjælpe dig

Jeg får intet feedback fra scriptet. Jeg får kun vist den del af siden, jeg
ikke burde kunne se.uden login (+ topbar og menu, som står udenfor scriptet
og derfor sendes fra serveren under alle omstændigheder).

> Bruger du sessions? Står der "session_start();" i toppen af alle
> passwordbeskyttede sider?

Ikke i øjeblikket, men det kan der da komme til.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Michael Foged (02-10-2004)
Kommentar
Fra : Michael Foged


Dato : 02-10-04 17:35

On Sat, 02 Oct 2004 15:22:18 +0200, Erik Ginnerskov wrote:

> Hej NG
> Jeg forsøger at lave en password-kontrol, der skal køre med en MySQL
> database. Jeg har fået etableret basen og har også fået oprettelsen af
> brugere til at virke.
>
> Men den side, der burde være beskyttet af password-kontrollen, kan man
> 'vade' direkte ind på:
>
> http://hjemmesideskolen.dk/scripts/phpmysql/login.php
>
> Den php-kode, der burde spærre for ukorrekt login, er vist i en kodeboks på
> siden.
>
> Korrekt login kan foretages fra:
>
> http://hjemmesideskolen.dk/scripts/phpmysql/default.php
>
> ... hvor et brugernavn/password-sæt er angivet under formularen. Men hvis
> man bare klikker på [Login], uden at skrive noget, kommer man også ind.
>
> Det er underligt, for hvis man skriver noget lodret sludder i felterne eller
> kun skriver enten brugernavn eller password, kan man ikke komme ind. Man får
> i stedet den planlagte fejlmeddelelse.

Prøv at checke dit if statement, eller eventuelt skriv en del af koden
manuelt. Du har nu et script til at printe et script. Eventuelt omdøb
filen til *.phps (så kan vi se sourcen af det _aktuelle_ script, hvis
serven er konfigureret dertil)

if statement, du har en if ( == ){
echo " <p>Her vises det beskyttede materiale</p> ";
}

Den skal vises, betingelsen er opfyldt.


--
mvh
Michael Foged

Erik Ginnerskov (02-10-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-10-04 22:51

Michael Foged wrote:

> Prøv at checke dit if statement, eller eventuelt skriv en del af koden
> manuelt. Du har nu et script til at printe et script. Eventuelt omdøb
> filen til *.phps (så kan vi se sourcen af det _aktuelle_ script, hvis
> serven er konfigureret dertil)

Indholdet i kodeboksen *er* det fulde script (strippet for de oplysninger i
første to linjer, der giver adgang til databasen). Men nu er den server,
hvor databasen ligger, tilsyneladende gået i hi. Min webhost har vist lidt
tekniske vanskeligheder i aften.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Kristian Thy (03-10-2004)
Kommentar
Fra : Kristian Thy


Dato : 03-10-04 00:25

Erik Ginnerskov uttered:
> Indholdet i kodeboksen *er* det fulde script (strippet for de oplysninger i
> første to linjer, der giver adgang til databasen). Men nu er den server,
> hvor databasen ligger, tilsyneladende gået i hi. Min webhost har vist lidt
> tekniske vanskeligheder i aften.

Bugger that. Tag to aspirin og kom igen i morgen

\\kristian
--
http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt
http://home.att.net/~jbcole/humor/Microsoft_patents.htm

Michael Foged (03-10-2004)
Kommentar
Fra : Michael Foged


Dato : 03-10-04 08:44

On Sat, 02 Oct 2004 23:50:37 +0200, Erik Ginnerskov wrote:


> Indholdet i kodeboksen *er* det fulde script (strippet for de oplysninger i
> første to linjer, der giver adgang til databasen). Men nu er den server,
> hvor databasen ligger, tilsyneladende gået i hi. Min webhost har vist lidt
> tekniske vanskeligheder i aften.

Det forstår jeg ikke, se nærmere på efterfølgende copy/paste fra din
login.php


<SNIP>
mysql_query("select password from users where brugernavn = 'tt'")
<SNIP>
if( == ){
echo " <p>Her vises det beskyttede materiale</p> ";
}
else
{
echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
}
<SNIP>

Her er jeg kommet fra default.php, hvor jeg har indtastet tt som
brugernavn, og intet password.
Dette burde vise at du _ikke_ viser _hele_ scriptet på hjemmesideskolen,
som det er skrevet. (der bliver skrevet variable-værdier og ikke variabel
navne.)
Kig nærmere på det if statement jeg har copy/pasted, det er alt jeg ser
ved login if( == )

Jeg _tror_ det går galt fordi du bruger et php script, til at vise
scriptet med, så ekspanderer det variablerne.

--
mvh
Michael Foged

Michael Foged (03-10-2004)
Kommentar
Fra : Michael Foged


Dato : 03-10-04 08:49

On Sun, 03 Oct 2004 09:43:33 +0200, Michael Foged wrote:

> Jeg _tror_ det går galt fordi du bruger et php script, til at vise
> scriptet med, så ekspanderer det variablerne.

Dette forklarer også hvorfor der skrives Resource id #4, istedet for et
variabel navn.

P.S. du har hul igennem til MySql igen;)
--
mvh
Michael Foged

Erik Ginnerskov (03-10-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 03-10-04 14:13

Michael Foged wrote:
> On Sun, 03 Oct 2004 09:43:33 +0200, Michael Foged wrote:
>
>> Jeg _tror_ det går galt fordi du bruger et php script, til at vise
>> scriptet med, så ekspanderer det variablerne.

Undskyld mig, men det gik galt med kodegengivelsen, fordi jeg havde glemt at
sætte escapekoder foran $ i kodeboksen. Så er det klart, at php-scriptet
tror, at det er php-kode der også.

Men jeg kan stadig bare 'vade ind' på de sider, der skulle være
password-beskyttede, uden at skrive noget i login-formularen.

Der skulle nu være fuld overensstemmelse mellem det faktiske php-script og
den kode, der er vist.

OBS.: Jeg har flyttet visningen af scriptet til
http://hjemmesideskolen.dk/scripts/phpmysql/tjek.php

> P.S. du har hul igennem til MySql igen;)

Ja, nu kører mysql-serveren igen. Det var i øvrigt ikke kun den server, der
var tiltet i går. Også webmail-serveren var i knæ - det afskar mig fra at
tjekke for spam, før jeg hentede mails hjem. ;(

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Michael Foged (03-10-2004)
Kommentar
Fra : Michael Foged


Dato : 03-10-04 16:50

On Sun, 03 Oct 2004 15:13:11 +0200, Erik Ginnerskov wrote:

> Men jeg kan stadig bare 'vade ind' på de sider, der skulle være
> password-beskyttede, uden at skrive noget i login-formularen.

Så vidt jeg husker kommer man uberettiget ind hvis man:

a) Indtaster forkert brugernavn og intet password.
b) Intet brugernavn og intet password.

(ja nu kan jeg jo ikke afprøve længere?)

altså nøglen ligger i at der ikke er indtastet et password _OG_ der ikke
er indtastet et gyldigt brugernavn.

Du kalder så databasen og spørger efter et password på en ikke
eksisterende bruger. MySql returnerer ikke nogen rækker, men det er du
ligeglad med, du anvender gladeligt det ikke eksisterende password fra en
ikke eksisterende række i databasen. Dette password er tomt, og det
bliver sammenlignet med et tomt felt fra inputtet, ergo du har adgang.

Så løsningen må være at spørge om MySql returnerede en række eller
ej.

$result = mysql_query("select password from users where brugernavn =
'$_POST[brugernavn]'") or die (mysql_error());


if($antal_raekker=mysql_num_rows($result)>0){
   $row = mysql_fetch_array($result);
   if($row[password] == $HTTP_POST_VARS[password]){
      echo " Her indsættes det paswordbeskyttede sideindhold ";

   }
   else{
      echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
   }
}
else{
   echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
}

Der burde være en chance for at ovenstående kunne virke.

--
mvh
Michael Foged

Erik Ginnerskov (03-10-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 03-10-04 17:56

Michael Foged wrote:

> a) Indtaster forkert brugernavn og intet password.
> b) Intet brugernavn og intet password.

Korrekt iagttaget

> (ja nu kan jeg jo ikke afprøve længere?)

Det problem har min webhost fået rettet.

> altså nøglen ligger i at der ikke er indtastet et password _OG_ der
> ikke er indtastet et gyldigt brugernavn.
>
> Så løsningen må være at spørge om MySql returnerede en række eller
> ej.
>
> $result = mysql_query("select password from users where brugernavn =
> '$_POST[brugernavn]'") or die (mysql_error());
>
>
> if($antal_raekker=mysql_num_rows($result)>0){
> $row = mysql_fetch_array($result);
> if($row[password] == $HTTP_POST_VARS[password]){
> echo " Her indsættes det paswordbeskyttede sideindhold ";
>
> }
> else{
> echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
> }
> }
> else{
> echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
> }

Hvorfor dobler de den del af scriptet, der skal aktiveres ved ukorrekt
login?

Jeg læser ovenstående sådan, at der kun mangler en kodelinje:

if($antal_raekker=mysql_num_rows($result)>0){

Den har jeg nu indført i login.php på den viste plads, se resultatet i
kodeboksen på tjek.php. Men nu kan jeg slet ikke komme ind på login.php -
hverken med eller uden brugernavn og password. Jeg får blot en fejlmelding:

" Parse error: parse error, unexpected $end in
d:\home\servernavn\www\scripts\phpmysql\login.php on line 58 "

http://hjemmesideskolen.dk/scripts/phpmysql/default.php => login
http://hjemmesideskolen.dk/scripts/phpmysql/tjek.php

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Michael Foged (03-10-2004)
Kommentar
Fra : Michael Foged


Dato : 03-10-04 18:47

On Sun, 03 Oct 2004 18:56:18 +0200, Erik Ginnerskov wrote:

> Hvorfor dobler de

Du behøver ikke sige De til mig:)

> den del af scriptet, der skal aktiveres ved ukorrekt login?

Fordi jeg har indføjet en ekstra if(){}, til at tjekke om der var et
resultat. Tænk på {} som en <div></div>.

sådan ser en if() ud:
if(betingelse1){
   if(betingelse2){
      echo "nu er betingelse1 og betingelse2 opfyldt";
   }
   else{
      echo "nu er betingelse1 men ikke betingelse2 opfyldt";
   }
}
else{
   echo "nu er betingelse1 ikke opfyldt";
}

(Du bør ikke fortælle en bruger om det er password eller brugernavn
der fejler, som du vil kunne med ovenstående eksempel.)

> Jeg læser ovenstående sådan, at der kun mangler en kodelinje:
>
> if($antal_raekker=mysql_num_rows($result)>0){

> " Parse error: parse error, unexpected $end in
> d:\home\servernavn\www\scripts\phpmysql\login.php on line 58 "

Du skal sørge for at der er lige mange { og } (det har du ikke, d.v.s.
der er en blok (<div>) der ikke bliver lukket).

Du tilføjer en ny blok, den skal du lukke igen. (Jeg lavede det over 2
linier for at have det mere overskueligt, men det ændrer ikke ved at {
åbner en blok, der skal lukkes af })

--
mvh
Michael Foged

Michael Foged (03-10-2004)
Kommentar
Fra : Michael Foged


Dato : 03-10-04 18:50

On Sun, 03 Oct 2004 19:47:02 +0200, Michael Foged wrote:

sådan _kan_ en if() se ud:

--
mvh
Michael Foged


Erik Ginnerskov (03-10-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 03-10-04 20:24

Michael Foged wrote:
>> Hvorfor dobler de
>
> Du behøver ikke sige De til mig:)

Det var en slåfejl, jeg skal prøve at undgå en gentagelse. ;)

>> den del af scriptet, der skal aktiveres ved ukorrekt login?
>
> Fordi jeg har indføjet en ekstra if(){}, til at tjekke om der var et
> resultat. Tænk på {} som en <div></div>.

OK, det var altså antallet af } i forhold til { der ikke passede. Jeg har
indsat den manglende } - se tjek.php, men åbenbart det forkerte sted.

Nu kan jeg ikke logge ind uden korrekt brugernavn og password. Men jeg får
ikke altid den forventede fejlmelding:

Korrekt brugernavn og noget sludder i password => fejlmelding.
Korrekt brugernavn og ingen password => fejlmelding.
Ingen brugernavn og korrekt password => blank side

Noget sludder i brugernavn og password => blank side
Ingen brugernavn og password => blank side

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Michael Foged (03-10-2004)
Kommentar
Fra : Michael Foged


Dato : 03-10-04 21:02

On Sun, 03 Oct 2004 21:23:53 +0200, Erik Ginnerskov wrote:
>
> OK, det var altså antallet af } i forhold til { der ikke passede. Jeg har
> indsat den manglende } - se tjek.php, men åbenbart det forkerte sted.

Den sidder sådan set godt nok, der mangler bare en else{} til den yderste
if($antal_raekker>0){}, dvs hvis brugernavnet ikke eksisterer, kommer der
ingen fejlmeddelelse (som det er nu). Du kan altså ikke slippe for den
ekstra else{}, medmindre scriptet skal omskrives yderligere.


if($antal_raekker=mysql_num_rows($result)>0){
   $row = mysql_fetch_array($result);
   if($row[password] == $HTTP_POST_VARS[password]){
      echo " Her indsættes det paswordbeskyttede sideindhold ";
   }
   else{
      echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
   }
}
------Det efterfølgende mangler
else{
   echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
}

--
mvh
Michael Foged

Erik Ginnerskov (03-10-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 03-10-04 21:33

Michael Foged wrote:

> Den sidder sådan set godt nok, der mangler bare en else{} til den
> yderste if($antal_raekker>0){}, dvs hvis brugernavnet ikke
> eksisterer, kommer der ingen fejlmeddelelse (som det er nu). Du kan
> altså ikke slippe for den ekstra else{}, medmindre scriptet skal
> omskrives yderligere.
>
>
> if($antal_raekker=mysql_num_rows($result)>0){
> $row = mysql_fetch_array($result);
> if($row[password] == $HTTP_POST_VARS[password]){
> echo " Her indsættes det paswordbeskyttede sideindhold ";
> }
> else{
> echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
> }
> }
> ------Det efterfølgende mangler
> else{
> echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
> }

Så fik jeg det vist til at virke. Det er endnu kun indført på login.php, men
prøv at se den viste kode på tjek.php og prøv selv forskellige kombinationer
af forkert login fra default.php.

Men jeg kunne da godt lide, hvis et logout også resulterede i, at man ikke
kan 'bakke' ind til det beskyttede. Sådan virker det fint på siden med
enkeltbruger-login:

http://hjemmesideskolen.dk/scripts/phppass/

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Michael Foged (04-10-2004)
Kommentar
Fra : Michael Foged


Dato : 04-10-04 06:52

On Sun, 03 Oct 2004 22:32:30 +0200, Erik Ginnerskov wrote:

> Så fik jeg det vist til at virke. Det er endnu kun indført på login.php, men
> prøv at se den viste kode på tjek.php og prøv selv forskellige kombinationer
> af forkert login fra default.php.

Ved de forsøg jeg lavede, virkede det tilsyneladende ok.

> Men jeg kunne da godt lide, hvis et logout også resulterede i, at man ikke
> kan 'bakke' ind til det beskyttede.

Jeg kunne ikke "bakke" ind til det beskyttede, men blev hver gang henvist
til at logge ind igen. Jeg er ikke sikker men jeg mener at have læst at
det ikke er muligt at lave en _helt_ sikker logout funktion, når
det er session baseret login.

Men i user.php har du:

if($password == "$MD5_password" && $brugerdata == "$brugernavn"){
session_start();
$_SESSION['innlogget'] = 1;
<SNIP>
}

du kunne forsøge om dette virker:
if($_SESSION['innlogget']==1){
//er logget ind
}
else{
//er ikke logget ind
}
i tjek.php

(sessionvariablen innlogget skal have en bestemt værdi for at login er
iorden.)

(men jeg kan ikke garantere at det giver den ønskede effekt)

Alternativet kunne være at lave et cookie-baseret login, hvor der bliver
sat en cookie, når brugeren logger ind,og sletter den igen, når brugeren
logger ud. På hver beskyttet side kontrollerer man så at den cookie
er sat.

PS er det bare mig, eller har du droppet database kontrollen?
http://hjemmesideskolen.dk/scripts/phppass/user.php

--
mvh
Michael Foged

Erik Ginnerskov (04-10-2004)
Kommentar
Fra : Erik Ginnerskov


Dato : 04-10-04 17:04

Michael Foged wrote:

> Ved de forsøg jeg lavede, virkede det tilsyneladende ok.

Det har været et sejt træk, men jeg er glad for at være nået så langt. Tak
for hjælpen. Når jeg er færdig med det kursus, jeg lige nu er tvunget ud i,
må jeg se at få lært noget php.

> Jeg kunne ikke "bakke" ind til det beskyttede, men blev hver gang
> henvist til at logge ind igen. Jeg er ikke sikker men jeg mener at
> have læst at det ikke er muligt at lave en _helt_ sikker logout
> funktion, når det er session baseret login.

> du kunne forsøge om dette virker:
> if($_SESSION['innlogget']==1){
> //er logget ind
> }
> else{
> //er ikke logget ind
> }
> i tjek.php

Det må jeg se nærmere på i weekenden. Lige nu har jeg i hvert fald ikke tid.

> Alternativet kunne være at lave et cookie-baseret login, hvor der
> bliver sat en cookie, når brugeren logger ind,og sletter den igen,
> når brugeren logger ud. På hver beskyttet side kontrollerer man så at
> den cookie er sat.

Det kan jeg (heller) ikke finde ud af.

> PS er det bare mig, eller har du droppet database kontrollen?
> http://hjemmesideskolen.dk/scripts/phppass/user.php

Den password-funktion kører uden database. Det er derfor, den kun kan køre
med et fast login-datasæt. Og igen derfor, jeg ønskede den igangværende sag
løst.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk



Michael Foged (04-10-2004)
Kommentar
Fra : Michael Foged


Dato : 04-10-04 17:51

On Mon, 04 Oct 2004 18:04:02 +0200, Erik Ginnerskov wrote:

> Det har været et sejt træk, men jeg er glad for at være nået så langt. Tak
> for hjælpen.

Det var såmænd så lidt.

> Når jeg er færdig med det kursus, jeg lige nu er tvunget ud i,
> må jeg se at få lært noget php.

Det er også _ganske_ anvendeligt.

>> Jeg kunne ikke "bakke" ind til det beskyttede, men blev hver gang
>> henvist til at logge ind igen. Jeg er ikke sikker men jeg mener at
>> have læst at det ikke er muligt at lave en _helt_ sikker logout
>> funktion, når det er session baseret login.
>
>> du kunne forsøge om dette virker:
>> if($_SESSION['innlogget']==1){
>> //er logget ind
>> }
>> else{
>> //er ikke logget ind
>> }
>> i tjek.php
>
> Det må jeg se nærmere på i weekenden. Lige nu har jeg i hvert fald ikke tid.

Det kunne også være det kunne løses ved at lave en header("Location:
Somewhere"), lige efter din session_destroy();
Men jeg er ikke sikker.

>> Alternativet kunne være at lave et cookie-baseret login, hvor der
>> bliver sat en cookie, når brugeren logger ind,og sletter den igen,
>> når brugeren logger ud. På hver beskyttet side kontrollerer man så
>> at den cookie er sat.
>
> Det kan jeg (heller) ikke finde ud af.

set_cookie() og read_cookie() er 2 hjælpsomme funktioner, der er
beskrevet nærmere på http://php.net
(jeg kan sagtens have skrevet funktionsnavnene forkert!)

>> PS er det bare mig, eller har du droppet database kontrollen?
>> http://hjemmesideskolen.dk/scripts/phppass/user.php
>
> Den password-funktion kører uden database. Det er derfor, den kun kan
> køre med et fast login-datasæt. Og igen derfor, jeg ønskede den
> igangværende sag løst.

Jeg sov, både da jeg læste dit indlæg og da jeg ikke så at det var et
andet link, beklager.

--
mvh
Michael Foged

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste