webForumDet fria alternativet

header("Location: index.php"); - fråga

5 svar · 821 visningar · startad av norra54

norra54Medlem sedan sep. 2003112 inlägg
#1

Hej,

Använder mig av Webdesignskolans enkla login-scrip i php, se nedan.
Formuläret (anv.namn o lösen) visas i ett pop-up-fönster och i.o.m. det visas den skyddade sidan tyvärr också i samma pop-up-fönster.
Jag önskar att sidan i.st. visas i ett nytt webläsar-fönster och kanske t.o.m. att pop-up:en stängs.

Hur löser man det måntro?

<?php  
// startar sessionen 
session_start();  

// ange ditt användarnamn och lösenord i variablerna 
$anvandarID = "test"; 
$losenord = "test"; 

if (isset($_POST["anvandarID"]) && isset($_POST["losenord"])) {  
    // kontrollerar om användarnamn och lösenord är rätt 
    if ($_POST["anvandarID"] === $anvandarID && $_POST["losenord"] === $losenord) {  
    // ange den session som lagrar rätt inloggningsuppgifter  
    $_SESSION["inloggning"] = true;  
    // efter rätt inloggning förflyttas användaren till den skyddade sidan  
    header("Location: index.php");  
    exit;  
    }  
        // om användarnamn och lösenord är fel lagras meddelandetexten i variabeln 
        else {$felmeddelande = "Du har angivit fel användarnamn eller lösenord!";}  
} 
?>
SPiNMedlem sedan mars 20005 832 inlägg
#2

På sidan där du öppnar pop-upfönstret kan du tilldela ett namn, som du sedan använder som "target" för formuläret i pop-upfönstret.

[b]OpenLogin.php[/b]
<html>
<head>
<script type="text/javascript">
window.name = "parentWindow";
</script>
</head>
<body>
<!-- Kod för att öppna ditt pop-up //-->
...
[b]PopUp.php[/b]
<html>
...
<form action="login.php" method="post" target="parentWindow" onsubmit="setTimeout('self.close()', 500);">
...

Nu postar formuläret informationen till 'login.php', via huvudfönstret och stänger sig självt efter en halv sekund.

F.ö. passar den här tråden bättre i JavaScript-forat, då frågan inte kan lösas med PHP.

PeddaMedlem sedan juni 20004 880 inlägg
#3

Flyttas från PHP

norra54Medlem sedan sep. 2003112 inlägg
#4

Hur skulle det då se ut, om:

<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Eric King (eric_andrew_king@hotmail.com) -->
<!-- Web Site: http://redrival.com/eak/ --><!-- This script and many more are available free online at The JavaScript Source!! http://javascript.internet.com -->

function NewWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;

// OBS! ingen radbrytning i texten nedan
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
//slut på område utan radbrytning

win = window.open(mypage, myname, winprops)
if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}
</script>

resp.

<a href="200901/login.php" onclick="NewWindow(this.href,'name','320','180','no');return false;">Länk</a>
Peter SMedlem sedan dec. 20025 484 inlägg
#5
<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Eric King (eric_andrew_king@hotmail.com) -->
<!-- Web Site: http://redrival.com/eak/ --><!-- This script and many more are available free online at The JavaScript Source!! http://javascript.internet.com -->

window.name = "mainWin";

function NewWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;

// OBS! ingen radbrytning i texten nedan
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
//slut på område utan radbrytning

win = window.open(mypage, myname, winprops)
if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}
</script>
<a href="200901/login.php" onclick="NewWindow(this.href,'name','320','180','no');return false;">Länk</a

I login.php:

<form target="mainWin" onsubmit="window.close()">
  Anv.namn: <input>
  Lösenord: <input>
  ...
</form>
norra54Medlem sedan sep. 2003112 inlägg
#6

Tack, det ser jättebra ut och fungerar!

Dock;

Anger jag fel lösenord får jag upp inloggn.formuläret i ett stort, nytt fönster.
Jag vill att pop-up:en ska ligga kvar och php-felmedd. ("Du har angivit fel osv..." ska visas i pop-up:en.

Går det att göra så?

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb