Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

login-fomular

41 views
Skip to first unread message

hanslo...@gmail.com

unread,
Oct 20, 2012, 12:25:50 PM10/20/12
to
jeg er i gang med at lave en login-formular og jeg har følgende problem.

Når jeg logger ind skal jeg sendes videre til en php-fil som alene validere om log-in er valid. Dette fungere fint. Jeg kan også få php til at sende retur/eller videre, afhængig af valid log-in. problemet opstår når jeg skal include den side som jeg vil logge ind på. (include i index)

Måske vil det være en ide at lægge validerings-script og "ønskede side" i samme fil!!??

Jeg har bl. a. arbejdet med følgende koder:

<?php

$script_name = $_SERVER['SCRIPT_NAME'];
if(isset($_POST['submit'])){
include 'indlaeg.php';
}else{
include $side.'.php';
}


?>

Hilsen

Hans Lommeuld

Karl Erik Christensen

unread,
Oct 20, 2012, 1:08:53 PM10/20/12
to
En måde kunne være at dit validerings script udførte flg:

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

Karl Erik.

--
http://dmwebdesign.dk/karlerik/

hanslo...@gmail.com

unread,
Oct 21, 2012, 6:27:41 AM10/21/12
to
Mit problem er ikke login-funktion.

Problemet lægger i at jeg ikke kan includere den side jeg ønsker at logge ind på.

1. jeg har en loginformular i fil nr. 1

2. den sender videre til fil nr. 2 som udelukkende validere som så sender enten retur til fil nr. 1 eller til 3. fil nr. 3 hvis adgangskode er valid.

Birger Sørensen

unread,
Oct 21, 2012, 12:35:26 PM10/21/12
to
hanslo...@gmail.com sendte dette med sin computer:
8X
>
> Mit problem er ikke login-funktion.
>
> Problemet lægger i at jeg ikke kan includere den side jeg ønsker at logge ind
> på.
>
> 1. jeg har en loginformular i fil nr. 1
>
> 2. den sender videre til fil nr. 2 som udelukkende validere som så sender
> enten retur til fil nr. 1 eller til 3. fil nr. 3 hvis adgangskode er valid.

problemet *ligger* måske i at du ikke skal includere, men redirekte.
Men det kommer helt an på, hvordan du har bygget det op - og det giver
din kode-snipper ikke meget indblik i.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
Utils http://sdccms.dk/ordbog/ http://sdccms.dk/mailfriend/
http://bredelund.dk CMS som det var meningen et sådant skulle være


Anders Wegge Keller

unread,
Oct 21, 2012, 3:34:30 PM10/21/12
to
Karl Erik Christensen <no...@none.invalid> writes:

> En måde kunne være at dit validerings script udførte flg:
>
> if (valid_bruger) {
> header("Location: bruger_side.php");
> } else header("Location: login.php");

Nej!

Før eller siden kommer den url ud i verden via en referer log, en
eller anden statistik-opsamlende toolbar, et bookmark der bliver
sendt, eller en anden måde jeg ikke har fantasi til at forestille mig
nu.

Og når det sker, er sikkerheden væk. Sådan en redirect der giver ikke
mere sikkerhed end blot at gå direkte til en side med et opskurt navn,
dvs. praktisk taget ingen, set over passende lang tid.

--
/Wegge

Leder efter redundant peering af dk.*,linux.debian.*

Karl Erik Christensen

unread,
Oct 21, 2012, 4:32:08 PM10/21/12
to
Det er klart at der ikke bare skal viderestilles, men følges op med
yderligere foranstaltninger, f.eks. i form af session variable.
De steder hvor jeg har log-in, kan man ikke bare gå til destinationen,
så bliver man afvist.

Men så vidt jeg forstår spørgsmålet, er problemet at komme videre fra en
log-in side.

Erik Ginnerskov

unread,
Oct 21, 2012, 4:47:28 PM10/21/12
to
hanslo...@gmail.com wrote:
> jeg er i gang med at lave en login-formular og jeg har følgende
> problem.
>
> Når jeg logger ind skal jeg sendes videre til en php-fil som alene
> validere om log-in er valid. Dette fungere fint. Jeg kan også få php
> til at sende retur/eller videre, afhængig af valid log-in. problemet
> opstår når jeg skal include den side som jeg vil logge ind på.
> (include i index)

Er det sådan noget, du leder efter?

http://hjemmesideskolen.dk/scripts/phpmysql/

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk

hanslo...@gmail.com

unread,
Oct 22, 2012, 11:54:12 AM10/22/12
to
Den lørdag den 20. oktober 2012 18.25.51 UTC+2 skrev hanslo...@gmail.com:
Mine grundkoder i de tre filer følger:
Følgende virker fint, det kunne dog være fint med includering.


Document 1 index_side

<form action="code_login.php" method="POST" >
Brugernavn:
<input type="text" name="brugernavn" />
Password:
<input type="password" name="password" />
<input type="submit" value="Log in" />
</form>

