Avatar billede lalledk Nybegynder
16. marts 2006 - 14:20 Der er 29 kommentarer og
1 løsning

Login til flere sider

Hey!
Jeg har søgt lidt rundt på nettet efter et forholdsvist simpelt login-system, hvor man logger ind ved at indtaste et brugernavn og et password, derefter bliver man så henvist til en side, der så skal hente oplysningerne fra databasen og se om de er identiske med de indtastede. Det er så bare her, at jeg gerne vil have, at der er flere sider der er beskyttede.. Er det muligt, at når man først er logget ind på den første side, at man ikke behøver at indtaste oplysningerne igen for at komme videre til en næste side, der også er beskyttet? :)
Der er 200 point til det bedste svar :)
Avatar billede rhandersen Nybegynder
16. marts 2006 - 14:21 #1
Jeg skriver dig lige et script, men ideen er at det kører over sessions.
Avatar billede lalledk Nybegynder
16. marts 2006 - 14:21 #2
ok, det lyder godt :)
Avatar billede rhandersen Nybegynder
16. marts 2006 - 14:28 #3
<----------login.php--------->

<?
session_start();
$admin = $_SESSION['Admin'];
if($admin != ""){
  header("Location: http://" . $_SERVER['HTTP_HOST'] . "index.php");
}
else
{
  include("dbcon.php");
if($bruger){
$str_sql = mysql_query("SELECT ID, bruger, password FROM admin WHERE bruger = '$bruger'");
while ($login = mysql_fetch_array($str_sql)){
if ($bruger . "_" . $password == $login['bruger'] . "_" . $login['password']){
    $loggetind = "OK";
    $_SESSION['Admin'] = "logged";
  setcookie("brugercookie", "$bruger", time() + 31536000);
    if($gem){
    setcookie("passwordcookie", "$password", time() + 31536000);
    }
   
header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);   
}
    }
}
?>
<form action="<? echo $PHP_SELF; ?>" method="post">
<br><br><br><br><br>
<center><table border="0" bgcolor="#CCCCCC" style="border-right:1 px #000000 solid; border-left:1 px #000000 solid; border-top:1 px #000000 solid; border-bottom:1 px #000000 solid;">
<tr>
  <td>
<font face="Verdana" size="3"><strong>Brugernavn: </strong></font>
      </td>
  <td>
<input name="bruger" value="<? echo $brugercookie; ?>">
      </td>
</tr>
<tr>
<td><font face="Verdana" size="3"><strong>Password: </strong></font>
</td>
<td>
<input name="password" type="password" value="<? echo $passwordcookie; ?>">
</td>
</tr>
<?
if(!$passwordcookie){
?>
<tr>
<td><font face="Verdana" size="3"><strong>Gem oplysninger: </strong></font>
</td>
<td>
<input name="gem" type="checkbox">
</td>
</tr>
<?
}
?>
<tr>
<td colspan="2">
<input type="submit" value="Log ind!">
</td>
</tr>
</table></center>
</form>
<?
}
?>

</--------login.php---------->

<-----toppen af alle sider der skal være sikret----->

<?
session_start();
$admin = $_SESSION['Admin'];
<?
if($admin == ""){
  header("Location: http://" . $_SERVER['HTTP_HOST'] . "login.php");
}
?>

</-----toppen af alle sider der skal være sikret-->


Så skal du selvfølgelig rette mysql- og headeroplysninger.
Avatar billede rhandersen Nybegynder
16. marts 2006 - 14:28 #4
Svar:)
Avatar billede rhandersen Nybegynder
16. marts 2006 - 14:35 #5
Der er lige en mindre fejl i "top-koden":
<?
session_start();
$admin = $_SESSION['Admin'];
if($admin == ""){
  header("Location: http://" . $_SERVER['HTTP_HOST'] . "login.php");
}
?>
Avatar billede lalledk Nybegynder
16. marts 2006 - 15:14 #6
hmm jeg kan ikke rigtig få det til at virke.. http://www.danishdingos.com/login/login.php  ... Linket til den beskyttede side er der, hvor der står 'her' hehe :)
Avatar billede lalledk Nybegynder
16. marts 2006 - 15:14 #7
du kan bruge user: test password: test
Avatar billede rhandersen Nybegynder
16. marts 2006 - 15:48 #8
den går tilbage til login, det tyder på at oplysningerne ikke er rigtige.

I øvrigt, skal du lige sætte en / foran login.php i header.
Avatar billede lalledk Nybegynder
16. marts 2006 - 15:54 #9
<?
session_start();
$admin = $_SESSION['Admin'];
if($admin != ""){
  header("Location: http://" . $_SERVER['HTTP_HOST'] . "index.php");
}
else
{
  include("forbindelse.php");
 
if($bruger){
$str_sql = mysql_query("SELECT ID, bruger, password FROM admin WHERE bruger = '$bruger'");
while ($login = mysql_fetch_array($str_sql)){
if ($bruger . "_" . $password == $login['bruger'] . "_" . $login['password']){
    $loggetind = "OK";
    $_SESSION['Admin'] = "logged";
  setcookie("brugercookie", "$bruger", time() + 31536000);
    if($gem){
    setcookie("passwordcookie", "$password", time() + 31536000);
    }
 
header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); 
}
    }
}
?>
<form action="<? echo $PHP_SELF; ?>" method="post">
<br><br><br><br><br>
<center><table border="0" bgcolor="#CCCCCC" style="border-right:1 px #000000 solid; border-left:1 px #000000 solid; border-top:1 px #000000 solid; border-bottom:1 px #000000 solid;">
<tr>
  <td>
<font face="Verdana" size="3"><strong>Brugernavn: </strong></font>
      </td>
  <td>
<input name="bruger" value="<? echo $brugercookie; ?>">
      </td>
</tr>
<tr>
<td><font face="Verdana" size="3"><strong>Password: </strong></font>
</td>
<td>
<input name="password" type="password" value="<? echo $passwordcookie; ?>">
</td>
</tr>
<?
if(!$passwordcookie){
?>
<tr>
<td><font face="Verdana" size="3"><strong>Gem oplysninger: </strong></font>
</td>
<td>
<input name="gem" type="checkbox">
</td>
</tr>
<?
}
?>
<tr>
<td colspan="2">
<input type="submit" value="Log ind!">
</td>
<td>
<a href="http://www.danishdingos.com/login/secretsite.php">Her</a>
</td>
</tr>
</table></center>
</form>
<?
}
?>


/Her er den side jeg kalder for login.php
Avatar billede lalledk Nybegynder
16. marts 2006 - 15:55 #10
og her er den beskyttede side:

<?
session_start();
$admin = $_SESSION['Admin'];
if($admin == ""){
  header("Location: http://" . $_SERVER['HTTP_HOST'] . "/login/login.php");
}
?>

<html>
<head>
<title>hemmelig side</title>
</head>
<body>
Her er det hemmelige så :P
</body>
</html>
Avatar billede rhandersen Nybegynder
16. marts 2006 - 16:04 #11
opret lige en ny, med bruger: eksperten pw: testpw
Avatar billede rhandersen Nybegynder
16. marts 2006 - 16:04 #12
Det er forkert indtastning.
Avatar billede lalledk Nybegynder
16. marts 2006 - 16:06 #13
Jeg har lavet brugeren nu
Avatar billede rhandersen Nybegynder
16. marts 2006 - 16:21 #14
Problemet er at den går tilbge pga forkert indtastning, prøv at udksrive sessionen

echo $_SESSION['Admin'];
Avatar billede lalledk Nybegynder
16. marts 2006 - 16:24 #15
bare et tilfældigt sted på siden?
Avatar billede lalledk Nybegynder
16. marts 2006 - 16:28 #16
har sat koden ind, men der sker ikke rigtig noget :/ Er det mig eller dig, der har lavet den forkerte indtastning?
Avatar billede rhandersen Nybegynder
16. marts 2006 - 16:33 #17
det er som bare fordi den er tom, vi skal have sat den på en eller anden måde
Avatar billede lalledk Nybegynder
16. marts 2006 - 16:35 #18
Nogen idé til hvordan? :)
Avatar billede rhandersen Nybegynder
16. marts 2006 - 16:42 #19
scriptet virker fint på min server.

Jeg har lavet lidt småforbedringer:
www.lorf.dk/login/

bare skriv index.phps og login.phps for at se min kode.
Avatar billede rhandersen Nybegynder
16. marts 2006 - 16:45 #20
bruger: eksperten
pass: testpw
Avatar billede lalledk Nybegynder
16. marts 2006 - 16:54 #21
ved ikk hvad det er der går galt, men du skal self. nok få dine point alligevel :) Ka være, at jeg har lavet noget galt i min database? Ka jeg få lov til at se din kode til den? :)
Avatar billede rhandersen Nybegynder
16. marts 2006 - 17:39 #22
Avatar billede lalledk Nybegynder
16. marts 2006 - 17:42 #23
mente din SQL-kode :)
Avatar billede rhandersen Nybegynder
16. marts 2006 - 17:44 #24
nåå:P
Avatar billede rhandersen Nybegynder
16. marts 2006 - 17:45 #25
CREATE TABLE `admin` (
  `ID` int(11) NOT NULL auto_increment,
  `bruger` varchar(200) NOT NULL default '',
  `password` varchar(200) NOT NULL default '',
  PRIMARY KEY  (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;


INSERT INTO `admin` VALUES (1, 'eksperten', 'testpw');
Avatar billede lalledk Nybegynder
16. marts 2006 - 17:55 #26
haha, jeg er jo uduelig.. :) Meget mærkeligt, at det ikke virker.. Men mange tak for hjælpen ;)
Avatar billede rhandersen Nybegynder
16. marts 2006 - 18:18 #27
ved sku ikke helt.. det virker jo ved mig:S
Avatar billede rhandersen Nybegynder
18. marts 2006 - 13:53 #28
Jeg har lige lagt det på en anden server, der virker det heller ikke.

jeg vender tilbage når jeg finder ud af noget.
Avatar billede rhandersen Nybegynder
18. marts 2006 - 13:53 #29
Hvorhenne er du hosted?
Avatar billede lalledk Nybegynder
19. marts 2006 - 16:41 #30
hos web10.dk ... det er sq underligt..
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