argh was mach ich falsch?

B

broke

hi!
ich bin total verzweifelt.
ich werd euch mal mein problem schildern, bitte helft mir.
also:
ich habe ein newsscript geschrieben, welches einwandfrei funktioniert.
die daten werden in der mysql tabelle "news" gespeichert.
nun will ich ein commentscript hinzufügen.
ich habe eine table namens "comments" erstellt(mit den feldern comid, newsid, poster, email, datum).
dann habe ich bei den news einen link hinzugefügt mit <a href="comments.php?newsid=<? echo $newsid; ?>">Kommentare</a> .

um einen comment zu schreiben, habe ich die seite postcomment.php gemacht, und in genau der ist mein problem! denn wenn ich auf submit klicke, wird nichts in die tabelle comments geschrieben. hier ist der quelltext der postcomment.php
PHP:
<html>
<head>
<title>write comment</title>
</head>
<body>
<h3>Write Comment</h3>
<?
require("connect.inc.php"); 

if($action=="true")
{
mysql_query("INSERT INTO comments (cid, nid, subject, content) VALUES ('', '$nid', '$poster', '$comment')");
echo "News written!<br>\n";
}
?>
<form action="<? echo $PHP_SELF ?>" method=post>
Subject <input type="text" name="poster"><br>
Content <textarea cols=50 rows=15 name="comment"></textarea><br>
<input type="submit" value="Submit">
<input type="hidden" name="action" value="true">
</form>
</body>
</html>

was ist daran falsch? ich weiß echt nicht mehr weiter, würde das aber so gern beherrschen.
bitte erklärt mir das!
mfg
 
mach doch mal den hidden input weg, und nene dein <input type="submit" noch aktion - also name="aktion"

oben anstatt if($aktion=="true" einfach if(isset($aktion){ usw

gruss, dave
 
irgendwie bin ich unfähig :(
wenn ich das so
PHP:
<html>
<head>
<title>write comment</title>
</head>
<body>
<h3>Write Comment</h3>
<?
require("connect.inc.php"); //connect to the database
if (isset($aktion){
mysql_query("INSERT INTO comments (cid, nid, subject, content) VALUES ('', '$nid', '$poster', '$comment')");
echo "News written!<br>\n";
}
?>
<form action="<? echo $PHP_SELF ?>" method=post>
Subject <input type="text" name="poster"><br>
Content <textarea cols=50 rows=15 name="comment"></textarea><br>
<input type="submit" value="Submit" name="aktion">

</form>
</body>
</html>

mach, kommt folgendes:
Parse error: parse error in news\postcomment.php on line 9
 
broke hat gesagt.:
PHP:
<html>
<head>
<title>write comment</title>
</head>
<body>
<h3>Write Comment</h3>
<?
require("connect.inc.php"); 

if($action=="true")
{
mysql_query("INSERT INTO comments (cid, nid, subject, content) VALUES ('', '$nid', '$poster', '$comment')");
echo "News written!<br>\n";
}
?>
<form action="<? echo $PHP_SELF ?>" method=post>
Subject <input type="text" name="poster"><br>
Content <textarea cols=50 rows=15 name="comment"></textarea><br>
<input type="submit" value="Submit">
<input type="hidden" name="action" value="true">
</form>
</body>
</html>

Ich weiss ja nicht obs was bedeutet, aber du willst Werte an Mysql übergeben die gar nicht in deinem Formular enthalten sind.
 
ja die ids, aber die cid addiert sich ja von selbst, und $nid wird von news.php übernommen.
 
hi


nimm mal in der query "Values ( '', '$irgendwas....)
die ersten Anführungszeichen raus
ich nehme mal an das mysql sich die id's selbst generiert,
manchmal macht er da ein paar probleme
ich hoffe das hilft dir
 
das einfachste waer natuerlich sich einmal die mysql-fehlermeldung ausgeben zu lassen:

echo mysql_error(); und dann solltest du wissen woran es bei dem query hapert ;)
 
ok leute ich habs geschafft!
das problem war glaube ich, dass ich im newspost forumlar die input types gleich genannt habe, wie im commentpost formular.
ziemlich dummer fehler, aber trotzdem danke für die hilfen! :)
 
Zurück