Formular irgendwie nicht?!

M-GT

Erfahrenes Mitglied
Hi Leute ich hab ein große Problem und zwar mein formular nicht... :(

hier mal der Code:
PHP:
<?
mysql_connect("xx","xx","xx") or die
("Keine Verbindung moeglich");
mysql_select_db("xx") or die
("Die Datenbank existiert nicht");
?>
<table style="width:90%" border="0" cellspacing="2" cellpadding="0"><tr><td class="main">
<form method="post" action="add">
<table style="width:90%"><tr><td>Kopfzeile</td><td class="left">
<input type="text" name="title" class="form" size="40" maxlength="80" />
</td></tr><tr><td>Text *<br /><br />
</td><td class="left"> 
<textarea name="text" class="form" cols="50" rows="10"></textarea>
</td></tr><tr><td>Url 1</td><td class="left">http:// 
<input type="text" name="link1" class="form" size="40" maxlength="200" value="www." />
</td></tr><tr><td>Url 2</td><td class="left">http:// 
<input type="text" name="link2" class="form" size="40" maxlength="200" value="www." />
</td></tr><tr><td>Optionen</td><td class="left"> 
<input type="submit" class="form" value="Absenden" />
<input type="reset" class="form" value="Nochmal" />
</td></tr></table></td></tr></table></form><br />
<?php $action=$_REQUEST['action'];
$id=$_REQUEST['id'];
$category=$_POST['category'];
$title=$_POST["title"];
$text=$_POST["text"];
$link1=$_POST["link1"];
$link2=$_POST["link2"];
if($link1=="www.") {$link=""; }
if($link2=="www.") {$link2=""; }
if($action=="add") { $error=0;
if (empty($headline) OR empty($text)) { $error++; }
if ($error==0) {
print "OK..  "; 
$add="INSERT INTO news(autorid, category, date, title, text, link1, link2) VALUES ('$myid', '$time', '$time', '$title', '$category', '$text', '$link1', '$link2')";
$sqlaction=mysql_query($add); } 
else { print "Fehler"; } }
?>
</td></tr></table>


Was ist daran falsch?
immer wenn ich auf absende gehe leitet er mich auf eine Seite auf meinem space die es nicht gibt
 
Zuletzt bearbeitet:
PHP:
<form method="post" action="add">
bei action muss die Angabe rein, welche Seite nach dem Abschicken des Formulars aufgerufen werden soll.

wenn die selbe Seite wieder aufgerufen werden soll, dann sieht das so aus:
PHP:
action="<?php echo $_SERVER['PHP_SELF']; ?>"
ansonsten halt:
PHP:
action="blabla.php"
Auf der Zielseite kannst du dann die Formulardaten auswerten.
 
Zuletzt bearbeitet:
Du solltest Deinem Formular auch sagen wohin er gehen sollte, action steht hierbei nicht für eine Aktion, sondern eigentlich für das Ziel, Ausnahmen sind hier Javascript-Funktionen (da würde Action als Aktion schon stimmen können).

Zum Beispiel könntest du folgende Seite aufrufen (wenn die Seite hier so heissen sollte):
PHP:
<form method="post" action="add.php">

oder so:
PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 
Ja, aber der PHP code ist ja auf der selben Seite d.h. ich müsste <?php echo $_SERVER['PHP_SELF']; ?> verwenden... aber wie mache ich das dann das er erst den php code ausfürhen soll, wenn auf SENDEN etc. gedrückt wird?
 
M-GT hat gesagt.:
Ja, aber der PHP code ist ja auf der selben Seite d.h. ich müsste <?php echo $_SERVER['PHP_SELF']; ?> verwenden... aber wie mache ich das dann das er erst den php code ausfürhen soll, wenn auf SENDEN etc. gedrückt wird?
so hier:

PHP:
if ($_SERVER['REQUEST_METHOD'] == "POST") {
  // dein Code, der ausgeführt werden soll, nachdem das Formular abgeschickt wurde
}
 
Zurück