Avatar billede lsskaarup Nybegynder
13. januar 2003 - 23:15 Der er 11 kommentarer og
1 løsning

target ved header ?

Jeg har 2 frames. Man logger ind i det ene, og er dette succesfuldt, skal man kunne se noget i den andet frame. Hvordan gøres dette, kan man sætte noget lignede target ind i Location ?
Avatar billede angam Nybegynder
13. januar 2003 - 23:19 #1
Nej, for det er jo frame1 der beder om en ny php-side - og det er dér php'ens output vil blive afleveret til.
Hvorfor ikke bare ændre lokation fra frame1, a'la:
[frame1.php]
<form name=frame1form action=frame2.php method=post>
<input type=text name=username value="">
<input type=password name=password value="">
<input type=submit value="Login">
[...]
</form>

[frame2.php]
(Check for Login)
Avatar billede lsskaarup Nybegynder
13. januar 2003 - 23:28 #2
Mener du at kode for selv tjekket skal lægges i frame2, så det er den der får outputtet.
Avatar billede angam Nybegynder
13. januar 2003 - 23:31 #3
Ja, det var ihvertfald det jeg lagde op til. Grunden er at du (sandsynligvis) har resten af ASP-koden i frame2 i forvejen.

Du kan da også sagtens lægge den i frame1, og så via javascript reloade /redirecte frame2 til hvor du vil.

Lettere pseudokode:
Ff(login=true) Then
    Response.Write("<script>window.frame2.document.location.href='login_ok.asp';</script>")
End If
Avatar billede lsskaarup Nybegynder
13. januar 2003 - 23:38 #4
Den sidste løsning tiltaler mig meget mere, men får dog en fejl om at det er et kald til en ikke defineret funktion. Er det fordi jeg skal lave en funktion som hedder response, odder was ?
Avatar billede angam Nybegynder
13. januar 2003 - 23:51 #5
Nej, det er nok mere fordi det var pseudokode (javascriptet var ikke helt korrekt). Jeg ved ikke hvad dine frames hedder (her blot kaldet frame1 og frame2) - men syntaxen er
<script language=javascript>top.frame2.document.location.href='login_ok.asp';</script>")
Avatar billede angam Nybegynder
14. januar 2003 - 00:01 #6
Ok - min forklaring er vist lidt bøvlet. jeg har lavet et eksempel - det er vist lidt nemmere ;-)

Fil 1: (index.html)
<html>
<head></head>
<frameset rows="180,*">
  <frame src="frame1.asp" name="frame1">
  <frame src="frame2.asp" name="frame2">
</frameset>
</html>

Fil 2: (frame1.asp)
<%
UserName = Request("username")
'Godkend username+password - vi snyder lidt her:
if(UserName="test") Then
  Response.Write("<script language=javascript>top.frame2.document.location.href='login_ok.asp';</script>")
End If
%>
<html>
<head>
<title>login</title>
</head>
<body>
<form name=testform action="" method="get">
<input type=text name=username value=""><br>
<input type=password name=password value=""><br>
<input type=submit value="Submit">
</form>
</body>
</html>


Fil 3: (frame2.asp)
<html>
<head>
</head>
<body>
FRAME 2
</body>
</html>

Fil 4: (login_ok.asp)
<html>
<head>
</head>
<body>
Login OK!
</body>
</html>
Avatar billede lsskaarup Nybegynder
14. januar 2003 - 00:11 #7
Okay, jeg synes jeg har gjort som du siger men det virker ikke. Min kode er som følger:

if($HTTP_POST_VARS[logind]){
    if($HTTP_POST_VARS[brugernavn]=="" && $HTTP_POST_VARS[adgangskode]==""){
        $tekst = "Du har ikke indtastet et brugernavn og en adgangskode";
    } else if($HTTP_POST_VARS[brugernavn]==""){
        $tekst = "Du har ikke indtastet et brugernavn";
    } else if($HTTP_POST_VARS[adgangskode]==""){
        $tekst = "Du har ikke indtastet en adgangskode";
    } else {
        $findbruger = mysql_query("Select * from TestLogin where bruger='$HTTP_POST_VARS[brugernavn]'
                                    and kode='$HTTP_POST_VARS[adgangskode]'");
        $numbruger = mysql_num_rows($findbruger);
        if($numbruger >'0') {
            $HTTP_SESSION_VARS[valid] = '1';
            //header("Location: 'mainframe.html' target='mainframe'");
            Response.Write("<script language=javascript>top.mainframe.document.location.href='mainframe.html';</script>");
        } else{
            $tekst = "Det indtastede brugernavn og adgangskode er ikke korrekt<br>Prøv venligst igen";
        }
    }
}

Mine frames hedder log-in og mainframe, det siger nok sig selv hvor log ind ligger, og hvor jeg gerne vil have resultatet. Siden som jeg skal kalde hedder pt. mainframe.html.
Avatar billede lsskaarup Nybegynder
14. januar 2003 - 00:13 #8
Fejlmeddelelsen er

Fatal error: Call to undefined function: write() in /usr/www/larsskaarup_dk/public_html/Test/log-in.php on line 20

Linie 20 er Response.Write
Avatar billede angam Nybegynder
14. januar 2003 - 00:17 #9
Øøhmm - undskyld. Det er mig. Igen-igen.
jeg ved ikke hvorfor jeg havde fået den idé at det var lavet i ASP. Response.Write() svarer til echo() - erstat denne, og så burde du være klar igen.

(Faktisk er det lidt dobbelt-snyd - jeg lavede mine prøve-eksempler i php først og konverterede så over til ASP ... argh!)
Avatar billede lsskaarup Nybegynder
14. januar 2003 - 00:19 #10
Jeg havde godt set du skrev ASP nogle steder, men troede kun det var de side som du kaldet. Kigger lige om det virker
Avatar billede angam Nybegynder
14. januar 2003 - 00:22 #11
Heh ja, lidt pinligt. fra og med andet svar begynder jeg at snakke asp .. christ! Sig til hvis jeg skal poste eksemplerne i php istedet :-)
Avatar billede lsskaarup Nybegynder
14. januar 2003 - 00:26 #12
Jeg underende mig godt nok lidt, men tænkte at du bare var træt lige som mig.

Du behøves ikke at lave noget i php, det virker med php.

Tak for hjælpen
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