Zwei Submits bei einem Klick

mymuralla

Mitglied
Hallo zusammen

Kann mir jemand sagen, wieso werden beide formulare ausgeführ werden, wenn ich auf einen submit drucke?
Hier der code:

CODE
<html>
<head><title></title></head>
<body>
<!---
das Loginformular, hier muss sich jeder User zuerst anmelden
--->

<CFIF CGI.REQUEST_METHOD eq "GET">
<!--- Im Cookie speichern wir den Usernamen --->
<cfparam name="Cookie.fdEmail" type="string" default="">
<cfset FORM.fdEmail=Cookie.fdEmail>
<cfelse>
<!--- Logindaten werden mit POST gesendet --->
<cfparam name="FORM.fdEmail" type="string">
<cfparam name="FORM.fdContrasena" type="string">

<!--- Usernamen im Cookie speichern --->
<cfcookie name="fdEmail" value="#FORM.fdEmail#" expires="NEVER">

<!--- jetzt Logincheck durchfuehren --->
<cfif len(FORM.fdEmail) AND len(form.fdContrasena)>
<!------------------------------------------------------------->

<!--- Logindaten mit denen in der DB vergleichen --->
<cfquery name="qUser" datasource="mymuralla">
select fdID as fdID from TblRegUser where fdEmail='#FORM.fdEmail#' and fdContrasena='#FORM.fdContrasena# '
</cfquery>
<cfif qUser.recordcount>

<!--- Login war erfolgreich --->

<!--- UID in Session speichern --->
<cfset session.fdID=qUser.fdID>
<CFLOCATION url="/mymuralla/mymurallaShop/listArticle.cfm?#qUser.fdID#">
</cfif>
<!------------------------------------------------------------->
</cfif>
<!--- loginfehler --->
<cfset sError="Login gescheitert">
</cfif>
<!--- Fehler ausgeben --->
<cfif isDefined("sError")>
<cfoutput>
<b>#sError#</b>
</cfoutput>
</cfif>

<!--- Loginformular --->
<cfoutput>
<form action="#CGI.script_name#" method="post" name="Logon">
<b>Login:</b>
<input type="Text" name="fdEmail" value="#HTMLEditFormat(FORM.fdEmail)#"><br>

<b>Contraseña:</b>
<input type="password" name="fdContrasena" value=""><br>

<input type="submit" value="Anmelden">
</form>
</cfoutput>
<cfoutput>
<form name="RegUsarios" action="#CGI.script_name#" method="POST">
<table width="447" border="0" align="center">
<tr>
<td colspan="3" valign="top">!!!RELLENA
ESTE FORMULARIO PARA ALQUILAR EN MYMURALLA!!</td>
<tr>
<td width="31%" align="center" valign="middle"> <br> Nombre :*</td>
<td width="46%"><input name="fdNombre" type="text" size="30"><td width="23%" rowspan="9">
<tr>
<td align="center" valign="middle">Apellido: *</td>
<td> <input name="fdApellido" type="text" size="30" ></td>
</tr>
<tr>
<td align="center" valign="middle"> Dirección:*</td>
<td><input name="fdDireccion" type="text" size="30" ></td>
</tr>
<tr>
<td align="center" valign="middle">Código Postal:*</td>
<td><input name="fdCP" type="text" size="30" maxlength="4"></td>
</tr>
<tr>
<td align="center" valign="middle"> Telefono :*</td>
<td><input name="fdTelefono" type="text" size="30" ></td>
</tr>
<tr>
<td height="26" align="center" valign="middle">E-Mail:*</td>
<td><input name="fdEmail" type="text" size="30" > </td>
</tr>
<tr>
<td align="center" valign="middle"> Contraseña:*</td>
<td><input name="fdContrasena" type="password" size="30" ></td>
</tr>
<tr>
<td height="120" align="center" valign="middle"> Comentarios:</td>
<td><textarea name="fdComentarios" cols="30" rows="6" ></textarea></td>
</tr>
<tr>
<td height="28" valign="top"> </td>
<td colspan="2"><input type="submit" value="Registrar">
<a href="javascript:history.go(-1);"> VOLVER<br>
</a><br>
</p>

</td>
</tr>
</table>
</form>
</cfoutput>
</body>
</html>
 
hallo mymuralla.

zuerst möchte ich auf unsere forenregeln hinweisen, dass man nur essentiellen code posten soll und keinen schnickschnack drum herum.

du kannst per javaclick mit

onclick="document.form.submit()"

oder so ähnlich auch eine andere form ausführen. google mal danach. allerdings weiss ich nicht, ob alle browser es unterstützen, mehrere formulare gleichzeitig zu versenden, bzw. hab ichs noch gar nie probiert.

gruss
Josh
 
Hi,

QUOTE Kann mir jemand sagen, wieso werden beide formulare ausgeführ werden, wenn ich auf einen submit drucke?


im zitierten Quelltext wird mit jedem Submit-Click nur ein einziges Formular abgeschickt.

Der Fehler muss also woanders liegen. Zum Beispiel werden beide Formulare mit method="POST" abgeschickt, die Bedingung <CFIF CGI.REQUEST_METHOD eq "GET"> macht also zur Unterscheidung schonmal keinen Sinn. Egal welches Formular abgeschickt wird, die POST-Behandlung (also der Login) wird vorgenommen.

Gruß, Slomo
 
Zurück
Oben