Avatar billede jokerper Nybegynder
12. maj 2007 - 12:36 Der er 49 kommentarer og
1 løsning

Opsætning af adgangsformular på server.

Jeg har brug for hjælp til adganskontrollen på serveren.

Jeg får denne fejl meddelse:
Forkert brugernavn / password

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/www/mit domæne/bruger.php:8) in /home/www/mitdomæne/bruger.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at /home/www/mitdomæne/bruger.php:8) in /home/www/mitdomæne/bruger.php on line 35

Men den kommer kun med denne meddelse ved rigtigt password - ved forkert password hopper den over til siden - Forkert brugernavn / password.

-------------------------------------
bruger.php

Linie 30: session_start();

Linie 35: header ("Location: http://mitdomæne/mappe/login.php");

Hvad er der galt?
Avatar billede leif Seniormester
12. maj 2007 - 13:03 #1
Du må før:
header ("Location: http://mitdomæne/mappe/login.php");


IKKE have et Output

Dvs. der må ikke skrives noget til skærmen
Avatar billede jokerper Nybegynder
12. maj 2007 - 13:21 #2
<leif> dette skulle være lavet køreklar.

Denne passwordkontrol består i brugerdelen af 3 sider:

default.php er siden med login-formularen, hvor brugeren indtaster brugernavn og password (den side, du netop kom fra?).

Hvis din server fordrer et andet navn på et givet katalogs standardside, skal du selvfølgelig tilsvarende ændre navnet på default.php, så det passer med, at et link ind i det beskyttede katalog (uden angivelse af sidenavn) automatisk åbner login-siden.

login.php er den side man kommer til ved login. Siden har øverst en sektion, der kun vises ved korrekt login.

Siden har nederst har en sektion, der kun vises ved ukorrekt login - og henviser til default.php.

Alle andre beskyttede sider laves over samme skabelon som login.php
logout.php er den side, der afslutter den igangværende session på brugerens ønske.

Desuden finder du bruger.php som er en fil, der ligger serverside og tjekker brugernavn og password.

Alle filer er køreklar.

------------------------------------------------

<leif>

Jeg mener det kunne muligvis have noget med dette afsnit at gøre:

Hvis din server fordrer et andet navn på et givet katalogs standardside, skal du selvfølgelig tilsvarende ændre navnet på default.php, så det passer med, at et link ind i det beskyttede katalog (uden angivelse af sidenavn) automatisk åbner login-siden.

________________________________________________
Og iøvrigt tak for hjælpen, sidst - andet spørgsmål.
Avatar billede leif Seniormester
12. maj 2007 - 13:27 #3
Så er vi nød til at se scriptne !
Avatar billede jokerper Nybegynder
12. maj 2007 - 13:32 #4
Bruger.php:

<? $strTitle="Forkert brugernavn / password";?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<meta name="Generator" content="Stone's WebWriter 4" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title><? echo $strTitle; ?></title>
<script type="text/javascript" src="../../function.js"></script>
<link href="../../egin.css" rel="stylesheet" type="text/css" />
<link href="../../eginp.css" rel="stylesheet" type="text/css" media="print" />
<link rel="shortcut icon" href="../../favicon.ico" />
</head>

<body>

<div class="indhold">

<h1><? echo $strTitle; ?></h1>

<?php
ob_start();
$brugernavn = "gaest";
$MD5_password = "81dc9bdb52d04dc20036dbd8313ed055";
$brugerdata = $_POST['brugernavn'];
$password = md5($_POST['password']);

if($password == "$MD5_password" && $brugerdata == "$brugernavn"){

  session_start();
  $_SESSION['innlogget'] = 1;
  $_SESSION['brugernavn'] = $brugernavn;
  $_SESSION['password'] = $MD5_password;

header ("Location: login.php");
 
}
   
    else{
        echo "<p>Forkert brugernavn eller password! Tjek, at [Caps Lock] ikke er aktiveret og prøv igen.</p>";
    }
   
Ob_end_flush();
?>

<p><a href="default.php" class="tlink">Login</a></p>

<h5>Footer</h5>

</div>

<? include("menu.inc"); ?>

</body>
</html>
Avatar billede leif Seniormester
12. maj 2007 - 13:33 #5
:)

Du har output før din header og derfor får du ovenstående fejl !
Avatar billede jokerper Nybegynder
12. maj 2007 - 13:34 #6
Default.php:

<? $strTitle="Login formular";?>
<? include("header.inc"); ?>
<body>

<div class="indhold">

<h1><? echo $strTitle; ?></h1>

<form method="post" action="bruger.php" enctype="multipart/form-data">
<fieldset>
<legend>Indtast brugernavn og password</legend>
  <label for="t1">Brugernavn:</label><input id="t1" type="text" name="brugernavn" /><br />
  <label for="t2">Password:</label><input id="t2" type="password" name="password" /><br />
  <label for="subm">&nbsp;</label><input id="subm" type="submit" class="knapper" value="Log in" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" class="knapper" name="slet" value="Reset" />
</fieldset>
</form>

<p>Brugernavn: gaest<br />Password:&nbsp;&nbsp;&nbsp; 1234</p>

</div>


</body>
</html>
Avatar billede jokerper Nybegynder
12. maj 2007 - 13:35 #7
login.php:

<?php
session_start();
?>
<? $strTitle="Velkommen";?>
<? include("header.inc"); ?>
<body>
<div class="indhold">

<?php
if($_SESSION['brugernavn'] && $_SESSION['password'])
{
    echo "<h1> $strTitle </h1>
   
    <p>Til lykke, du er inde</p> ";
}
else
{
    echo "<h1>Ukorrekt login</h1>
   
    <p>Du skal være logget ind for at se disse sider. <a class=\"tlink\" href=\"default.php\">Log in</a></p>";
}
?>

<ul class="menu">

    <li><a href="side1.php">Side 1</a></li>

    <li><a href="side2.php">Side 2</a></li>

    <li><a href="side3.php">Side 3</a></li>

    <li><a href="logout.php">Log out</a></li>

</ul>

</div>
<? include("menu2.inc"); ?>

</body>
</html>
Avatar billede jokerper Nybegynder
12. maj 2007 - 13:36 #8
Okay jeg så lige du havde skrevet, til mig.

Godt set! :)

Hvad skal jeg så gøre, da jeg ikke kender .php
Avatar billede leif Seniormester
12. maj 2007 - 13:37 #9
Prøv med bruger.php, ikke testet:
<?php
ob_start();
$brugernavn = "gaest";
$MD5_password = "81dc9bdb52d04dc20036dbd8313ed055";
$brugerdata = $_POST['brugernavn'];
$password = md5($_POST['password']);

if($password == "$MD5_password" && $brugerdata == "$brugernavn"){

  session_start();
  $_SESSION['innlogget'] = 1;
  $_SESSION['brugernavn'] = $brugernavn;
  $_SESSION['password'] = $MD5_password;

header ("Location: login.php");
 
}else{

$strTitle="Forkert brugernavn / password";

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<meta name="Generator" content="Stone's WebWriter 4" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title><? echo $strTitle; ?></title>
<script type="text/javascript" src="../../function.js"></script>
<link href="../../egin.css" rel="stylesheet" type="text/css" />
<link href="../../eginp.css" rel="stylesheet" type="text/css" media="print" />
<link rel="shortcut icon" href="../../favicon.ico" />
</head>

<body>

<div class="indhold">

<?
    echo "<h1>".$strTitle."</h1>";
    echo "<p>Forkert brugernavn eller password! Tjek, at [Caps Lock] ikke er aktiveret og prøv igen.</p>";
}
?>

<p><a href="default.php" class="tlink">Login</a></p>

<h5>Footer</h5>

</div>

<? include("menu.inc"); ?>

</body>
</html>

<?
Ob_end_flush();
?>
Avatar billede jokerper Nybegynder
12. maj 2007 - 13:42 #10
Web-siden blev ikke fundet. ???
Avatar billede leif Seniormester
12. maj 2007 - 13:43 #11
Ligger login.php i samme mappe ?
Avatar billede leif Seniormester
12. maj 2007 - 13:45 #12
Kør lige en test med denne:
<?php
ob_start();
$brugernavn = "gaest";
$MD5_password = "81dc9bdb52d04dc20036dbd8313ed055";
$brugerdata = $_POST['brugernavn'];
$password = md5($_POST['password']);

if($password == "$MD5_password" && $brugerdata == "$brugernavn"){

  session_start();
  $_SESSION['innlogget'] = 1;
  $_SESSION['brugernavn'] = $brugernavn;
  $_SESSION['password'] = $MD5_password;

echo "Du burde være sendt videre til login.php men af test formål ser du denne tekst så vi kan teste om du er godkendt";

//header ("Location: login.php");


 
}else{

$strTitle="Forkert brugernavn / password";

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<meta name="Generator" content="Stone's WebWriter 4" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title><? echo $strTitle; ?></title>
<script type="text/javascript" src="../../function.js"></script>
<link href="../../egin.css" rel="stylesheet" type="text/css" />
<link href="../../eginp.css" rel="stylesheet" type="text/css" media="print" />
<link rel="shortcut icon" href="../../favicon.ico" />
</head>

<body>

<div class="indhold">

<?
    echo "<h1>".$strTitle."</h1>";
    echo "<p>Forkert brugernavn eller password! Tjek, at [Caps Lock] ikke er aktiveret og prøv igen.</p>";
}
?>

<p><a href="default.php" class="tlink">Login</a></p>

<h5>Footer</h5>

</div>

<? include("menu.inc"); ?>

</body>
</html>

<?
Ob_end_flush();
?>
Avatar billede jokerper Nybegynder
12. maj 2007 - 13:50 #13
leif det lykkedes mig at få ramt på noget, jeg vender lige tilbage når jeg har testet dette.
Avatar billede jokerper Nybegynder
12. maj 2007 - 14:24 #14
<leif> det første du sendte ikke testede - virkede ikke, den gik udenom validering af password.

men den anden.

Ny side med:
echo "Du burde være sendt videre til login.php men af test formål ser du denne tekst så vi kan teste om du er godkendt";

/hvad siger det dig?
Avatar billede leif Seniormester
12. maj 2007 - 14:32 #15
Det siger mig at scriptet fungerer da det eneste der er ændret er at jeg har fjernet:
header ("Location: login.php");
og indsat:
echo "Du burde være sendt videre til login.php men af test formål ser du denne tekst så vi kan teste om du er godkendt";



Så hvis du får teksten: "Du burde være sendt videre til login.php men af test formål ser du denne tekst så vi kan teste om du er godkendt" så virker login scriptet.
Avatar billede leif Seniormester
12. maj 2007 - 14:33 #16
Så skal du bare bruge:
<?php
ob_start();
$brugernavn = "gaest";
$MD5_password = "81dc9bdb52d04dc20036dbd8313ed055";
$brugerdata = $_POST['brugernavn'];
$password = md5($_POST['password']);

if($password == "$MD5_password" && $brugerdata == "$brugernavn"){

  session_start();
  $_SESSION['innlogget'] = 1;
  $_SESSION['brugernavn'] = $brugernavn;
  $_SESSION['password'] = $MD5_password;


header ("Location: login.php");


 
}else{

$strTitle="Forkert brugernavn / password";

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<meta name="Generator" content="Stone's WebWriter 4" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title><? echo $strTitle; ?></title>
<script type="text/javascript" src="../../function.js"></script>
<link href="../../egin.css" rel="stylesheet" type="text/css" />
<link href="../../eginp.css" rel="stylesheet" type="text/css" media="print" />
<link rel="shortcut icon" href="../../favicon.ico" />
</head>

<body>

<div class="indhold">

<?
    echo "<h1>".$strTitle."</h1>";
    echo "<p>Forkert brugernavn eller password! Tjek, at [Caps Lock] ikke er aktiveret og prøv igen.</p>";
}
?>

