Avatar billede bilfeldt Nybegynder
26. september 2003 - 17:33 Der er 7 kommentarer og
1 løsning

Session kommandoer

Hej..

Jwg har en hjemmeside, med et login system. Nå jeg logger ind, så gør den:

session_start();
session_register("password");
session_register("brugernavn");
session_register("login");

Jeg vil have den til, at hvis sessionen login er der, så skal den skrive "Du er logget ind som: og-så-brugernavnet", og hvis sessionen login ikke er der, så skal den skrive "login", hvordan gør man det??

ps. Hvordan gør jeg hvis jeg vil havde den til at registre sessionen login, sådan så login = ok??

Mvh
Anders
Avatar billede jay Nybegynder
26. september 2003 - 17:41 #1
har $login en værdi når du logger ind?
Avatar billede jay Nybegynder
26. september 2003 - 17:49 #2
session_register() virker ikke med register_globals off, så plejer at bruge $_SESSION. Hvis du bruger det istedet kan lave det ved:

Ved login køres:

session_start();
$_SESSION["password"] = $password;
$_SESSION["brugernavn"] = $brugernavn;
$_SESSION["logon"] = 'loggedin';

if ($_SESSION["login"] == 'loggedin'){
echo 'Du er logget ind som '.$_SESSION["brugernavn"];
} else {
echo 'login';
}
Avatar billede jay Nybegynder
26. september 2003 - 17:52 #3
ok... der fik jeg så lige trykket et par millisekunder for tidligt...
Altså følgende køres når du logger ind:

session_start();
$_SESSION["password"] = $password;
$_SESSION["brugernavn"] = $brugernavn;
$_SESSION["logon"] = 'loggedin';

--------

Nå du så skal tjecke om du er logget ind kan du gøre således:

if ($_SESSION["login"] == 'loggedin'){
echo 'Du er logget ind som '.$_SESSION["brugernavn"];
} else {
echo 'login';
}

Kan ikke lige huske hvordan du henter dine session variabler, hvis du gemmer dem ved session_register, som du gør. Princippet er ca. det samme i hvert fald.
Avatar billede jay Nybegynder
26. september 2003 - 17:55 #4
arrgh.... hvor der tjeckes har der sneget sig en fejl ind, der skal selvfølgelig stå $_SESSION["logon"] og ikke $_SESSION["login"], så passer de jo ikke sammen :/
Avatar billede bilfeldt Nybegynder
26. september 2003 - 18:12 #5
Jeg kan ikke få det til at virke.. Min side ser nu sådan her ud, hvad er der galt (den kan godt logge ind, men når jeg så trykker på et link, til en underside, så logger den ud)??

<?

if ($_SESSION["login"] == 'ok'){
echo 'Du er logget ind som '.$_SESSION["brugernavn"];
} else {

mysql_connect("mysql1.freepaq.dk", "brugernavn", "password");

mysql_select_db("dero_dk_db");

$result = mysql_query("select user_password from phpbb_users where

username = '$brugernavn'")
or die (mysql_error());

while($row = mysql_fetch_array($result)) {

$dbpassword = $row["user_password"];

}

$inpassword = md5($password);

if($dbpassword == $inpassword){
$login == "ok";

setcookie("brugernavn","$brugernavn",time()+600000);

session_start();
$_SESSION["password"] = $password;
$_SESSION["brugernavn"] = $brugernavn;
$_SESSION["login"] = 'ok';
echo "Du er logget ind som:";
?>
<p><center>
<?
echo "$brugernavn";
?>
</center></p>
<p><center>
<form method="get" action="<? $PHP_SELF ?>">
<input type="submit" name="logud" value="Log ud" onUnclick="<?

session_start();
session_register("logud"); unset($_SESSION['brugernavn']);

unset($_SESSION['password']); unset($_SESSION['login']); ?>">
</form></center></p>
<?
}
else{
?>
<form action="index.php?login=ok" method="post">
<div align="left">
  <table border="0" cellspacing="0">
    <tr>
      <td>
<center><font size="2">
Brugernavn:&nbsp;</font></center>
      </td>
    </tr>
    <tr>
      <td> <input type="text" name="brugernavn" value="<? print 

$_COOKIE['brugernavn']; ?>"></td>
    </tr>
    <tr>
      <td>
<p align="center"><font size="2">
Password:</font></p>
</td>
    </tr>
    <tr>
      <td> <input type="password" name="password"></td>
    </tr>
    <tr>
      <td>
        <p align="center"><input type="submit" name="login"

value="Login"><font size="2"><br>
        <a href="http://www.dero.dk/login/opret.php">Opret mig som
        bruger</a></font></p>
      </td>
    </tr>
  </table>
</div>
</form>

<?
}
}
?>
Avatar billede jay Nybegynder
27. september 2003 - 16:03 #6
Jeg er ikke 100% her, fordi kan ikke alt php, men jeg vil nu alligevel mene at måske har fundet fejlen. Kan heller ikke teste om det virkelig er det der er fejlen, da din server tilsyneladende er sat op anderledes end min.
Når php læser din side, når den til:

<form method="get" action="<? $PHP_SELF ?>">
<input type="submit" name="logud" value="Log ud" onUnclick="<?

session_start();
session_register("logud"); unset($_SESSION['brugernavn']);

unset($_SESSION['password']); unset($_SESSION['login']); ?>">
</form></center></p>

Der bliver du så logget af. Hvad enten du har trykket på knappen eller ej. Det betyder altså at du er logget ind da outputtet bliver lavet, men bliver logget ud i samme øjeblik. Derfor du ser at du er logget ind, men i virkeligheden er du allerede blevet logget ud, altså vil du når du går videre til næste side se at du er blevet logget af.

lig:
<?

session_start();
session_register("logud"); unset($_SESSION['brugernavn']);

unset($_SESSION['password']); unset($_SESSION['login']);
?>

I en anden fil som du evt. kan kalde logout.php og kald den når der trykkes på knappen. Den kan så sende brugeren tilbage til siden efter han er blevet logget ud.

En anden ting "onUnclick" findes den attribut? Sikker på det ikke bare skal være onclick?
Avatar billede bilfeldt Nybegynder
28. september 2003 - 17:15 #7
Tusinde tak.. Nu virker det..

Mvh
Anders
Avatar billede jay Nybegynder
29. september 2003 - 15:44 #8
Det lyder godt, glad for at kunne hjælpe
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester