/ 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
Skifte div
Fra : Christoffer


Dato : 23-02-05 17:28

Hej, jeg har tidligere hentet hjælp herinde ang. mit community hvor jeg har
lidt problemer ang. login
http://buur.info/mdk/site/index2.phps (bruger/pass test/test)
Når man logger ind vil jeg gerne have min login div til at skifte fra
loginform til navigation som er opdelt alt efter userlevels (3 stks.)
Jeg har rodet meget med login-delen så jeg tror fejlen ligger i min kode som
skal skifte div'en

<?php
include "config.php";
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);
$userlevel = mysql_query("select userlevel FROM bruger ");
switch (intval($username[$userlevel])) {
case 1:
print "webmaster funktioner";
break;
case 2:
print "moderator funktioner";
break;
case 3:
print "bruger funktioner";
break;
default:
print "
<form action='$_self'><input type='text' name='navn'
value='brugernavn'><br><input type='password' name='navn'
value='password'><br><input type='hidden' name='aktiver'
value='aktiver'><input type='submit' name='login' value='login'></form>";
break;}
?>

Nogen fejl??
Hele koden kan ses på http://buur.info/mdk/site/index2.phps

Christoffer



 
 
Rasmus Rimestad (24-02-2005)
Kommentar
Fra : Rasmus Rimestad


Dato : 24-02-05 08:54

Christoffer wrote:
> <form action='$_self'>

Jeg har aldrig hørt om variablet $_self. Forsøg at bytte med $_SERVER['PHP_SELF']

Rasmus

--
Rasmus Rimestad, webprogrammerer
Webdatabaser til en pris du kan leve med --> http://www.rimestad.no

Christoffer (24-02-2005)
Kommentar
Fra : Christoffer


Dato : 24-02-05 16:34


> Jeg har aldrig hørt om variablet $_self. Forsøg at bytte med
> $_SERVER['PHP_SELF']
Der kan man se.. tak!

Jeg har så kun et lille problem nu jeg får fejlen
"Parse error: parse error, unexpected T_VARIABLE"

Det er ud for linjen med dette:
print "
<form action='$_SERVER['PHP_SELF']'><input type='text' name='navn'
value='brugernavn'><br><input type='password' name='navn' value='password'>
<br><input type='hidden' name='aktiver' value='aktiver'><input
type='submit' name='login' value='login'></form>";
break;}

Fejlen tror jeg selv ligger i at jeg har mit print i gåseøjne, og bruger '
til min action, jeg bruger bare også ' til mit php_self
Hvordan løser jeg det?

Christoffer



Kristian Thy (24-02-2005)
Kommentar
Fra : Kristian Thy


Dato : 24-02-05 16:43

Christoffer wrote:
> Det er ud for linjen med dette:
> print "
> <form action='$_SERVER['PHP_SELF']'><input type='text' name='navn'
> value='brugernavn'><br><input type='password' name='navn' value='password'>
> <br><input type='hidden' name='aktiver' value='aktiver'><input
> type='submit' name='login' value='login'></form>";
> break;}
>
> Fejlen tror jeg selv ligger i at jeg har mit print i gåseøjne, og bruger '
> til min action, jeg bruger bare også ' til mit php_self
> Hvordan løser jeg det?

Prøv med

print "
<form action='".$_SERVER['PHP_SELF']."'><input ...

\\kristian
--
Thomas Madsens fremragende guide til sikring af Windows:
http://home18.inet.tele.dk/madsen/windows/tjenester/

Christoffer (24-02-2005)
Kommentar
Fra : Christoffer


Dato : 24-02-05 17:15

> print "
> <form action='".$_SERVER['PHP_SELF']."'><input ...
Tak, det virker...

Men mit oprindelige problem er endnu ikke løst.. fatter ikke hvad der kan
være galt



Rasmus Rimestad (25-02-2005)
Kommentar
Fra : Rasmus Rimestad


Dato : 25-02-05 08:36

Christoffer wrote:
>>print "
>> <form action='".$_SERVER['PHP_SELF']."'><input ...
>
> Tak, det virker...
>
> Men mit oprindelige problem er endnu ikke løst.. fatter ikke hvad der kan
> være galt
>
>

Se på kildekoden til HTML-en som scriptet ditt genererer. Er action="noget" attributet korrekt?