<p><a href="default.php" class="tlink">Login</a></p>

<h5>Footer</h5>

</div>

<? include("menu.inc"); ?>

</body>
</html>

<?
Ob_end_flush();
?>
Avatar billede leif Seniormester
12. maj 2007 - 14:33 #17
Og sikre at siden hedder login.php den side du vil videresende til og ligger i samme mappe som bruger.php
Avatar billede jokerper Nybegynder
12. maj 2007 - 14:41 #18
Det virker, men jeg tester lige for nu skal jeg jo lave filnavnene om, så de ikke er så lette at regne ud, ik.
Avatar billede jokerper Nybegynder
12. maj 2007 - 14:43 #19
<leif> Er det ikke korrekt?
Avatar billede leif Seniormester
12. maj 2007 - 14:43 #20
Hvorfor skal du lave Filnavnene om ?
Avatar billede leif Seniormester
12. maj 2007 - 14:44 #21
Men jeg ville nok lave Loginsystemmet anderledes
Avatar billede leif Seniormester
12. maj 2007 - 14:45 #22
Jeg har ikke tid nu, men hvis du vil have det vil jeg gerne lave det anderledes til det ! :-)
Avatar billede jokerper Nybegynder
12. maj 2007 - 14:46 #23
kan man ikke bare skrive:

www.mitdomæne.dk/login.php

så vises siderne.

Hvor meget om ville du lave?

Har du noget som jeg kan tilbede mig.
Avatar billede leif Seniormester
12. maj 2007 - 14:47 #24
Teoretisk burde du ikke kunne, man jeg synes ikke den måde det er lavet på er sikkert !
Avatar billede leif Seniormester
12. maj 2007 - 14:48 #25
Jeg ville lave det sådan at du har 1 fil som du inkluderer i de filer som skal være beskyttet
Avatar billede jokerper Nybegynder
12. maj 2007 - 15:18 #26
det kan jeg godt vente på.

<Jeg har ikke tid nu, men hvis du vil have det vil jeg gerne lave det anderledes til det ! :-)>
Avatar billede jokerper Nybegynder
13. maj 2007 - 11:16 #27
Leif <> jeg har fundet noget selv, så hvis du lægger et svar, tak.
Avatar billede leif Seniormester
13. maj 2007 - 11:17 #28
Avatar billede leif Seniormester
13. maj 2007 - 11:18 #29
Det foregår på den måde at på de sider du vil beskytte der includer du tjeck.php
Avatar billede jokerper Nybegynder
13. maj 2007 - 12:41 #30
Jeg føler ikke det er sikkert nok, jeg loggede lige ind på bruger1.php.

Men tak for hjælpen.
Avatar billede leif Seniormester
13. maj 2007 - 13:24 #31
Ja, efter du var logget ind på Bruger.php først ik ?
Avatar billede leif Seniormester
13. maj 2007 - 13:26 #32
Du kunne gå direkte fra Bruger.php til Bruger1.php ik ?

Du kan da ikke gå direkte ind på: http://www.ljnet.dk/exp/777946/bruger1.php
Avatar billede jokerper Nybegynder
13. maj 2007 - 13:42 #33
jo, det kan jeg, jeg brugte lige det link som du har lagt ovenover. 13.26.54, undenom index.php. den gik lige ind.

--------------

Men jeg havde jo heller ikke brugernavn eller password.
Jeg højre klikkede bare og på filen så den hed bruger1.php og så først trykkede jeg på login knappen for at aktivere den så kopierede jeg lniket til browseren. og ind kom jeg. 30 sek.
Avatar billede leif Seniormester
13. maj 2007 - 13:49 #34
What ? Hvis jeg trykker på linket jeg smed så bliver jeg anmodet om Brugernavn og Password på alle mine maskiner ! :-(
Avatar billede leif Seniormester
13. maj 2007 - 13:51 #35
Damn, ja, jeg har vist sovet i timen da jeg har lavet det :-(
Avatar billede jokerper Nybegynder
13. maj 2007 - 13:53 #36
Ja, så tryk først på login knappen uden at indtaste noget (kun for at aktivere den).

Sæt dette link http://www.ljnet.dk/exp/777946/bruger1.php ind i browseren bagefter. tryk enter.
Avatar billede leif Seniormester
13. maj 2007 - 13:54 #37
Sådan så burde du ikke kunne uden du er logget ind !
Avatar billede jokerper Nybegynder
13. maj 2007 - 13:58 #38
Jamen, du havde jo ikke givet mig brugernavn og adgangskode. så på en eller anden måde kom jeg ind på under 30 sek.
Avatar billede jokerper Nybegynder
13. maj 2007 - 14:00 #39
<leif> Det var ikke for at hackke dig, men inden alt det arbejde, prøvede jeg bare sikkerheden. Men håber du blev glad for det oplyste.

Kan du muligvisfå eksperten til at slette spørgsmålet igen.
Avatar billede leif Seniormester
13. maj 2007 - 14:01 #40
jokerper -> Ja, i før, men hvis du læser hvad jeg skriver så burde du ikke kunne nu, hvis du har den originale browser åben så kan du måske da den holder SESSION, men lukker du og prøver på ny burde du ikke kunne !
Avatar billede leif Seniormester
13. maj 2007 - 14:03 #41
jokerper -> Nu bruger jeg et helt anderledes System normalt, så jeg er ligeglad, men som du læser har jeg ændret på filerne og derfor burde en ny som kommer ind ikke kunne det samme som du gjorde ! Hvorfor skulle Eksperten lukke spørgsmålet ?
Avatar billede jokerper Nybegynder
13. maj 2007 - 14:07 #42
pga. af din hjemmeside. Det var bare en tanke.
Avatar billede leif Seniormester
13. maj 2007 - 14:10 #43
Du får det til at lyde som om at jeg blev sur over at du testede sikkerheden, det er der vil ingen som nogensinde vil blive sur over

Kan jeg få dig til at prøve at se om du kan nu evt. hvis du lige ødelægger din Session først ved at lukke alle browser vinduer eller trykker på Log ud knappen ?
Avatar billede jokerper Nybegynder
13. maj 2007 - 14:18 #44
Ja, så ser det ud til at virke. <> Det er jo nok det skrevne sprog, som lettere bliver misforstået. :}
Avatar billede jokerper Nybegynder
13. maj 2007 - 14:23 #45
Uden brugernavn og 1234, så var jeg inde igen, er det meningen.
Avatar billede leif Seniormester
13. maj 2007 - 14:51 #46
Jeg tror jeg har kodet for meget i nat, så jeg er blevet Kodeblind, hvad med nu ?
Avatar billede jokerper Nybegynder
15. maj 2007 - 01:02 #47
leif - Kender du noget til .htaccess hvor sikkert det er?

Smider du også lige et svar - selv om hjælpen vist var delt. :p
Avatar billede leif Seniormester
15. maj 2007 - 07:16 #48
Det er skam sikkert nok hvis man laver det rigtigt ligesom alt andet !

Du har jo accepterer mit svar så jeg kan da ikke smide et nyt :-)
Avatar billede leif Seniormester
15. maj 2007 - 07:17 #49
Men kunne du logge ind uden brug af både Brugernavn og Password til sidst på http://www.ljnet.dk/exp/777946/
Avatar billede jokerper Nybegynder
15. maj 2007 - 10:03 #50
Nej, det virker nu!
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