[php] form probs

nDeedy

Erfahrenes Mitglied
Hoi, also ich hätte da ein prob ^^ und zwar:

Ich will das mein Formular die daten per post an sich selbst schickt, und da ist ja auch das problem, denn das url beinhalten vars, die dynamisch erzeugt werden. was soll ich dann ins action schreiben? ich hatte es so vor:

echo "<form action=\"index.php?page=news&newsid=\"".stripslashes($news_daten->news_time). "\" method=\"post\" name=\"commenteintrag\">;

und es ging net. Mit $PHP_SELF geht das schon gar net, oder mach ichs falsch?

[EDIT]
Hmm vB will den php-tag net usen :(
[EDIT2]
Quote auch net ARGH!!!
 
PHP:
Parse error: parse error, unexpected $end in ...\test.php on line X
Falls des deine Fehlermeldung war, dann hast du am Schluss noch die letzen Gänsefüsschen(die nennt man doch so??) vergesssen.

So hats bei mir funktioniert:
PHP:
echo "<form action=\"index.php?page=news&newsid=\"".stripslashes($news_daten->news_time)."\" method=\"post\" name=\"commenteintrag\">";
 
und nocheinmal, Variablen übergibst du per hidden-tag:

Code:
<input type="hidden" name="page" value="news">
<input type="hidden" name="newsid" value="<?php echo stripslashes($news_daten->news_time) ?>">

inwiefern stripslashes() noch notwendig ist, kommt auf deine formatierung an, ich denke mal, es ist überflüssig
 
moin. Erst mal thx für die antworten, aber die haben mir atm noch leider net weitergeholfen :( Mein Problem liegt im action der form. Die muss sich praktisch diesen url gleichen:

.../index.php?page=news&newsid=XXXXXX

wo XXXXXX ein dynamisch erzeugter Wert ist, also bei jedem News-Eintrag anderds. Und ich weiss net was ich das jetzt bei action hin schreiben muss. Ich habe schon volgendes versucht:

PHP:
echo "<form action=\"index.php?page=news&newsid=".stripslashes($news_daten->news_time)."\" method=\"post\" name=\"commenteintrag\">";

//und das:

$news_id_num = stripslashes($news_daten->news_time);
//bzw: $news_id_num = $news_daten[news_time];

echo "<form action=\"index.php?page=news&newsid=$news_id_num method=\"post\" name=\"commenteintrag\">";

//und das :D

echo "<form action=\"$PHP_SELF\" method=\"post\" name=\"commenteintrag\">";

Und mein Prb ist, dass der Formular, nach dem abschicken nicht die selbe page öffnet, sondern nur index.php?page=news bzw. einfach index.php
 
also nochmal: Variablen übergibst du nicht in der action, sondern mit diesen speziellen input-tags, während du in der action lediglich den dateinamen angibst:

PHP:
echo "<form action=\"index.php\" method=\"post\" name=\"commenteintrag\">";

echo "<input type=\"hidden\" name=\"page\" value=\"news\">";
echo "<input type=\"hidden\" name=\"newsid\" value=\"".stripslashes($news_daten->news_time)."\">";
 
hmm.. also das mit dem hidden-inputfield klappt etz allerdings kommt da nach dem eintragen so ein fehler den ich nicht finden kann :( Der sagt folgendes:

Error: You have an error in your SQL syntax near '' at line 1

hier mein php code wo die sachen in die DB eingetragen werden...

PHP:
if (@$_POST["step"] == "2")
{ 

    $comment_id = time();
    $c_news_id = $newsid;
    $comment_name = addslashes($_POST["comment_name"]);
    $comment_email = addslashes($_POST["comment_email"]);
    $comment_message = addslashes($_POST["comment_text"]);
    
    $comments_sql_komm = "INSERT INTO comments (comment_id, c_news_id, comment_name, comment_email, comment_text) VALUES ('$comment_id', '$c_news_id', '$comment_name', '$comment_email', '$comment_text')";

    mysql_query($comments_sql_komm) or die("Error: " . mysql_error());
	
    echo "<center><span class=\"text\"><b>";
	echo "Vielen Dank f&uuml;r Ihren Eintrag."; // Bestätigung ausgeben
	echo "</b></span></center>";
}

	//Comments Ausgabe:
	
	$comments_komm = "SELECT * FROM comments WHERE c_news_id = $newsid ORDER by comment_id DESC";
	$comments_komm_abfrage = mysql_query($comments_komm) or die("Error: " . mysql_error());
	while($comments_daten = mysql_fetch_object($comments_komm_abfrage))
		{
		$comment_date = date("d.m.Y",$comments_daten->comment_id);
		
		echo "<center><table width=\"500\" border=\"1\" cellspacing=\"0\" cellpadding=\"3\" bordercolor=\"282807\" style=\"BORDER-COLLAPSE: collapse\"><tr>";
		echo "<td class=\"text\"><b>Posted by: </b><a href=\"mailto:".stripslashes($comments_daten->comment_email)."\">".stripslashes($comments_daten->comment_name)."</a><b>on:</b> $comment_date</td>";
		echo "</tr><tr><td class=\"text\">".nl2br(stripslashes($comments_daten->comment_text))."</td></tr></table></center>";
		echo "\n<br><br>\n";
		}

Und das miese ist, dass es mit der zeile 94 anfängt und ich weiss nicht wo denn genau der Fehler steckt :(((
 
Die Zeilenangabe bezieht sich auf die SQL-Querys, der Fehler muss also in einem der beiden Querys stecken, jedoch scheinen die mir auf Anhieb korrekt zu sein...

vielleicht wäre es günstig, im zweiten Query das $newsid noch in einfache Anführungsstriche zu setzen, das sollte allerdings auch so gehen.

Ansonsten versuch mal herauszufinden, in welchem der beiden Querys der Fehler auftritt (in die "die"-Klausel was unterschiedliches reinschreiben)

...

hth
 
Zurück