Problem mit Browser

Fluctuator

Mitglied
Hallo,

ich habe ein Login-Script geschrieben womit sich ein User auf meiner Seite einloggen kann. Soweit nichts ungewöhnliches. Doch das seltsame daran ist, daß das Script nur mit Firefox und Netscape funktioniert. Sobald man sich mit IE oder Opera einloggen will funktioniert es nicht. Es passiert einfach nichts, sobald man auf den Login-Button klickt. Es kommt nicht einmal eine Fehlermeldung, falls man die Eingabefelder leer läßt. Am Script kann es eigentlich nicht liegen, da es ja mit den anderen beiden Browsern einwandfrei funktioniert. Sehr seltsam. Hier trotzdem nochmal das Script:

Code:
<?
$title = "Login";
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.tpl.php');
?>
		
			<? 
			if($_POST['login'] == 'submit'){
				if($_POST['email'] == ""){
			      	$error .= "Keine Email-Adresse eingegeben.<br/>";
				}
				if($_POST['password'] == ""){
			       	$error .= "Kein Passwort eingegeben.<br/>";
					$_SESSION['login']['email'] = $_POST['email'];
				}
			    if(!$error){
			       	if(result("SELECT COUNT(*) FROM users WHERE email = '".$_POST['email']."' AND password = BINARY '".md5($_POST['password'])."'") == 0){
			        	$error .= "Falsche Email-Adresse oder falsches Passwort.<br/>";
						$_SESSION['login']['email'] = $_POST['email'];
					}
					else{
						query("UPDATE sessions SET session_user_id = '".result("SELECT id FROM users WHERE email = '".$_POST['email']."' AND password = BINARY '".md5($_POST['password'])."'")."', session_logged_in = 1 WHERE session_id = '".session_id()."'");
						$user_data['id'] = result("SELECT id FROM users WHERE email = '".$_POST['email']."' AND password = BINARY '".md5($_POST['password'])."'");
						setcookie('user_id', $user_data['id'], time() + 86400, '/');
			    		setcookie('user_password', md5($_POST['password']), time() + 86400, '/');
						unset($GLOBALS['_SESSION']['login']);
						header("Location: ".$_SERVER['REQUEST_URI']."");
					}
				}
			}
			if($error){
				include($_SERVER['DOCUMENT_ROOT'].'/templates/error.tpl.php');
			}
			else if($message){
				include($_SERVER['DOCUMENT_ROOT'].'/templates/message.tpl.php');
			}
			else{
			?>
		 	<table width="100%" border="0" cellspacing="0" cellpadding="2">
		  	<form action="<? echo $_SERVER['REQUEST_URI']; ?>" method="post">
		    	<tr><td>Email</td><td><input type="text" name="email" value="<? echo $_SESSION['login']['email']; ?>"/></td></tr>
				<tr><td>Passwort</td><td><input type="password" name="password" maxlength="24"/></td></tr>
				<tr><td colspan="2"><input type="checkbox" name="cookie" value="1" checked/>Eingeloggt bleiben.</td></tr>
				<tr><td colspan="2"><input type="image" name="login" value="submit" src="/images/buttons/go.png"/></td></tr>
			</form>
		  	</table>
			<?
			}
		    ?>
		
<?
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.tpl.php');
?>

Vielleicht könnte jemand anderes mal versuchen sich auf der Seite einzuloggen, und mir sagen ob er eine Fehlermeldung kriegt oder nicht oder ob überhaupt etwas passiert. Wäre sehr nett. Hier der Link.

MfG Fluctuator
 
Ich könnt mir vorstellen, dass ein input field mit type image nicht unbedingt das Formular absendet...

versuchs mal mit <input type="submit" name="login" value="submit" src="/images/buttons/go.png"/>

oder auch mit <a href='javascript:form1.submit();'><img src='...' /></a>, wobei du dann dem form noch nen namen geben musst ('form1');
 
Alles klar. Vielen Dank. Jetzt funktioniert es. Aber warum funktioniert <input type="image"> nicht bei IE und Opera? Ist doch konformes X/HTML. Auf anderen Seiten geht es doch auch. Oder ist meine Synthax falsch?
 
Zurück