Document 2 valideringsside

<?php
session_start();
$brugernavn = md5(trim($_POST['brugernavn']));
$password = md5(trim($_POST['password']));

if($brugernavn == "d231e9a1w3ade5b441734ad3e253ac64a6" && $password == "cd896bb177sedc2fr38fbfd1a6f13d98e1"){
$_SESSION['auth'] = 2;
header('location:insert.php');
}else{
header('location:index.php');
}
?>

Document 3 - Det jeg ønsker at includere. Målside ved valid login

<form action="code_insert.php" method="POST" >
<label>
<input type="text" name="overskrift" />
</label>
<textarea name="tekst" ></textarea><br />
<input type="submit" value="INDSEND" />
<input type="reset" value="SLET" />
</form>

Birger Sørensen

unread,
Oct 22, 2012, 12:31:48 PM10/22/12
to
hanslo...@gmail.com udtrykte præcist:
Slå de første 2 filer sammen. Noget i retning af :

index.php :
<?php
if (isset($_POST['brugernavn'])) {
session_start();
$brugernavn = md5(trim($_POST['brugernavn']));
$password = md5(trim($_POST['password']));
if($brugernavn == "d231e9a1w3ade5b441734ad3e253ac64a6" && $password ==
"cd896bb177sedc2fr38fbfd1a6f13d98e1"){
$_SESSION['auth'] = 2;
include 'insert_side.php';
}else{
echo'<form action="index.php" method="POST" >
Brugernavn:
<input type="text" name="brugernavn" />
Password:
<input type="password" name="password" />
<input type="submit" value="Log in" />
</form>';
}
}
?>

insert_side.php:
<?php
if ($_SESSION['auth'] == 2) {
echo '<form action="code_insert.php" method="POST" >
<label>
<input type="text" name="overskrift" />
</label>
<textarea name="tekst" ></textarea><br />
<input type="submit" value="INDSEND" />
<input type="reset" value="SLET" />
</form>';
}else{
header('location:index.php');
}
?>

Læg mærke til at insert_side.php checker for login, så man ikke kan
kalde siden direkte.
Går ud fra, at du har andre steder du vil includere den - ellers kan
den faktisk sættes i index.php efter validering af login.

Karl Erik Christensen

unread,
Oct 22, 2012, 2:00:35 PM10/22/12
to
Den 22-10-2012 18:31, Birger Sørensen skrev:
> <?php
> if ($_SESSION['auth'] == 2) {
> echo '<form action="code_insert.php" method="POST" >
> <label>
> <input type="text" name="overskrift" />
> </label>
> <textarea name="tekst" ></textarea><br />
> <input type="submit" value="INDSEND" />
> <input type="reset" value="SLET" />
> </form>';
> }else{
> header('location:index.php');
> }
> ?>

Det er vel vigtigt at pointere, at siden code_insert.php også skal udføre:

if ($_SESSION['auth'] == 2) {
behandling_af_data
}else{
header('location:index.php');
}
?>

ellers er det muligt at gå direkte til code_insert.php

Birger Sørensen

unread,
Oct 22, 2012, 5:16:43 PM10/22/12
to
Karl Erik Christensen sendte dette med sin computer:
Det har du helt ret i...

Karl Erik Christensen

unread,
Oct 22, 2012, 6:21:26 PM10/22/12
to
Den 22-10-2012 23:16, Birger Sørensen skrev:
> Det har du helt ret i...

På min social log-in side

http://dmwebdesign.dk/karlerik/test/F_T_Login/index.php

foregår alt det sjove på
http://dmwebdesign.dk/karlerik/test/F_T_Login/home.php

Men der sættes netop en session variable når brugeren logger ind.
Hvis denne variabel ikke er sat, kan home.php ikke tilgås, men brugeren
sendes til index.php i stedet.
Denne session destroy'es og kill'es godt og grundigt, når siden forlades.

En session kan dog "stjæles", men så er vi ovre i noget øst-lande
halløj, og siden skal sikkert være betydelig mere interessant end min,
for at nogen gider prøve :-)

hanslo...@gmail.com

unread,
Oct 23, 2012, 3:48:35 PM10/23/12
to
Den lørdag den 20. oktober 2012 18.25.51 UTC+2 skrev hanslo...@gmail.com:
Jeg vil kigge nærmere på alle Jeres svar i løbet af weekenden og vender tilbage med et svar, hvis der er noget af det jeg kan bruge.

Hilsen Hr Lommeuld

hanslo...@gmail.com

unread,
Oct 28, 2012, 5:25:25 AM10/28/12
to
Min løsning er at jeg checker om $_SESSION er sat.

ex. i seudo-kode

hvis (er sat $_SESSION ['auth']){

inkluder side1;

}ellers{

inkluder side2;

}

Og det virker fint.

Hilsen

Hans Lommeuld
0 new messages