News/Comments?

vodka

Mitglied
Hallo ich hab da ein News Script wo man Comments eintragen kann gebaut aber es gibt solche die Posten Comments ohne Name und das nervt ein bischen!Darum hab ich schon versucht ein Antispam einzubauen also das wen jemand Posten will und Name nicht angebene hat dan wirds nicht gepostet und kommt ein Fehler wie "Sie haben kein Name eingeben"!
Aber irgentwie klappt es bei mir nicht kann mir villeicht jemand helfen?

Code:

PHP:
  <?php

if (isset ($send) )
{


include "dbnews.php";
$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");


$query = "INSERT INTO  $tabellec(name,
email,
text,
newsid,
titel,
datum)
VALUES('$_POST[name]','$_POST[email]','$_POST[text]','$id','$_POST[titel]', now())";
$result = mysql_query($query);
echo "Comment erfolgreich eingetragen";
echo "<meta http-equiv='refresh' content='1; URL=$php_self'>";
}
else
{
?>


Danke dalton
 
Letztendlich brauchst du nur mit einer simplen IF-Bedingung abfragen ob der eingegebene Name leer ist:
PHP:
if (trim ($_POST["name"]) == "")
{
  // Zeige Fehlermeldung
}
else
{
  // Schreibe den Datensatz
}

So kannst du es meinetwegen auch noch mit mehreren Feldern machen. Ich bin allerdings noch ein Gegner von META-Refreshs, denn wenn jemand jetzt auf der Seite nach der Weiterleitung mal im Browser auf Zurück klickt, wird die Datei wieder ausgeführt und der Eintrag ggf. ein zweites mal geschrieben. Ich arbeite da persönlich lieber mit header ("Location: url");
 
Hallo ich hab das mal versucht jetzt kommt zwar die meldung das man kein Name angegeben hat aber es trägt es gleich ein!

PHP:
      <?php

if (isset ($send) )
{



include "dbnews.php";
$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");

if (trim ($_POST["name"]) == "")
{
  echo "Kein name Angeben";
}
else
{
  echo "Erfolgreich eingetragen";
}

$query = "INSERT INTO  $tabellec(name,
email,
text,
newsid,
titel,
datum)
VALUES('$_POST[name]','$_POST[email]','$_POST[text]','$id','$_POST[titel]', now())";
$result = mysql_query($query);



}
else
{
?>
 
Klar du sollst ja auch die Insert in die IF anweisung setzen!
Ich versuchs mal:
PHP:
<?php
if (isset ($send) ) {
  include "dbnews.php";
  $db = mysql_connect($db_host, $db_user, $db_pass);
  mysql_select_db ($db_name) or die ("Cannot connect to database");

  if (trim ($_POST["name"]) == "")
  {
    echo "Kein name Angeben";
  }
  else
  {
    echo "Erfolgreich eingetragen";

    $query = "INSERT INTO  $tabellec(name, email, text, newsid, titel, datum)
    VALUES('$_POST[name]','$_POST[email]','$_POST[text]','$id','$_POST[titel]', now())";
    $result = mysql_query($query);
  }
}
?>
Schau mal ob's so geht!

Greetz and bb
cObraOne

* habs nicht gecheckt! Hab nur dein Script ein wenig rumgeschoben!
 
Es kommt folgendes:

Parse error: parse error in /home/dalton/public_html/darkskill/news/comments.php on line 176

Und ihn der 176 Zeile steht das:

PHP:
    <?
}
?>
Das ist für das

if (isset ($send) ) {

sonst gehts ned ohne diesem!
 
Das ist für das

if (isset ($send) ) {
Hast du schon alle Geschweiften Klammern { } kontrolliert, ob die, die du geöffnet hast auch wieder zu sind? Es müssen alle wieder geschlossen werden! Wenn das nicht ist gibts Fehler, sowie wenn zuviele schliessende Klammern drin sind.

Wenn's dann immer noch nicht funktioniert, lass nochmal deinen Code sehen, mal schaun was sich da machen lässt.
Probier aber erst das mit den { }!

Greetz and bb
cObraOne
 
Zurück