Hvis den er, kan du si lit mer om hvad som skal skje, og hvad der skjer?

--
Rasmus Rimestad, webprogrammerer
Webdatabaser til en pris du kan leve med --> http://www.rimestad.no

Christoffer (25-02-2005)
Kommentar
Fra : Christoffer


Dato : 25-02-05 14:24


"Rasmus Rimestad" <rimestad@rimestad.no> skrev i en meddelelse
news:3882rpF5lcamaU1@individual.net...
> Christoffer wrote:
>>>print "
>>> <form action='".$_SERVER['PHP_SELF']."'><input ...
>>
>> Tak, det virker...
>>
>> Men mit oprindelige problem er endnu ikke løst.. fatter ikke hvad der kan
>> være galt
>
> Se på kildekoden til HTML-en som scriptet ditt genererer. Er
> action="noget" attributet korrekt?
>
> Hvis den er, kan du si lit mer om hvad som skal skje, og hvad der skjer?

action ser ud som den skal tror jeg (action='".$_SERVER['PHP_SELF']."') Har
lavet action på den måde, for at få aktiveret mit php script i starten af
siden, som skal logge brugeren ind, uden at skifte side. Det er så meningen
at min div hvor man logger ind skal skifte til en menu som er tilpasset
brugerens begrænsninger og rettigheder.

Hvad der sker?? tja..ikke så forfærdelig meget, siden refresher når jeg
klikker på login.
prøv => http://buur.info/mdk/site/index2.php
brugernavn/password test/test

Hele koden kan ses på http://buur.info/mdk/site/index2.phps

Christoffer



Bjarne Bue (25-02-2005)
Kommentar
Fra : Bjarne Bue


Dato : 25-02-05 14:54

On Fri, 25 Feb 2005 14:23:45 +0100, Christoffer wrote:

> Hvad der sker?? tja..ikke så forfærdelig meget, siden refresher når jeg
> klikker på login.
> prøv => http://buur.info/mdk/site/index2.php
> brugernavn/password test/test
>
> Hele koden kan ses på http://buur.info/mdk/site/index2.phps

Jeg har ikke kigget din kode særlig grundigt igennem, men jeg faldt over
to fejl i din form, som måske kan være skyld i dine problemer:

1) Du sætter ikke nogen method: <form action='/mdk/site/index2.php'>.
Derved bliver method automatisk sat til "get", men i dit script prøver du
at hive brugernavn og password ud af $_POST[]-arrayet. Tilføj
method="post" til din form.

2) Dine brugernavn- og password-felter hedder det samme:
<input type='text' name='navn' value='brugernavn'>
<input type='password' name='navn' value='password'>. I dit script tilgår
du dem som hhv. $_POST['brugernavn'] og $_POST['password']. Du skal rette
name= i begge input-felter.

Med venlig hilsen
Bjarne



Christoffer (25-02-2005)
Kommentar
Fra : Christoffer


Dato : 25-02-05 19:39

>> Hele koden kan ses på http://buur.info/mdk/site/index2.phps
Har uploadet en ny

> Jeg har ikke kigget din kode særlig grundigt igennem, men jeg faldt over
> to fejl i din form, som måske kan være skyld i dine problemer:
>
> 1) Du sætter ikke nogen method: <form action='/mdk/site/index2.php'>.
> Derved bliver method automatisk sat til "get", men i dit script prøver du
> at hive brugernavn og password ud af $_POST[]-arrayet. Tilføj
> method="post" til din form.
>
> 2) Dine brugernavn- og password-felter hedder det samme:
> <input type='text' name='navn' value='brugernavn'>
> <input type='password' name='navn' value='password'>. I dit script tilgår
> du dem som hhv. $_POST['brugernavn'] og $_POST['password']. Du skal rette
> name= i begge input-felter.
Tak! 2 fejl som er blevet rettet, men problemet er stadig ikke løst... den
refresher bare som før.



Bjarne Bue (25-02-2005)
Kommentar
Fra : Bjarne Bue


Dato : 25-02-05 20:24

On Fri, 25 Feb 2005 19:39:06 +0100, Christoffer wrote:

>>> Hele koden kan ses på http://buur.info/mdk/site/index2.phps
> Har uploadet en ny
>
>> Jeg har ikke kigget din kode særlig grundigt igennem, men jeg faldt over
>> to fejl i din form, som måske kan være skyld i dine problemer:

<SNIP>

> Tak! 2 fejl som er blevet rettet, men problemet er stadig ikke løst...
> den refresher bare som før.

Nu kiggede jeg en ekstra gang. Grunden til at der ikke sker noget er, at
du har lagt dit login-tjek i en funktion: function auth_user(). Denne
funktion kalder du imidlertid aldrig. Der er ikke nogen grund til at pakke
det ind i en funktion, når koden kun skal kaldes én gang pr. sidevisning.

Så slet linjen "function auth_user() {" og den afsluttende } så burde
der ske noget.

- Bjarne



Christoffer (25-02-2005)
Kommentar
Fra : Christoffer


Dato : 25-02-05 20:38


> Nu kiggede jeg en ekstra gang. Grunden til at der ikke sker noget er, at
> du har lagt dit login-tjek i en funktion: function auth_user(). Denne
> funktion kalder du imidlertid aldrig. Der er ikke nogen grund til at pakke
> det ind i en funktion, når koden kun skal kaldes én gang pr. sidevisning.
>
> Så slet linjen "function auth_user() {" og den afsluttende } så burde
> der ske noget.
Tusind tak, nu kan man da logge ind!
-Men min div skifter ikke... kan det skyldes at jeg ikke henter brugerens
id noget sted fra?? (Er TOTAL begynder)



Bjarne Bue (26-02-2005)
Kommentar
Fra : Bjarne Bue


Dato : 26-02-05 01:37

On Fri, 25 Feb 2005 20:37:59 +0100, Christoffer wrote:

> Tusind tak, nu kan man da logge ind!
> -Men min div skifter ikke... kan det skyldes at jeg ikke henter brugerens
> id noget sted fra?? (Er TOTAL begynder)

Vi nærmer os
Din næste query går helt gal. Du skriver:

$userlevel = mysql_query("select userlevel FROM bruger ");
switch (intval($username[$userlevel])) {
[...]
}

Jeg kender ikke din databasestruktur, men jeg går ud fra, at tabellen
bruger indeholder felterne "brugernavn", "password" og "userlevel". Det,
du er ude efter er at undersøge hvilken userlevel den bruger, der er
logget ind, har. Så du skal have fat på noget i stil med:

$res = mysql_query("SELECT userlevel FROM bruger WHERE
brugernavn='$username'") or die(mysql_error()); // Det er altid en god ide
at lave fejltjek efter sine queries.

$row = mysql_fetch_row($res);
echo "Brugeren " . $username . " har userlevel: " . $row[0];

Men du behøver ikke at lave to queries, du kan lige så godt trække
userlevel ud samtidig med at du tjekker om brugernavn og password passer
sammen. Det får du selv lov at lege med

Mvh Bjarne

Christoffer (26-02-2005)
Kommentar
Fra : Christoffer


Dato : 26-02-05 12:16



>> Tusind tak, nu kan man da logge ind!
>> -Men min div skifter ikke... kan det skyldes at jeg ikke henter
>> brugerens
>> id noget sted fra?? (Er TOTAL begynder)
>
> Vi nærmer os
> Din næste query går helt gal. Du skriver:
>
> $userlevel = mysql_query("select userlevel FROM bruger ");
> switch (intval($username[$userlevel])) {
> [...]
> }
>
> Jeg kender ikke din databasestruktur, men jeg går ud fra, at tabellen
> bruger indeholder felterne "brugernavn", "password" og "userlevel". Det,
> du er ude efter er at undersøge hvilken userlevel den bruger, der er
> logget ind, har. Så du skal have fat på noget i stil med:
>
> $res = mysql_query("SELECT userlevel FROM bruger WHERE
> brugernavn='$username'") or die(mysql_error()); // Det er altid en god ide
> at lave fejltjek efter sine queries.
>
> $row = mysql_fetch_row($res);
> echo "Brugeren " . $username . " har userlevel: " . $row[0];
>
> Men du behøver ikke at lave to queries, du kan lige så godt trække
> userlevel ud samtidig med at du tjekker om brugernavn og password passer
> sammen. Det får du selv lov at lege med
Det vil jeg så gøre! Tak for hjælpen, du har virkelig sat skub i projektet
igen :)

Christoffer



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste