|
| 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
| |
|
|