Hallo,
also wie manche schon wissen war ich auf den JS-Login tripp. Ist aber so ganz unsicher. Also hab ich gedacht, mach ich meinen LogIn nich so plump mit weiterleitung sondern elegant mit Ajax. Aber es passiert nichts und in der Fehlerkonsole tauch auch nichts auf, weder im Opera noch im FF. Nichtmal der pingelige IE sagt was, es kommt aber nix zurück...
Hier mal die scripte:
Der Login teil
<div id="login">
<h1>Login</h1>
<table border="0" style="border: 2px solid #808080; background: #161616;">
<tr>
<td style='width: 369px; border-right: 2px solid #808080;'>
<a>In order to login you must be registered. Registering takes only a few moments but gives you increased capabilities. The board administrator may also grant additional permissions to registered users. Before you register please ensure you are familiar with our terms of use and related policies. Please ensure you read any forum rules as you navigate around the board.</a>
<br>
<center>
<a href="index.php?page=agb">Rules</a>
</center>
</td>
<td style="width: 371px;">
<form action="login.php" method="POST" name="login">
<a>Username</a><br>
<input type="text" name="user" id="user"><br>
<a href="index.php?page=register">register</a><br>
<a>Password:</a><br>
<input type="password" name="pass" id="pass" onkeypress="if (capLock(event)) { document.getElementById('capslockmsg').style.display='block';}else{document.getElementById('capslockmsg').style.display='none';}"><br>
<a href="index.php?page=password">I forgot my password</a><br>
<input type="checkbox" name="stay"><a>Log me on automatically each visit</a><br>
<div id="capslockmsg">
<br><a>Caps lock is on.</a>
</div>
</td>
</tr>
</table>
<div style="border: 2px solid #808080; border-top: none; background: #161616;">
<center>
<input type="button" value="Login" style="margin-top: 4px; margin-bottom: 4px; border: 2px solid #000; background: #808080;" onclick="logg();">
</center>
</div>
</div>
<div id="msg">
<center>
<![CDATA[
function msg_addtext(text) {
window.document.write(text);
}
]]!></center>
<input type="button" value="OK" onclick="msgdisappear()">
</div>
Alles anzeigen
dann das loginscript login.js, ist ganz sicher eingebunden:
function msg(text) {
document.getElementById('fade').style.display="block";
document.getElementById('msg').style.display="block";
msg_addtext(text);
}
function msgdisappear() {
document.getElementById('fade').style.display="none";
document.getElementById('msg').style.display="none";
}
request=null;
function init_ajax() {
var ajax_request;
var versions=new Array("MSXML2.XMLHttp.6.0",
"MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp",
"Microsoft.XMLHttp");
if (document.getElementById) {
if (window.XMLHttpRequest) {
ajax_request=new XMLHttpRequest();
}
if (window.ActiveXObject) {
for (var i=0;i<versions.length;i++) {
try {
ajax_request=new ActiveXObject(verions[i]);
}
catch(exception){}
}
}
}
return ajax_request;
}
suc=null;
state=null;
function fetch_data() {
if (request.readyState == 4) {
if (request.status == 200) {
suc=request.responseXML.getElementsByTagName('stat')[0];
state=request.responseXML.getElementsByTagName('respan')[0];
calllogin();
}
}
}
function calllogin() {
if (suc=="true") {
alert('Login sucess, youll be redirected');
if (state=="logged") {
window.setTimeout("location.href='index.php?page=alrlogged'", 2000);
}
else {
window.setTimeout("location.href='index.php'", 2000);
}
}
else {
switch (state) {
case "msql":
alert("Databaseconnection faild");
break;
case "ntv":
alert("Your account is not acitvated. Activate it via the link in the mail we sent to you");
break;
case "block":
alert("Your account is blocked");
break;
case "ip":
alert("This ip has been logged already, both accounts have been blocked");
break;
case "data":
alert("Please check your username and password");
break;
case "maxlog":
alert("You have used your 3 tries to log. Please wait 15 minutes");
break;
}
}
}
function check() {
if (request.readyState == 4) {
if (request.status == 200 ) {
return true;
}
else {
return false;
}
}
else {
return false;
}
}
function getrdy() {
request=init_ajax();
if (request) {
//phpfileurl="hidden_login.php?one="+document.getElementById('user').value+"&two="+document.getElementById('pass').value;
phpfileurl="test.xml";
request.open("POST", phpfileurl);
request.send(null);
request.onreadystatechange=fetch_data;
}
else {
alert('Server Connection lost');
}
}
function logg() {
getrdy();
//document.getElementById('waiting').style.display="block";
}
Alles anzeigen
die variable phpfileurl ändert sich noch, ist aber momentan auf aben dieser XML, da es auch mit der PHP nicht geklappt hat.
Die besagte text.xml
Wenn das PHP script nachher was zur sache tut, dann poste ich das auch.
Ich komm halt einfach nicht weiter, vor allem hab ich keine Ahnung weiso keine Meldung kommt. Vielen dank an alle die sich gedanken machn^^.
P.S: Ja, der alert() ist unelegant, wird aber später durch das eigendefinierte msg() ersetzt.
//EDIT:
Mit der XML klappts jetzt, aber mit der PHP wieder garnichts.