Form Action funktioniert nicht ?!

Gesperrt
itportal
Beiträge: 3
Registriert: Fr 13. Jun 2008, 08:19
Kontaktdaten:

Form Action funktioniert nicht ?!

Beitrag von itportal »

Hallo alle,

Ich versuche ein einfaces Formular in Contenido zu schreiben, aber irgendwie komme ich nicht klar. Das Formular selbst wird von einem Template geladen und gezeigt. Das Form Action Feld wird von der Module übergeben als Variable. Alles wird prima gezeigt, aber wenn ich auf dem Button drücke, kommt die Startseite (idart 1). Vielleicht mache ich was falsch, aber ich kann nicht verstehen was. Unten ist mein Code.


TEMPLATE:

Code: Alles auswählen

<center><form action="{ACTION}" method="get" id="frm" enctype="multipart/form-data" >
	<table class="tbl2" width=100% cellpadding=2>
	... felder ...
	<tr>
		<td><input type="text" name="username" /></td>
		<td><input type="password" name="password" /></td>
		<td><input type="password" name="password2" /></td>
	</tr>


</table>
<input type="hidden" name="send" value="1" />
	<input type="submit" />
</center>
</form>
OUTPUT:

Code: Alles auswählen


print_r($_POST);
print_r($_GET);

// create Template object
if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}

if($_POST["username"] == ""){
	$sFormAction = $sess->url("front_content.php?idcat=$idcat&idart=$idart&parentid=$parentid");
    $tpl->set("s", 'ACTION', $sFormAction);
    $tpl->set("s", 'form_action', $sFormAction);
	$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/members_anmeldung.html");
}
else{
	// try to register user in DB
	
	$sql = "SELECT * FROM ".$cfg["tab"]["frontendusers"]." WHERE username = ".$_POST["username"]." ";
	$db->query($sql);
	

	if ($db->next_record()) {
		if($db->f("password") != md5($_POST["password"])){ back("Passwort stimmt nicht."); }
		elseif($_POST["password"] != $_POST["password2"]){ back("Passwort stimmt nicht."); } 
		else{
			$datum_array = explode(".",$_POST["geburtsdatum"]);
			$datum = $datum_array[2]."-".$datum_array[1]."-".$datum_array[0];

			$sql = "INSERT INTO `con_members` (`username` ,`password` ,`name` ,`vorname` ,`geburtsdatum` ,`wohnort` ,`email` ,`telefon` )
			VALUES ('".$_POST["username"]."', '".md5($_POST["password"])."', '".$_POST["name"]."', '".$_POST["vorname"]."', '".$datum."', '".$_POST["wohnort"]."', '".$_POST["email"]."', '".$_POST["telefon"]."');";
			$db->query($sql);
			print '<b>Sie haben Sich erfolgreicht angemeldet. Jetzt k&ouml;nnen Sie einloggen.</b>';
		}
	}
	else{
		back("Benutzername existiert nicht.");
	}
}

function back($msg){
	print '<b>'.$msg.'</b><br><br><a href="javascript:history.go(-1)">Zur&uuml;ck</a>';
}
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

1. Problem:
Wenn die <form methode "get"> ist, ist $_POST["username"] falsch.
Es müsste $_GET["username"] sein.

Was gibt das Frontend ("font_content.php") vor dem senden aus?
"{ACTION}" or "font_content.php?..."

mfg OliverL
itportal
Beiträge: 3
Registriert: Fr 13. Jun 2008, 08:19
Kontaktdaten:

Beitrag von itportal »

Egal, ob POST oder GET ist, komme ich nach dem Send nicht auf derselben Seite.

Vor dem Senden ist Action front_content.php?idcat ... wie es sein soll.
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

ahhhh ... jetzt ... ja
(Anscheind muste dein Thread erst bei mir eine gewisse einwirk Zeit haben)

Das Problem ist das "username und "password" schon für das frontend-Login verwendet wird und Contenido automatisch bei der Übergabe der Variablen versucht den User einzuloggen.
Sicher hat du kein Error-Artikel definiert in den Mandanten-Einstellungen somit ist es HOME/"front_content.php?idcat=&idart=".

Lösung:
mach aus
username -> myusername
password -> mypassword
password2 -> mypassword2 (nur damit der gleiche sufix drin ist)

mfg OliverL
itportal
Beiträge: 3
Registriert: Fr 13. Jun 2008, 08:19
Kontaktdaten:

Beitrag von itportal »

Ach :lol:

Ich kann es nicht glauben, ich habe 3 Tage lang versucht das Problem zu finden. Letzlich dachte ich PHP macht Scherz mit mir. Danke vielmals! :)
Gesperrt