Reactiesysteem form niet gepost

Status
Niet open voor verdere reacties.

TJansen

Gebruiker
Lid geworden
10 mei 2007
Berichten
81
Hallo,

Ik wil een website maken, waar mensen kunnen reageren op berichten. Ik heb al diverse scriptjes geprobeerd, maar krijg nog niet wat werkend wat mij bevalt. Moet erbij zeggen dat ik weinig kennis van php heb en dus dit script via google heb opgedoken, maar als ik het formulier invul krijg ik standaard een melding dat ik vergeten ben een veld in te vullen, terwijl dat niet het geval is.

het gaat m.i. om onderstaande pagina (waar via config.php al connectie naar mijn sql wordt gemaakt)

<?php

include ('config.php');

$arraymaand = array("Januari","Februari","Maart","April","Mei","Juni",
"Juli","Augustus","September","Oktober","November","December");
$datum = date("j ") . $arraymaand[date("n") - 1] . date(" Y");



if ($_POST['submit']) {
if ($bericht =="")
$error="Je moet een bericht invullen!";
if ($naam =="")
$error="Je moet je naam invullen!";
if ($emailadres=="")
$error="Je moet je e-mailadres invullen!";
if ($onderwerp=="")
$error="Je moet een onderwerp invullen!";
if (!$error) {

$query = "INSERT INTO nieuws (datum,bericht,emailadres,onderwerp,naam)
VALUES ('$datum','$bericht','$emailadres','$onderwerp','$naam')";
mysql_query($query) or die (mysql_error());
?>
<div align="center">
<table width="39%" border="1" cellspacing="3" cellpadding="2" bordercolor="#999999" bgcolor="#666666">
<tr>

<td height="22" bgcolor="#999999"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>Nieuws
toevoegen: </b></font></td>
</tr>
<tr>

<td height="46" bgcolor="#CCCCCC">
<div align="left"><font face="Arial, Helvetica, sans-serif" size="-1">Het
nieuws is <b>succesvol</b> toegevoegd!</font></div>
</td>
</tr>
<tr>

<td height="21" bgcolor="#999999">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1">[
Terug naar <a href="nieuws.php">nieuws</a> ]</font></div>
</td>
</tr>
</table>
</div>
<?php
} elseif ($error) {
?>
<div align="center">
<table width="39%" border="1" cellspacing="3" cellpadding="2" bordercolor="#999999" bgcolor="#666666">
<tr>
<td height="22" bgcolor="#999999"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>Nieuws
toevoegen: </b></font> </td>
</tr>
<tr>
<td height="23" bgcolor="#CCCCCC">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="97%">
<font face="Arial" color="red" size="-1"><b>Error:</b>
<?php echo"$error"; ?>
</font>
</td>
<td width="3%">
<div align="right">
<input onClick="javascript:history.go(-1);" type="button" name="Button" value="Terug">
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<?php
}
} else {
?>
<form action="" method="post">
<div align="center">
<table width="39%" border="1" cellspacing="2" cellpadding="2" bordercolor="#999999" bgcolor="#666666">
<tr bgcolor="#999999">
<td colspan="2" height="22"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>Nieuws
toevoegen: </b></font></td>
</tr>
<tr bgcolor="#CCCCCC">
<td width="58%">
<div align="left"><font size="-1" face="Verdana, Arial, Helvetica,
sans-serif">Je naam: </font></div>
</td>
<td width="42%"><font size="-1"><font size="-1"><font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="naam" size="30">
</font></font></font></td>
</tr>
<tr bgcolor="#CCCCCC">
<td width="58%">
<div align="left"><font size="-1"><font size="-1"> <font face="Verdana, Arial, Helvetica, sans-serif">
</font></font><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">Je
e-mailadres: </font><font face="Verdana, Arial, Helvetica, sans-serif">
</font></font></div>
</td>
<td width="42%"><font size="-1"><font size="-1"><font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="emailadres" size="30">
</font></font></font></td>
</tr>
<tr bgcolor="#CCCCCC">
<td width="58%">
<div align="left"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">Het
onderwerp: </font></div>
</td>
<td width="42%"><font size="-1"><font size="-1"><font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="onderwerp" size="30">
</font></font></font></td>
</tr>
<tr bgcolor="#CCCCCC">
<td colspan="2">
<div align="center"><font face="Verdana, Arial, Helvetica,
sans-serif" size="-1">Bericht: </font><font size="-1"
face="Verdana, Arial, Helvetica, sans-serif"> </font></div>
</td>
</tr>
<tr bgcolor="#CCCCCC">
<td colspan="2">
<div align="center"><font size="-1"><font size="-1"> <font face="Verdana, Arial, Helvetica, sans-serif">
</font></font><font face="Verdana, Arial, Helvetica, sans-serif">
<textarea name="bericht" cols="50" rows="20" wrap="VIRTUAL"></textarea>
</font></font></div>
</td>
</tr>
<tr bgcolor="#CCCCCC">
<td colspan="2">&nbsp; </td>
</tr>
<tr bgcolor="#999999">
<td colspan="2" height="20">
<div align="center">
<input type="submit" value="Post nieuws" name="submit">
<input type="reset" value="Wis velden" name="reset">
<input type="button" value="Terug naar nieuws"
onClick="window.location='nieuws.php' " name="button">
</div>
</td>
</tr>
</table>
</div>
</form>

<?php } ?>


