Gå til innhold

Hvordan lage en login-side som er trygg + enkel?


Anbefalte innlegg

Jeg kan så å si ingen ting om PHP og MySQL. Er det noen som vet hvordan man lager en enkel login-boks som fører til login-området på en hjemmeside? Og slik at når man kommer til login-området at det ikke er så enkelt som å bare kopiere linken og gå inn på login-området uten å ha skrevet passord/brukernavnet først??

 

Jeg ønsker altså en enkel login-mulighet. Ikke noe sånn som registrering og flere bruker osv. Kort sagt at man trenger kun å skrive inn brukernavn og passord for så å komme til "medlemsområdet". Man må heller ikke kunne lese passordet og brukernavnet i kilde-koden.

 

*jeg bruker dreamweaver 8*

 

noen som kan hjelpe?? :ermm::ohmy:

Endret av karryboh
Lenke til kommentar
Videoannonse
Annonse

<?php

session_start();

function innlogget() {
echo("<h2>Du er logget inn!</h2>");

// Kjør f.eks include her..
// Husk session_start(); og if($_SESSION['innlogget'] !== 1) { } i de filene du inkluderer.

}

if($_SESSION['innlogget'] !== 1) {
if(empty($_POST['submit'])) {
echo("<form action=\"\" method=\"post\">
<table><tr><td>Brukernavn:</td><td><input type=\"text\" name=\"brukernavn\" /></td></tr>
<tr><td>Passord:</td><td><input type=\"password\" name=\"passord\" /></td></tr>
<tr><td></td><td><input type=\"submit\" value=\"Logg inn\" name=\"submit\" /></td></tr>
</table>
");
} else {

$brukernavn  = "admin"; // Brukernavn
$passord  = "md5pw"; // Passord; Md5 eller ikke.. whatever

// Skjekker om brukernavn og passord stemmer med variablene
if(strip_tags($_POST['brukernavn']) == $brukernavn) {
if(strip_tags($_POST['passord']) == $passord or $_POST['passord'] == md5($passord)) {

// Setter sessions og starter innlogget funksjon.
$_SESSION['brukernavn'] = $brukernavn;
$_SESSION['innlogget'] = 1;
innlogget();

} else {
echo("Feil passord!");
}
} else {
echo("Feil brukernavn!");
}
}
} else {
innlogget();

}

?>

 

Skrevet i farten, så er ikke testet skikkelig, uansett er det bare å spørre :)

Endret av goggen90
Lenke til kommentar
<?php

session_start();

function innlogget() {
echo("<h2>Du er logget inn!</h2>");

// Kjør f.eks include her..
// Husk session_start(); og if($_SESSION['innlogget'] !== 1) { } i de filene du inkluderer.

}

if($_SESSION['innlogget'] !== 1) {
if(empty($_POST['submit'])) {
echo("<form action=\"\" method=\"post\">
<table><tr><td>Brukernavn:</td><td><input type=\"text\" name=\"brukernavn\" /></td></tr>
<tr><td>Passord:</td><td><input type=\"password\" name=\"passord\" /></td></tr>
<tr><td></td><td><input type=\"submit\" value=\"Logg inn\" name=\"submit\" /></td></tr>
</table>
");
} else {

$brukernavn  = "admin"; // Brukernavn
$passord  = "md5pw"; // Passord; Md5 eller ikke.. whatever

// Skjekker om brukernavn og passord stemmer med variablene
if(strip_tags($_POST['brukernavn']) == $brukernavn) {
if(strip_tags($_POST['passord']) == $passord or $_POST['passord'] == md5($passord)) {

// Setter sessions og starter innlogget funksjon.
$_SESSION['brukernavn'] = $brukernavn;
$_SESSION['innlogget'] = 1;
innlogget();

} else {
echo("Feil passord!");
}
} else {
echo("Feil brukernavn!");
}
}
} else {
innlogget();

}

?>

 

Skrevet i farten, så er ikke testet skikkelig, uansett er det bare å spørre :)

8498003[/snapback]

 

Takk! men hva gjør jeg så med dette? plasserer det der jeg skal ha login-boksen?? skal jeg ikke legge inn noen koder på medlemssiden?

 

>> jeg har prøvd å sette inn koden, men den ser ikke ut til å funke..?? hva nå?

Endret av karryboh
Lenke til kommentar

Hei!

 

Omtrent samme spørsmål er stilt i en annen tråd nylig, så jeg poster mitt login-script her jeg.

 

Hei

 

Dette scriptet vil jeg tro skal passe til det du ønsker:

 


<?php
ob_start();
session_start();

