atlantyz
Erfahrenes Mitglied
Hallo zusammen,
ich habe ein kleines Javascript Problem, das ich einfach nicht gelöst bekomme:
Ich habe auf meiner Index- Seite ein Div, indem bei Drücken eines Knopfes ein Login- Formular geladen wird. Wenn ich mich nun einlogge, wird im Grunde die selbe Seite nochmal geladen und halt geprüft, ob die Daten korrekt eingegeben wurden. Wenn ja, dann werde ich weitergeleitet, wenn nein soll das gleiche Formular mit einer Fehlermeldung nochmal erscheinen.
So weit funktioniert das auch (in der Theorie). Aber, wenn ich meine Login- Daten eingebe und den Login- Button drücke, dann wird das Ergebnis nicht mehr in das Div geladen, sondern ich komme auf eine extra Seite, wo mir dann das Ergebnis (Login erfolgreich oder eben nicht) angezeigt wird.
Ich kann zwei Dinge: 1.ich kann ein Submit mit Javascript schicken (dann wird die Seite neugeladen, weil ja logischerweise im Action-Teil des Forms nur login.php drin steht).
2. ich könnte das Div nachladen. Dann mach ich aber kein Submit und die Daten werden nicht geprüft.
Ich bräuchte jetzt also ein Zwischending aus Punkt 1 und 2. Praktisch ein Submit, was im Action Teil des Forms in ein Div nachlädt oder sowas.
Ich geb euch hier nochmal ein bisschen Quellcode:
Das Div, in das das Login eingebunden wird (index- Seite):
Die komplette Login-Datei:
Und hier dann noch die Funktion Abschicken():
und link():
Ich hab schonmal in diversen Foren gestöbert, aber so richtig was gefunden habe ich nicht. Weil die meisten die Daten nicht nochmal auswerten, sondern einfach nur eine Seite nachladen.
Kann mir jemand helfen?
ich habe ein kleines Javascript Problem, das ich einfach nicht gelöst bekomme:
Ich habe auf meiner Index- Seite ein Div, indem bei Drücken eines Knopfes ein Login- Formular geladen wird. Wenn ich mich nun einlogge, wird im Grunde die selbe Seite nochmal geladen und halt geprüft, ob die Daten korrekt eingegeben wurden. Wenn ja, dann werde ich weitergeleitet, wenn nein soll das gleiche Formular mit einer Fehlermeldung nochmal erscheinen.
So weit funktioniert das auch (in der Theorie). Aber, wenn ich meine Login- Daten eingebe und den Login- Button drücke, dann wird das Ergebnis nicht mehr in das Div geladen, sondern ich komme auf eine extra Seite, wo mir dann das Ergebnis (Login erfolgreich oder eben nicht) angezeigt wird.
Ich kann zwei Dinge: 1.ich kann ein Submit mit Javascript schicken (dann wird die Seite neugeladen, weil ja logischerweise im Action-Teil des Forms nur login.php drin steht).
2. ich könnte das Div nachladen. Dann mach ich aber kein Submit und die Daten werden nicht geprüft.
Ich bräuchte jetzt also ein Zwischending aus Punkt 1 und 2. Praktisch ein Submit, was im Action Teil des Forms in ein Div nachlädt oder sowas.
Ich geb euch hier nochmal ein bisschen Quellcode:
Das Div, in das das Login eingebunden wird (index- Seite):
Code:
<div id ="lightbox" class = "schrift"></div>
Die komplette Login-Datei:
PHP:
<?php
session_start();
if (isset($_SESSION["id"]))
{
session_destroy();
}
include_once "../global/funktionen.php";
if (isset($_POST["login"])) {
db_connect();
$sqlab=sprintf("select * from tabelle where benutzername = '" . $_POST["ben"] . "' and passwort = '" . sha1($_POST["pass"]) . "'",
mysql_real_escape_string($_POST["pass"]),
mysql_real_escape_string($_POST["ben"]));
$res=@mysql_query($sqlab); // Fehlermeldungen mit @ unterdrücken
$num=@mysql_num_rows($res); // keine Übereinstimmung von Anmeldeinfo und Daten darf keinen SQL Fehler ausgeben
if ($num !=0) {
if (isset($_POST["mieten"])) {
$_SESSION["id"] = "1234";
mysql_close();
if (isset($_POST["mieten"])) {
link('shop/pruefen.php', 'content');
} else {
link('shop/uebersicht_bestellungen.php', 'content');
}
}
else {
link('shop/login.php', 'lightbox');
echo "Benutzername oder Passwort falsch!";
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Webseite</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src = "../global/js/lib.js"></script>
<link rel="stylesheet" type="text/css" href = "../global/registrieren.css" />
</head>
<body onload="self.focus();document.index.ben.focus()" >
<form name = 'login' action="shop/login.php" method= "post">
<fieldset id = "login_form">
<legend>Loginseite Teamspeak3-4you.de</legend>
<?php if (isset($_POST["mieten"])) { ?>
<input type = "hidden" name = "slots" value = "<?php echo $_POST["slots"];?>">
<input type = "hidden" name = "mv" value = "<?php echo $_POST["mv"];?>">
<input type = "hidden" name = "ft" value = "<?php echo $_POST["ft"];?>">
<input type = "hidden" name = "gs" value = "<?php echo $_POST["gs"];?>">
<input type = "hidden" name = "mieten" value = "<?php echo $_POST["mieten"];?>">
<?php } ?>
<ul>
<li>
<label for="benname">Benutzer</label>
<input name="ben">
</li>
<li>
<label for="password">Passwort</label>
<input type="password" name="pass">
</li>
<li>
<input type="button" name="login" value="Einloggen" class = "btnSend" onclick ="abschicken(document.login);">
<input type ="button" name = "cancel" value="Abbrechen" class = "btnCancel" onclick = "unsichtbar('lightbox');">
</li>
</fieldset>
</form>
</body>
</html>
Und hier dann noch die Funktion Abschicken():
Code:
function abschicken(dokument)
{
dokument.submit();
}
und link():
Code:
function link(url,div)
{
var a = new XMLHttpRequest();
a.open("GET","http://edv-schloss/ts/"+url+"",true);
a.onreadystatechange = function()
{
//antwort = "";
if(a.readyState == 4)
{
var d = document.getElementById(div);
d.innerHTML = a.responseText;
//antwort = a.responseText;
}
}
a.send(null);
}
Ich hab schonmal in diversen Foren gestöbert, aber so richtig was gefunden habe ich nicht. Weil die meisten die Daten nicht nochmal auswerten, sondern einfach nur eine Seite nachladen.
Kann mir jemand helfen?