Formular läst sich nicht abschicken

AZUBI09

Mitglied
die ganze zeit hat alles wunderbar funktioniert aber jetzt gehts warum auch immer nicht mehr. wenn ich auf die abshcicken klicke passiert nichts.

hier mal der code:

PHP:
<?php 
	if(!$_POST['hidden'])
	{
	    echo"
			<form action=\"new_categorie.php\" method=\"post\">
				<input name=\"cat_name\" type=\"text\" value=\"Kategoriename\" onfocus=\"if (this.value == 'Kategoriename') this.value=''\" onblur=\"if (this.value == '') this.value = 
				'Kategoriename';\"/>
				<input name=\"hidden\" type=\"hidden\" value=\"1\" />
				<input name=\"submit\" type=\"button\" value=\"Kategorie anlegen\" />
			</form>";
	}
	?>
	<?php
		$cat_name = $_POST['cat_name'];
		$timestamp = time();
		$datum = date("d.m.Y - H:i", $timestamp);

		if($_POST['hidden'])
		{
			include"db_connect.inc.php";
			$eintrag = "INSERT INTO Kategorien
			(name, datum)
				VALUES
			('$cat_name', '$time')";
			$eintragen = mysql_query($eintrag);

		}
?>
 
Dann änder einfach bei deinem Button

HTML:
type="button"
nach
HTML:
type="submit"

nach einer halben Minute googlen bin ich auf folgenden Satz zum Thema type="button" gestoßen:
Note that this INPUT type does not actually initiate a form submission.
 
Ohne dir zu Nahe treten zu wollen: Ich hoffe in deinem eigenen Interesse, das du den Code so nicht deployen willst. Es gibt einige Dinge, die du noch machen solltest:

1. $_POST['cat_name'] validieren und filtern (mysql_real_escape_string und preg_replace sind deine Freunde).
2. mysql_*-Funktionen sollten _immer_ mindestens ein "or echo mysql_error();" hinten an stehen haben.
3. Nimm den HTML-Code doch aus dem PHP raus und schreib in als richtigen HTML-Code rein. Das bringt Übersichtlichkeit und vermindert Fehler-Anfälligkeit. Du schreibst ja ohnehin keine variablen Werte ins Form.
4. Achte auf korrekte Code-Formatierungen. Es gibt nichts schlimmeres, als einen Fehler suchen zu müssen, wenn man den Code auf Grund sinnfreier Formatierung kaum lesen kann.
5. Wenn möglich, MySQL-Funktionen nutzen. Wenn 'datum' ein Feld vom Typ DATE, DATETIME, TIMESTAMP oder dergleichen ist, nimm die MySQL-Funktion NOW() statt mit time() und date() zu arbeiten. Mal davon abgesehen brauchst du time() hier nicht mal, date() nimmt automatisch den aktuellen Zeitstempel, wenn nicht angegeben.

So, nun hab ich genug rumgemeckert. Vielleicht bist du ja an solchen Anregungen interessiert. Wenn nicht, ignorier es einfach ;)
 
Zurück