$password = sha1($_POST['password'];
$login_pass = sha1("passordet for å komme inn på siden");

if($password != $login_pass)
{
   header("Location: login.html");
   exit;
}

else
{
   $_SESSION['online'] = TRUE;
   header("Location: startside.php");
}

ob_end_flush();

?>

 

Så legger du dette øverst i alle filer du vil at folk må være innlogget for å kunne se:

 

<?php
ob_start();
session_start();

if($_SESSION['online'] != TRUE)
{
  header("Location: login.html");
  exit;
}

?>

//HTML her..

 

Lenke til kommentar
Hei!

 

Omtrent samme spørsmål er stilt i en annen tråd nylig, så jeg poster mitt login-script her jeg.

 

Hei

 

Dette scriptet vil jeg tro skal passe til det du ønsker:

 


<?php
ob_start();
session_start();

$password = sha1($_POST['password'];
$login_pass = sha1("passordet for å komme inn på siden");

if($password != $login_pass)
{
   header("Location: login.html");
   exit;
}

else
{
   $_SESSION['online'] = TRUE;
   header("Location: startside.php");
}

ob_end_flush();

?>

 

Så legger du dette øverst i alle filer du vil at folk må være innlogget for å kunne se:

 

<?php
ob_start();
session_start();

if($_SESSION['online'] != TRUE)
{
  header("Location: login.html");
  exit;
}

?>

//HTML her..

 

8498037[/snapback]

 

dette funker sikkert, men kan du forklare hvordan du går frem for å sette det inn og hvilke sider man må opprette? :innocent:

Lenke til kommentar
La oss si du har en form , som sender dataene til filen login.php.

 

Lagre den første koden min i filen login.php , og i hver fil du vil at man skal ha passord for å kunne se, legger du den andre koden min.

8498213[/snapback]

 

Skal jeg legge den første koden i en blank PHP-side? hvordan er det med form? Skal jeg sende dataen i form'en til den tomme siden login?? er dette skriptet for både brukernavn og passord??

 

>> prøvde dette men det gikk an å komme inn på medlemssiden med alle verdens passord + at jeg fikk beskjed om at jeg måtte lagre/åpne PHP dokumentet... hva nå??

Endret av karryboh
Lenke til kommentar

<?php

$user = 'brukernavn';
$passwd = 'hemmelig passord';

// spiller ikke stor rolle om passordet er klartekst. kilden vil ikke være synlig med mindre php modulen til serveren crasher

session_start();

// behandle innlogging
if(isset($_POST['submit_login']))
{
  if(!strcmp($passwd, $_POST['password']) && !strcmp($user, $_POST['username'])) $_SESSION['innlogget'] = true;
  header("Location: ".$_SERVER['PHP_SELF']);
}

// hvis ikke innlogget, logge inn
if(!isset($_SESSION['innlogget']))
{
  echo "
<html>
<head><title>Logg inn</title></head>
<body>
<table>
<form action='' method='post'>
<tr><td>Brukernavn:<td><input type='text' name='username' value=''>
<tr><td>Passord:<td><input type='password' name='password' value=''>
<tr><td align='center' colspan='2'><input type='submit' name='submit_login' value='Logg inn'>
</form>
</body>
</html>
";

// hvis ikke ikke innlogget altså innlogget, vis skjult side
} else {

echo <<< EOE

<html>
<head>
<title></title>
</head>
<body>

skjult side her.

</body>
</html>

EOE;
}
?>

 

edit: burde virke nå

Endret av grimjoey
Lenke til kommentar
<?php

$user = 'brukernavn';
$passwd = 'hemmelig passord';

// spiller ikke stor rolle om passordet er klartekst. kilden vil ikke være synlig med mindre php modulen til serveren crasher

session_start();

// behandle innlogging
if(isset($_POST['submit_login']))
{
  if(!strcmp($passwd, $_POST['password']) && !strcmp($user, $_POST['username'])) $_SESSION['innlogget'] = true;
  header("Location: ".$_SERVER['PHP_SELF']);
}

// hvis ikke innlogget, logge inn
if(!isset($_SESSION['innlogget']))
{
  echo "
<html>
<head><title>Logg inn</title></head>
<body>
<table>
<form action='' method='post'>
<tr><td>Brukernavn:<td><input type='text' name='username' value=''>
<tr><td>Passord:<td><input type='password' name='password' value=''>
<tr><td align='center' colspan='2'><input type='submit' name='submit_login' value='Logg inn'>
</form>
</body>
</html>
";
} else {

echo <<< EOE

<html>
<head>
<title></title>
</head>
<body>

skjult side her.

</body>
</html>

EOE;
}
?>

 

edit: burde virke nå

8498402[/snapback]

 

jeg har prøvd koden, men når jeg lastet den opp kom det en slik boks jeg ønsker med brukernavn, passord og login, men hvorfan får jeg den til å funke?? forresten kom det denne teksten under boksen: "; } else { echo <<< EOE login.php EOE; } ?> Må jeg ikke gjøre noe med medlemssidene?? slik at man ikke kan bare kopiere linken og se siden uten passord??

 

:hmm:

Endret av karryboh
Lenke til kommentar

prøv å cutnpaste koden min igjen. mulig du ikke fikk med deg de siste endringene.

 

og test den uten endring. så kan du legge inn endringer etter at du vet det fungerer.

 

edit:

 

skal du inkludere sider er det lettere for andre å komme inn på sidene en hvis du legger koden min i hver fil du vil skjule.

 

du kan lage en fil som inneholder brukernavn og passord variablene.

 

så inkluderer du den filen i toppen og fjerner brukernavn og passord variablene derfra

 

så legger du koden frem til den siste else { inn i begynnelsen på hver fil du vil skjule og } ?> i slutten av filene

Endret av grimjoey
Lenke til kommentar
er login.php noe du har skrevet?

 

for å inkludere en side må du bruke:

 

include('side.php');

 

og forøverig fjerne echo <<< EOE ... EOE;

8498485[/snapback]

 

 

Nå kom dette under:

 

"; // hvis ikke ikke innlogget altså innlogget, vis skjult side } else { skjult side her. EOE; } ?>

Endret av karryboh
Lenke til kommentar
prøv å cutnpaste koden min igjen. mulig du ikke fikk med deg de siste endringene.

 

og test den uten endring. så kan du legge inn endringer etter at du vet det fungerer.

 

edit:

 

skal du inkludere sider er det lettere for andre å komme inn på sidene en hvis du legger koden min i hver fil du vil skjule.

 

du kan lage en fil som inneholder brukernavn og passord variablene.

 

så inkluderer du den filen i toppen og fjerner brukernavn og passord variablene derfra

 

så legger du koden frem til den siste else { inn i begynnelsen på hver fil du vil skjule og } ?> i slutten av filene

8498536[/snapback]

 

jeg skjønner ikke helt dette?:S Kan du forklare hvilke sider jeg trenger. Jeg skal la folk logge inn på Index-siden, så skal de komme til medlemssiden. Hva skal jeg kalle medlemssiden (.php?). Hvordan får jeg at login-boksen fører til medlemssiden?? :(

Lenke til kommentar
tror jeg skjønner litt hva som skjer her. php er et server-side script. har du en php enabled web server? eller kjører du filene direkte fra disken?

8498572[/snapback]

 

jeg tester dem ved å laste dem opp for så å se dem i virkelig live. se spørsmål under..

Lenke til kommentar

du trenger ikke flere sider. koden min er både login side og innholdsside.

 

er det bare en medlemsside kopierer du bare innholdet fra den inn i den siste else {} i koden min.

 

...

<?php

...

// hvis ikke ikke innlogget ....

} else {

 

#echo <<< EOE ... EOE; fjernes

 

include('dinside.php');

 

}

?>

 

eller:

du kan lime inn siden

 

...

<?php

...

// hvis ikke ikke innlogget ....

} else {

 

echo <<< EOE

 

siden din limes inn her...

 

EOE;

 

}

?>

 

for å sjekke om du har php på serveren kan du jo laste opp en side som kun inneholder:

 

<?php die('jeg har php jippi.'); ?>

jeg har ikke php

Endret av grimjoey
Lenke til kommentar
du trenger ikke flere sider. koden min er både login side og innholdsside.

 

er det bare en medlemsside kopierer du bare innholdet fra den inn i den siste else {} i koden min.

 

...

<?php

...

// hvis ikke ikke innlogget ....

} else {

 

#echo <<< EOE ... EOE; fjernes

 

include('dinside.php');

 

}

?>

 

eller:

du kan lime inn siden

 

...

<?php

...

// hvis ikke ikke innlogget ....

} else {

 

echo <<< EOE

 

siden din limes inn her...

 

EOE;

 

}

?>

 

for å sjekke om du har php på serveren kan du jo laste opp en side som kun inneholder:

 

<?php die('jeg har php jippi.'); ?>

jeg har ikke php

8498651[/snapback]

 

Beklager men jeg skjønner ikke :S Kan du forklare stegvis hvordan det gjøres. fra starten av :( hvilke sider som skal opprettes osv.

Lenke til kommentar

det første du bør gjøre er å overbevise meg om at du har php på serveren.

 

det gjør du ved å lage og laste opp en fil:

 

test.php

<?php die('PHP virker'); ?>
php virker ikke

 

fortell meg resultatet

Endret av grimjoey
Lenke til kommentar
det første du bør gjøre er å overbevise meg om at du har php på serveren.

 

det gjør du ved å lage og laste opp en fil:

 

test.php

<?php die('PHP virker'); ?>
php virker ikke

 

fortell meg resultatet

8498716[/snapback]

 

Jeg lastet opp og så på siden. Jeg fikk beskjed om å åpne eller lagre PHP siden.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...