Avatar billede mccookie Seniormester
25. februar 2006 - 23:26 Der er 17 kommentarer og
2 løsninger

Login, hvor et vindue åbnes på link og data sendes til åbner win

Hejsa

Jeg er igang med at lave et login script og selve scriptet er for sådan færdigt!

Dog mangler jeg hjælp til at løse følgende problem:

Bruger skal ved klik åbne loginformen ved at trykke på et link, denne åbner et nyt window. Data indtastes og der trykkes submit, loginvindue lukkes.
Action sker i det vindue som åbner login vinduet......

Det skal virker i IE og Firefox....

Håber nogen kan hjælpe...

En brugbar løsning udløser gerne 200 point....
Avatar billede coderdk Praktikant
26. februar 2006 - 01:27 #1
Prøv at skrive dette ud i vinduet, når brugeren har logget ind korrekt:

<script type="text/javascript">
  window.onload = function () {
    op.location.reload(true);
    setTimeout("window.close()", 500);
  }
</script>

Har dog intet med PHP at gøre :P
Avatar billede roenving Novice
26. februar 2006 - 01:32 #2
Nok:

    opener.location.reload(true);

så !-)
Avatar billede coderdk Praktikant
26. februar 2006 - 01:53 #3
roenvig, doh! ja! jeg havde faktisk en linje ovenover:

<script type="text/javascript">
  var op = window.opener;
  window.onload = function () {
    op.location.reload(true);
    setTimeout("window.close()", 500);
  }
</script>

Men slettede den, men fik ikke lavet op.location om til window.opener.location ;P
Avatar billede mccookie Seniormester
26. februar 2006 - 12:26 #4
Kan jeg få jer jer til at lave et konkret eksempel?

Med de 3 respektive filer der skal til?

Index.php:
Loginform åbnes via link

Login.php
Loginform udfyldes og sendes til check
Loginvindue lukkes og data sendes til check.php og åbnes der hvor index.php blev åbnet.


Håber det kan lykkes...

Det skal som sådant både virke i IE og firefox
Avatar billede coderdk Praktikant
26. februar 2006 - 14:45 #5
Det vindue du åbner, din loginform, den skal vel POST'e til samme vindue, hvor du så checker om brugernavn/kode er korrekt. Hvis koden er korrekt, så skriver du bare det javascript ud, jeg har skrevet. Hvis ikke det var korrekt, så skriver du vel bare loginformen igen, sammen med en besked om at det var forkert.
Avatar billede mccookie Seniormester
26. februar 2006 - 16:23 #6
Prøver lige et eller andet ;) og vender tilbage ;)
Avatar billede mccookie Seniormester
26. februar 2006 - 16:51 #7
Min index.php

<?php if(isset($_SESSION['login_pass'])) {

echo "HEJSA";

}

?>

<html>
<head>
<title>Hovedvindue</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


</head>
<body>


Du skal logge ind kammerat........<br />

<a href="java script:win=window.open('login.php', 'login', 'copyhistory=yes, resizable=yes,
height=200,width=275,top=180,left=200,screenY=200,screenX=200');win.focus();">&nbsp;Login</a>

</body>
</html>

Min check.php

<?php

$brugernavn = $_REQUEST['brugernavn'];
$password  =$_REQUEST['kodeord'];

if(isset($brugernavn)) {
$_SESSION['login_pass'] = "1";

echo "Login passed.... ";
echo "<br />";
echo "...om et øjeblik viderestilles du :)";
echo "
<script type=\"text/javascript\">
  var op = window.opener;
  window.onload = function () {
    op.location.reload(true);
    setTimeout(\"window.close()\", 2500);  }
</script>"; }

?>

Den tjekker så i loginvinduet og det er også fint nok.......men jeg forsøger jo så att sætte en session i check.php. Den gemmes jo ikke til hovedvinduet og det er nemlig tricket.......

Er det nogen snedig måde at komme uden om det??
Avatar billede coderdk Praktikant
26. februar 2006 - 17:49 #8
Har du ikke glet session_start() øverst i begge filer?
Avatar billede mccookie Seniormester
26. februar 2006 - 17:51 #9
Hvis der er noget man bliver blind på, så er det s... da øjnene
Avatar billede mccookie Seniormester
26. februar 2006 - 18:10 #10
Jamen.......VI er her......det virker i Firefox, IE og det er så som det skal være....

Smid nogle svar
Avatar billede coderdk Praktikant
26. februar 2006 - 18:12 #11
Ok :)
Avatar billede mccookie Seniormester
28. februar 2006 - 18:10 #12
Hmm....er stødt ind i problem!

www.satirepartiet.dk/login

Jeg har en idé om at kunne bruge det på mange sider, ved at inkludere det hele via nogle få linier på hver side.
Jeg regner endvidere med 3 kategorier af brugere 1,2,3

Men eks. er som følger.....

Brugeren vil åbne index.php

Der bliver der sat en variabel i en session som hedder
$_SESSION['site_auth_type'] = "1";

Derefter bliver det testet om brugeren er logget ind og har de rette brugeradgange....

Har bruger ikke dette åbnes der en side, i sammen vindue, som fortæller brugeren at denne skal logge ind. Brugeren skal trykke på et link som laver et vindue med en form til brugerdata.....

I dette vindue eksisterer min SESSSION ikke....kan det omgås eller?
Avatar billede coderdk Praktikant
28. februar 2006 - 19:43 #13
Jeg forstår ikke helt idéen i at lave et nyt vindue til at logge ind - Hvorfor ikke bare bruge den aktuelle side, som alle andre - Så er det nemt at opnå, præcist hvad du vil...

Hvis du ikke kan tilgå din $_SESSION fra vinduet, må det være fordi at session'en ikke er startet?
Avatar billede mccookie Seniormester
28. februar 2006 - 20:11 #14
SESSION er startet......

Tricket er at når brugeren logger ud, så er der ikke andre der lige kan trykke tilbage og sende postdata igen.

Derfor.......jeg har prøvet alt....men posttdata kan altid sendes igen....
Avatar billede coderdk Praktikant
28. februar 2006 - 20:40 #15
Ikke, hvis du bruger header('location: ' . $_SERVER['REQUEST_URI'] )
Det er vist sådan eksperten gør ;)
Avatar billede mccookie Seniormester
28. februar 2006 - 20:47 #16
Øh... coderdk..... forstår dig ikke helt og måske....

Jeg har en form som man udfylder og den sender det til validering i et script osv. osv.
Avatar billede mccookie Seniormester
28. februar 2006 - 20:59 #17
Jeg er selvfølig villig til at smide point efter et svar selvom spm er lukket!
Avatar billede coderdk Praktikant
28. februar 2006 - 21:28 #18
Hvis du i det script der modtager din <form> laver en header('location') når du er færdig med at validere, uanset om det gik godt eller dårligt, vil man ikke kunne trykke tilbage.

Med andre ord:

test.php:
<form method="post" action="test2.php">
    <input type="submit" value="Check det!">
</form>

test2.php:
<?php
    header('location: test3.php');
    exit;
?>

test3.php:
Hejsa!

Når du trykker "Check det!" POST'er den til test2.php som redirecter dig til test3.php - Men du kan ikke gå tilbage til test2.php - Når du går tilbage når du til test.php
Avatar billede mccookie Seniormester
28. februar 2006 - 21:35 #19
Det betyder at jeg at jeg slipper alt det der javascript mv.

Oki....jeg vil prøve det....

Mit problem var nemlig at man kunne trykke tilbage og så lå postdata bare og grinende
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