zover ik kan zien met behulp van google heeft het iets te maken met de POST functie, maar kom er zelf niet uit. Hopelijk kunnen jullie mij van dienst zijn.
 
Welk veld geeft hij aan dat niet ingevuld is?

Script lijkt zo te functioneren, als is het slechter dan slecht gescript!
 
nu staat er dat het onderwerp niet ingevuld is, terwijl alle velden wel gevuld zijn. Als ik de volgorde van de check aanpas, wordt standaard de onderste melding weergegeven in dit geval dus onderwerp.
 
Dit script is zo'n 10 jaar oud. De reden dat het niet werkt komt doordat register globals tegenwoordig uit staat en dit script maakt daar wel gebruik van. Als je de volgende code
PHP:
if ($_POST['submit']) {
if ($bericht =="")
$error="Je moet een bericht invullen!";
if ($naam =="")
$error="Je moet je naam invullen!";
if ($emailadres=="")
$error="Je moet je e-mailadres invullen!";
if ($onderwerp=="")
$error="Je moet een onderwerp invullen!";
vervangt door
PHP:
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if ($_POST['bericht'] =="")
$error="Je moet een bericht invullen!";
if ($_POST['naam'] =="")
$error="Je moet je naam invullen!";
if ($_POST['emailadres'] =="")
$error="Je moet je e-mailadres invullen!";
if ($_POST['onderwerp'] =="")
$error="Je moet een onderwerp invullen!";
zou het wel moeten werken.
 
Bedankt voor de reactie, het wordt nu wel verzonden, maar vervolgens wordt de inhoud niet weergegeven. Ik kan wel op "reageren" klikken en de informatie invullen, die verzonden wordt, maar ook dan wordt de verzonden inhoud niet weergegeven. Er verschijnt echter ook geen foutmelding?


pagina nieuws:

<?php
include ('config.php');
$sql = "SELECT * FROM nieuws ORDER BY ID DESC";
$query = mysql_query($sql) or die(mysql_error());
$rtel = mysql_num_rows($query);

if ($rtel < 1) {
echo "<div align=center><font face=verdana size=-1>Er zijn nog geen nieuwsberichten</font></div>";

} else {

$rtel/=$max;
if (empty($pagina)) $pagina=1;
$van=($pagina-1)*$max;
if ($pagina > ceil($rtel)) $pagina=1;
for ($i = 1; $i <= ceil($rtel); $i++) {
if ($pagina == $i)
$paginas[$i] = "<b>$i</b>";
else
$paginas[$i] = "<a href=\"$_SERVER[REQUEST_URI]"."?pagina=$i\">$i</a>";
}

$paginas= implode(" | ", $paginas);
$vorige = ($pagina-1) ? "<a href=\"$php_self?pagina=" . ($pagina - 1)
. "\">< Vorige</a>" : "";
$volgende = ($pagina-ceil($rtel)) ? "<a href=\"$php_self?pagina=" .
($pagina + 1) . "\">Volgende ></a>" : "";

if ($vorige && $volgende) {

$navigatie = ("<font face=\"verdana\" size=\"-1\" color=\"#000000\">
$vorige <font color=\"#000000\">|</font> $paginas
<font face=\"verdana\" size=\"-1\" color=\"#000000\"> |</font> $volgende</font>");

} else {

$navigatie = ("<font face=\"verdana\" size=\"-1\" color=\"#000000\">
$vorige <font color=\"#000000\">|</font> $paginas <font face=\"verdana\"
size=\"-1\" color=\"#000000\">|</font> $volgende</font>");
}
$query = mysql_query("SELECT * FROM nieuws ORDER BY id DESC LIMIT $van, $max");

while ($obj = mysql_fetch_object($query)) {
$bericht = htmlspecialchars($obj->bericht);
$bericht = nl2br($bericht);
$bericht = wordwrap($bericht, 60, "\n", 1 );

$nieuwsid = $obj->id;
$rij = mysql_query("SELECT * FROM nieuwscomments WHERE nieuwsid='$nieuwsid' ORDER BY id DESC");
$comments = mysql_num_rows($rij);

if ($comments == "1")
$commentsnaam ="<a href=\"nieuwscomments.php?nieuwsid=$nieuwsid\"><font color=\"#000080\">$comments reactie</font></a>";
else
$commentsnaam ="<a href=\"nieuwscomments.php?nieuwsid=$nieuwsid\"><font color=\"#000080\">$comments reacties</font></a>";

if ($comments == "0")
$commentsnaam ="<a href=\"nieuwscomments.php?nieuwsid=$nieuwsid\"><font color=\"#000080\">Post een reactie</font></a>";
?>
<div align="center">
<table width="89%" border="1" cellspacing="1" cellpadding="2" bordercolor="#666666" bgcolor="#000000">
<tr bgcolor="#999999">
<td width="35%"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>Onderwerp:</b>
&nbsp;<?php echo"$obj->onderwerp"; ?></font></td>
<td width="29%"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>Gepost
door:</b>&nbsp;<?php echo"<a href=mailto:$obj->emailadres><font color=\"#000080\">$obj->naam</font></a>"; ?></font></td>
<td width="36%"><font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><b>Gepost
op:</b>&nbsp;<?php echo $obj->datum; ?></font></td>
</tr>
<tr bgcolor="#CCCCCC">
<td colspan="3">
<font face="Verdana, Arial, Helvetica, sans-serif" size="-1"><?php echo"$bericht"; ?>
</font></td>
</tr>
<tr bgcolor="#999999">
<td colspan="3">
<div align="right">
<font face="Verdana, Arial, Helvetica, sans-serif" size="-1">
[ <?php echo $commentsnaam; ?> ]
</font>
</div>
</td>
</tr>
</table>
</div>
<br>
<?php } ?>
<div align="center">
<table width="89%" border="1" cellspacing="1" cellpadding="2" bordercolor="#000000" bgcolor="#666666">
<tr>
<td bgcolor="#999999">
<div align="center"><font size="-1"><?php echo"$navigatie"; ?></font></div>
</td>
</tr>
</table>
</div>
<?php } ?>
 
Heb ondertussen een goed alternatief gevonden, omdat ik hier ook niet verder ben gekomen helaas. Als php noob is het dan lastig om uit te zoeken wat het probleem is. Via hotscripts.com heb ik het "advanced comment system" gevonden en al aardig naar mijn eigen hand weten te zetten.

Desalniettemin toch bedankt voor de hulp.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan