|
| Alvorlig fejlfunktion i login-script Fra : Erik Ginnerskov |
Dato : 06-10-04 21:34 |
| | |
Dan Molberg (06-10-2004)
| Kommentar Fra : Dan Molberg |
Dato : 06-10-04 21:48 |
|
Erik Ginnerskov wrote:
> Hej NG
> Jeg fik i sidste uge strikket et login-script sammen og det så ud til
> at virke efter hensigten. Men i dag skulle jeg lige teste og opdagede
> så, at man efter login ikke kan skifte mellem forskellige sider med
> samme passwordscript.
>
> Det anvendte script er vist på en pt. ubeskyttet side:
>
> http://hjemmesideskolen.dk/scripts/phpmysql/tjek.php
Lav hele din kontrol i en sætning:
<?
session_start();
mysql_connect("server", "brugernavn", "password");
mysql_select_db("databasen");
$result = mysql_query("SELECT NULL FROM users WHERE brugernavn =
'".$_POST['brugernavn']."' AND password = '".$_POST['password']."'")
or die (mysql_error());
if($antal_raekker=mysql_num_rows($result)>0){
echo " Her indsættes det paswordbeskyttede sideindhold ";
Plus jeg ville jeg ikke bruge variablerne direkte.
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
Erik Ginnerskov (07-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 07-10-04 20:48 |
|
Dan Molberg wrote:
> Lav hele din kontrol i en sætning:
> <?
> session_start();
> mysql_connect("server", "brugernavn", "password");
> mysql_select_db("databasen");
> $result = mysql_query("SELECT NULL FROM users WHERE brugernavn =
> '".$_POST['brugernavn']."' AND password = '".$_POST['password']."'")
> or die (mysql_error());
> if($antal_raekker=mysql_num_rows($result)>0){
> echo " Her indsættes det paswordbeskyttede sideindhold ";
Er nu afprøvet. Det fungerer slet ikke. Jeg får kun en pars error.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Dan Molberg (08-10-2004)
| Kommentar Fra : Dan Molberg |
Dato : 08-10-04 09:35 |
|
Erik Ginnerskov wrote:
> Dan Molberg wrote:
>
>> Lav hele din kontrol i en sætning:
>> <?
>> session_start();
>> mysql_connect("server", "brugernavn", "password");
>> mysql_select_db("databasen");
>> $result = mysql_query("SELECT NULL FROM users WHERE brugernavn =
>> '".$_POST['brugernavn']."' AND password = '".$_POST['password']."'")
>> or die (mysql_error());
>> if($antal_raekker=mysql_num_rows($result)>0){
>> echo " Her indsættes det paswordbeskyttede sideindhold ";
>
> Er nu afprøvet. Det fungerer slet ikke. Jeg får kun en pars error.
Den var nu heller ikke testet, det var nu mere idéen i den den skulle vise.
Hvis du vil have hjælp til den så må du jo skrive hvilken fejl og hvor.....
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
Erik Ginnerskov (10-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-10-04 14:08 |
|
Dan Molberg wrote:
>> Er nu afprøvet. Det fungerer slet ikke. Jeg får kun en pars error.
> Den var nu heller ikke testet, det var nu mere idéen i den den skulle
> vise. Hvis du vil have hjælp til den så må du jo skrive hvilken fejl
> og hvor.....
Denne fejlmelding får jeg:
Parse error: parse error, unexpected '}' in
d:\home\hjemmesideskoldk\www\scripts\phpmysql\login.php on line 49
____
.... og her fejler den:
}
else
{
echo "<p>Fejl i password</p>";
}
} // her fejler scriptet
else
{
echo " <p>Fejl i brugernavn</p>";
}
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Dan Molberg (10-10-2004)
| Kommentar Fra : Dan Molberg |
Dato : 10-10-04 14:34 |
|
Erik Ginnerskov wrote:
> Dan Molberg wrote:
>>> Er nu afprøvet. Det fungerer slet ikke. Jeg får kun en pars error.
>> Den var nu heller ikke testet, det var nu mere idéen i den den skulle
>> vise. Hvis du vil have hjælp til den så må du jo skrive hvilken fejl
>> og hvor.....
> Denne fejlmelding får jeg:
Det er fordi du skal fjerne den sidste else som efter at dens if er fjernet:
session_start();
mysql_connect("server", "brugernavn", "password");
mysql_select_db("databasen");
$result = mysql_query("SELECT NULL FROM users WHERE brugernavn =
'".$_POST['brugernavn']."' AND password = '".$_POST['password']."'") or die
(mysql_error());
if ($antal_raekker=mysql_num_rows($result)>0){
echo " Her indsættes det paswordbeskyttede sideindhold ";
else {
echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
}
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
Erik Ginnerskov (10-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-10-04 15:30 |
|
Dan Molberg wrote:
> Det er fordi du skal fjerne den sidste else som efter at dens if er
> fjernet:
>
> session_start();
> mysql_connect("server", "brugernavn", "password");
> mysql_select_db("databasen");
> $result = mysql_query("SELECT NULL FROM users WHERE brugernavn =
> '".$_POST['brugernavn']."' AND password = '".$_POST['password']."'")
> or die (mysql_error());
> if ($antal_raekker=mysql_num_rows($result)>0){
> echo " Her indsættes det paswordbeskyttede sideindhold ";
> else {
> echo " <p>Fejlmeddelelse ved ukorrekt login</p>";
> }
Så kan jeg logge ind. Men ved forsøg på at hente en ny side med samme
login-tjek, får jeg kun denne besked:
No Database Selected
Indholds-div, body og html bliver ikke lukket.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Erik Ginnerskov (10-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-10-04 16:11 |
|
Erik Ginnerskov wrote:
> Så kan jeg logge ind. Men ved forsøg på at hente en ny side med samme
> login-tjek, får jeg kun denne besked:
>
> No Database Selected
Ups, det var en copy/paste-fejl. Nu er scriptet ens på begge sider - lavet
på din måde - og resultatet er det samme som med Michaels script: Sideskift
virker ikke, login bliver væk undervejs.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Michael Foged (10-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 10-10-04 16:18 |
|
On Sun, 10 Oct 2004 17:11:26 +0200, Erik Ginnerskov wrote:
> Erik Ginnerskov wrote:
> og resultatet er det samme som med Michaels script: Sideskift
> virker ikke, login bliver væk undervejs.
Desværre "forsvinder" $_POST variablerne efter du er logget ind, dvs i
det næste script er der ingen $_POST[brugernavn]. Derfor er du nødt
til at bruge sessions/cookies for at huske hvad der sker fra script til
script, medmindre du lave noget med forms og hidden fields, og kun går
videre vha submit.
--
mvh
Michael Foged
| |
Erik Ginnerskov (10-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-10-04 16:43 |
|
Michael Foged wrote:
>> og resultatet er det samme som med Michaels script: Sideskift
>> virker ikke, login bliver væk undervejs.
>
> Desværre "forsvinder" $_POST variablerne efter du er logget ind, dvs i
> det næste script er der ingen $_POST[brugernavn]. Derfor er du nødt
> til at bruge sessions/cookies for at huske hvad der sker fra script
> til script, medmindre du lave noget med forms og hidden fields, og
> kun går videre vha submit.
Jamen, jeg bruger netop session_start()
Jeg har opdateret http://hjemmesideskolen.dk/scripts/phpmysql/tjek.php så
den viser det aktuelle script.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Michael Foged (10-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 10-10-04 17:06 |
|
On Sun, 10 Oct 2004 17:42:52 +0200, Erik Ginnerskov wrote:
> Michael Foged wrote:
>
>>> og resultatet er det samme som med Michaels script: Sideskift
>>> virker ikke, login bliver væk undervejs.
>>
>> Desværre "forsvinder" $_POST variablerne efter du er logget ind, dvs i
>> det næste script er der ingen $_POST[brugernavn]. Derfor er du nødt
>> til at bruge sessions/cookies for at huske hvad der sker fra script
>> til script, medmindre du lave noget med forms og hidden fields, og
>> kun går videre vha submit.
>
> Jamen, jeg bruger netop session_start()
Det er ikke nok at starte en session. Du har ingen session variabler. Du
anvender stadig $_POST variabler, men det har ikke noget med sessions at
gøre.
<snip>
if ($antal_raekker=mysql_num_rows($result)>0){
$_SESSION['logget_ind']=1;
echo " Her indsættes det paswordbeskyttede sideindhold ";
}
else{
unset($_SESSION['logget_ind']
}
og så på de beskyttede sider:
<?php
session_start();
if(isset($_SESSION['logget_ind'])){
echo "davs";
}
else{
echo "ka du komme ud";
}
?>
--
mvh
Michael Foged
| |
Erik Ginnerskov (10-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-10-04 20:42 |
|
Michael Foged wrote:
>> Jamen, jeg bruger netop session_start()
>
> Det er ikke nok at starte en session. Du har ingen session variabler.
> Du anvender stadig $_POST variabler, men det har ikke noget med
> sessions at gøre.
> <snip>
> if ($antal_raekker=mysql_num_rows($result)>0){
> $_SESSION['logget_ind']=1;
> echo " Her indsættes det paswordbeskyttede sideindhold ";
> }
> else{
> unset($_SESSION['logget_ind']
> }
Det skal åbenbart ikke være på de beskyttede sider, men hvor så?
____
> og så på de beskyttede sider:
>
> <?php
> session_start();
> if(isset($_SESSION['logget_ind'])){
> echo "davs";
> }
> else{
> echo "ka du komme ud";
> }
Skal de beskyttede siders scripts beskæres så meget?
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Michael Foged (11-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 11-10-04 07:37 |
|
On Sun, 10 Oct 2004 21:41:30 +0200, Erik Ginnerskov wrote:
> Michael Foged wrote:
<snip>
> Det skal åbenbart ikke være på de beskyttede sider, men hvor så?
Der hvor du kontrollerer login (login.php)
>> og så på de beskyttede sider:
>>
>> <?php
>> session_start();
>> if(isset($_SESSION['logget_ind'])){
>> echo "davs";
>> }
>> else{
>> echo "ka du komme ud";
>> }
>
> Skal de beskyttede siders scripts beskæres så meget?
Ja. Du sætter kun den session variabel, hvis der er logget lovligt ind,
så det skulle være nok at kontrollere at den er sat.
Jeg laver i løbet af ugen mit eget script om til at bruge sessions
fremfor cookies, så kan jeg ligge en kopi af kildekoden op.
--
mvh
Michael Foged
| |
Erik Ginnerskov (11-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 11-10-04 11:26 |
|
Michael Foged wrote:
>> Det skal åbenbart ikke være på de beskyttede sider, men hvor så?
>
> Der hvor du kontrollerer login (login.php)
Jeg skal med andre ord ændre login.php, så den udelukkende kontrollerer
brugernavn og password samt viderestiller til de beskyttede sider? I
øjeblikket er login.php en af de beskyttede sider.
Jeg prøver at kigge på det.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Michael Foged (11-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 11-10-04 12:38 |
|
On Mon, 11 Oct 2004 12:26:01 +0200, Erik Ginnerskov wrote:
> Michael Foged wrote:
>
>>> Det skal åbenbart ikke være på de beskyttede sider, men hvor så?
>>
>> Der hvor du kontrollerer login (login.php)
>
> Jeg skal med andre ord ændre login.php, så den udelukkende kontrollerer
> brugernavn og password samt viderestiller til de beskyttede sider? I
> øjeblikket er login.php en af de beskyttede sider.
Som det er strikket sammen her er det nok en nødvendighed at have en
separat login.php, der kun checker login. Men det kan også skrives om;).
--
mvh
Michael Foged
| |
Erik Ginnerskov (11-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 11-10-04 11:52 |
|
Michael Foged wrote:
>> Det skal åbenbart ikke være på de beskyttede sider, men hvor så?
>
> Der hvor du kontrollerer login (login.php)
>
>
>>> og så på de beskyttede sider:
>>>
>>> <?php
>>> session_start();
>>> if(isset($_SESSION['logget_ind'])){
>>> echo "davs";
>>> }
>>> else{
>>> echo "ka du komme ud";
>>> }
Nu tror jeg pokkerme, jeg fik det til at virke. Jeg arbejder lidt på det og
lægger løsningen ud i detaljeret beskrivelse.
Men kort gjorde jeg det, at jeg kopierede login-php til login_forside.php.
På alle de beskyttede sider indsatte jeg det session-tjek, du lavede. På
login.php lavede jeg brugernavn/password-tjekket og en viderestilling til
login_forside.php.
Et lille hurtigt tjek viser tilsyneladende at:
1. Man kan logge ind med korrekte data
2. Man kan ikke logge ind med falske data
3. Man kan ikke komme ind uden om dataindskrivningen
4. Man kan skifte side efter login
5. Man kan logge ud
6. Man kan ikke 'bakke' ind igen uden korrekt login
Hvis alt dette holder en grundig kontrol, skulle det være færdigt. :D
Tjek via http://hjemmesideskolen.dk/scripts/phpmysql/default.php
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Dan Molberg (11-10-2004)
| Kommentar Fra : Dan Molberg |
Dato : 11-10-04 09:23 |
|
Erik Ginnerskov wrote:
> Erik Ginnerskov wrote:
>
>> Så kan jeg logge ind. Men ved forsøg på at hente en ny side med samme
>> login-tjek, får jeg kun denne besked:
>>
>> No Database Selected
>
> Ups, det var en copy/paste-fejl. Nu er scriptet ens på begge sider -
> lavet på din måde - og resultatet er det samme som med Michaels
> script: Sideskift virker ikke, login bliver væk undervejs.
Nu var det bare for at gøre selve dit login sikre, at din $_POST forsvinder
er jo naturligt.
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
Michael Foged (07-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 07-10-04 12:09 |
|
On Wed, 06 Oct 2004 22:33:54 +0200, Erik Ginnerskov wrote:
> Hej NG
> Jeg fik i sidste uge strikket et login-script sammen og det så ud til at
> virke efter hensigten. Men i dag skulle jeg lige teste og opdagede så, at
> man efter login ikke kan skifte mellem forskellige sider med samme
> passwordscript.
Mon ikke det er fordi dine $_POST variabler "forsvinder" efter du er
logget ind? (de bliver ikke automagisk overført fra script til script).
Løsningen kunne være sessions, hvor du ved korrekt login sætter en
$_SESSION variabel og så checker på om den er sat på de sider der skal
være beskyttet.
--
mvh
Michael Foged
| |
Erik Ginnerskov (07-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 07-10-04 15:31 |
|
Michael Foged wrote:
>> opdagede så, at man efter login ikke kan skifte mellem forskellige
>> sider med samme passwordscript.
>
> Mon ikke det er fordi dine $_POST variabler "forsvinder" efter du er
> logget ind? (de bliver ikke automagisk overført fra script til
> script).
Det lyder sandsynligt. ;)
> Løsningen kunne være sessions, hvor du ved korrekt login sætter en
> $_SESSION variabel og så checker på om den er sat på de sider der skal
> være beskyttet.
Sikkert, men det er sort snak for mig lige pt. Jeg håber i løbet af vinteren
at få tid til at lære php-programmering.
Jeg prøver lige Dan's løsning og vender så 'frygteligt' tilbage.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Michael Foged (07-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 07-10-04 16:14 |
|
On Thu, 07 Oct 2004 16:31:00 +0200, Erik Ginnerskov wrote:
> Michael Foged wrote:
>> Løsningen kunne være sessions....
> Sikkert, men det er sort snak for mig lige pt. Jeg håber i løbet af vinteren
> at få tid til at lære php-programmering.
Det er nu slet så svært (afhængig af paranoia niveau).
--
mvh
Michael Foged
| |
Erik Ginnerskov (07-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 07-10-04 17:49 |
|
Michael Foged wrote:
>> Jeg håber i løbet af
>> vinteren at få tid til at lære php-programmering.
>
> Det er nu slet så svært (afhængig af paranoia niveau).
Tak. Min paranoia har det nu fint. Men resten af efteråret har jeg desværre
ret travlt med noget andet, jeg ikke bare kan kaste til side. ;(
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Michael Foged (09-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 09-10-04 12:04 |
|
On Thu, 07 Oct 2004 18:48:46 +0200, Erik Ginnerskov wrote:
> Tak. Min paranoia har det nu fint. Men resten af efteråret har jeg desværre
> ret travlt med noget andet, jeg ikke bare kan kaste til side. ;(
Jeg har strikket noget login sammen jeg selv skal bruge, du kan prøve at
kigge her http://mogif.de/eksempler/login/login.php om det opfylder dine
behov. Du skal logge ind for at se koderne, login detaljer står på siden.
Jeg kan ikke garantere for sikkerhed eller hensigtsmæssighed i koderne.
--
mvh
Michael Foged
| |
Dan Molberg (09-10-2004)
| Kommentar Fra : Dan Molberg |
Dato : 09-10-04 12:33 |
|
Michael Foged wrote:
> Jeg kan ikke garantere for sikkerhed eller hensigtsmæssighed i
> koderne.
Det ville jeg nok heller ikke:
Som efter din eneste kontrol for om folk er logget ind er en cookie:
if(isset($_COOKIE['usrid'])){ //hvis COOKIE'n usrid er sat, er brugen logget
ind
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
Michael Foged (09-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 09-10-04 13:12 |
|
On Sat, 09 Oct 2004 13:32:53 +0200, Dan Molberg wrote:
> Det ville jeg nok heller ikke:
> Som efter din eneste kontrol for om folk er logget ind er en cookie:
> if(isset($_COOKIE['usrid'])){ //hvis COOKIE'n usrid er sat, er brugen logget
> ind
Jeg kan ikke se problemet (ikke at det ikke er der når du siger det).
Vil "SELECT * from users WHERE id='$_COOKIE[useid]"
og så kontrollere at der er en række eventuelt løse det?
--
mvh
Michael Foged
| |
Dan Molberg (09-10-2004)
| Kommentar Fra : Dan Molberg |
Dato : 09-10-04 14:45 |
|
Michael Foged wrote:
> On Sat, 09 Oct 2004 13:32:53 +0200, Dan Molberg wrote:
>
>> Det ville jeg nok heller ikke:
>> Som efter din eneste kontrol for om folk er logget ind er en cookie:
>> if(isset($_COOKIE['usrid'])){ //hvis COOKIE'n usrid er sat, er
>> brugen logget ind
>
> Jeg kan ikke se problemet (ikke at det ikke er der når du siger det).
> Vil "SELECT * from users WHERE id='$_COOKIE[useid]"
> og så kontrollere at der er en række eventuelt løse det?
Brug session istedet, problemet er at jeg hurtigt kan lave en cookie med et
bruger id i, og det er nok til at snyde dit login tjek.
--
MVH Dan Molberg
http://beyond.repair.dk/
| |
Michael Foged (09-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 09-10-04 15:02 |
|
On Sat, 09 Oct 2004 15:44:42 +0200, Dan Molberg wrote:
> Brug session istedet, problemet er at jeg hurtigt kan lave en cookie med et
> bruger id i, og det er nok til at snyde dit login tjek.
Tak for forklaringen, så laver jeg dem om til at bruge sessions.
--
mvh
Michael Foged
| |
Erik Ginnerskov (10-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-10-04 13:54 |
|
Michael Foged wrote:
>> Brug session istedet, problemet er at jeg hurtigt kan lave en cookie
>> med et bruger id i, og det er nok til at snyde dit login tjek.
>
> Tak for forklaringen, så laver jeg dem om til at bruge sessions.
I check_login.php inkluderer du db.php, men den har du ikke vist. Den må da
være væsentlig for at få den samlede login-funktion til at køre.
Det har vel også betydning, om den tabel, du har liggende i din MySQL er
lavet på samme måde som min (samme antal kolonner og med enslydende
kolonneheadere).
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Michael Foged (10-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 10-10-04 15:52 |
|
On Sun, 10 Oct 2004 14:53:50 +0200, Erik Ginnerskov wrote:
> Michael Foged wrote:
>
>>> Brug session istedet, problemet er at jeg hurtigt kan lave en cookie
>>> med et bruger id i, og det er nok til at snyde dit login tjek.
>>
>> Tak for forklaringen, så laver jeg dem om til at bruge sessions.
>
> I check_login.php inkluderer du db.php, men den har du ikke vist. Den må da
> være væsentlig for at få den samlede login-funktion til at køre.
Der er en mysql_connect() og en mysql_select_db() og ikke andet. Det er
for at undå at skrive dem i selve scriptet.
> Det har vel også betydning, om den tabel, du har liggende i din MySQL er
> lavet på samme måde som min (samme antal kolonner og med enslydende
> kolonneheadere).
Ja der skal selvf. være overensstemmelse mellem databasen og scriptet.
Jeg har en tabel der hedder "users" i en database, denne tabel har 3
kolonner, der hedder "id", "brugernavn" og "password".
--
mvh
Michael Foged
| |
Erik Ginnerskov (10-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-10-04 16:25 |
|
Michael Foged wrote:
> Ja der skal selvf. være overensstemmelse mellem databasen og scriptet.
> Jeg har en tabel der hedder "users" i en database, denne tabel har 3
> kolonner, der hedder "id", "brugernavn" og "password".
Tja, det ligner godt nok min tabel, bortset fra, at i min er sidste kolonne
skrevet med STORE bogstaver.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Michael Foged (10-10-2004)
| Kommentar Fra : Michael Foged |
Dato : 10-10-04 16:31 |
|
On Sun, 10 Oct 2004 17:25:01 +0200, Erik Ginnerskov wrote:
> Michael Foged wrote:
>
>> Ja der skal selvf. være overensstemmelse mellem databasen og scriptet.
>> Jeg har en tabel der hedder "users" i en database, denne tabel har 3
>> kolonner, der hedder "id", "brugernavn" og "password".
>
> Tja, det ligner godt nok min tabel, bortset fra, at i min er sidste kolonne
> skrevet med STORE bogstaver.
php og mysql er "case-sensitiv" på navne.
--
mvh
Michael Foged
| |
Erik Ginnerskov (10-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-10-04 20:46 |
|
Michael Foged wrote:
>> I check_login.php inkluderer du db.php, men den har du ikke vist.
>> Den må da være væsentlig for at få den samlede login-funktion til at
>> køre.
>
> Der er en mysql_connect() og en mysql_select_db() og ikke andet. Det
> er for at undå at skrive dem i selve scriptet.
Så skal db.php måske bare se sådan ud:
<?
session_start();
mysql_connect("server", "brugernavn", "password");
mysql_select_db("database");
?>
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://html-faq.dk
http://ginnerskov.frac.dk
| |
Per Jensen (07-10-2004)
| Kommentar Fra : Per Jensen |
Dato : 07-10-04 18:28 |
|
Hej
jeg bruger dette i mit login script:
<?
ob_start();
include "../config/config_inc.php";
include "../config/connect_mysql.php";
$user1=$user;
$md5_password=md5($password);
/* Soeg i Databasen efter usere og hent password */
connectmysqluser();
$query = "SELECT * from usere where username='$user1'";
$result = mysql_query($query) or die("<br>forspørgelse fejlede......");
$num_rows_total = mysql_num_rows($result);
echo "$num_rows_total Linier i databasen<br>";
while ($line1 = mysql_fetch_array($result)) {
$dbusername=$line1[1];
$dbuserpassword=$line1[2];
$dbusername1=$line1[3];
$dbuserlevel=$line1[4];
}
mysql_free_result($result);
stopmysqluser();
if ($dbuserpassword == "$md5_password" && $dbusername == "$user"){
session_start();
$_SESSION['username1'] = $dbusername1;
$_SESSION['userlevel'] = $dbuserlevel;
$_SESSION['user'] = $dbusername;
$_SESSION['md5_password'] = $md5_password;
header ("location: ../menu.php");
}
else
{
$loginfejl= "<b>FEJL:</b> I LOGIN";
header ("location: ../index.htm?loginfejl=$loginfejl");
}
ob_end_flush();
?>
Og på min side:
<?
session_start();
if($_SESSION['user'] && $_SESSION['md5_password']){
echo "[den hemlige side]<br>";
echo "<a href=\"./login/logud.php\">LOG UD</a><br>";
echo "<a href=\"egold.php\">Postsystem</a>";
} else {
echo "Du har ikke rettigheder til at se denne side !<a
href=\"index.htm\">LOG IN</a>";
}
?>
| |
Erik Ginnerskov (07-10-2004)
| Kommentar Fra : Erik Ginnerskov |
Dato : 07-10-04 19:26 |
| | |
|
|