Zitat Zitat von fanrpg
Hmm.. wenn ich das aber so mache:

PHP-Code:
if ($_POST['username'] == ""
{
  
$comments_comment "INSERT INTO user (comment, username, wohnort, icq, ava, msn, webseite) VALUES ('$comment', '$username', '$wohnort', '$icq', '$ava', '$msn', '$webseite')";
  
$comments_comment_q mysql_query($comments_comment);
  }
      if(
$_POST['username'] != "")
      {
      
header("location: index.php");
      } 
dann schreibt der ausser der ID nichts in die DB

Oder ist die if-Abfrage falsch?
Ja, würd ich sagen.

Versuch das:
PHP-Code:
<?php 
if (!empty($_POST['username'])) 
{
  
$comments_comment "INSERT INTO user (comment, username, wohnort, icq, ava, msn, webseite) VALUES ('$comment', '$username', '$wohnort', '$icq', '$ava', '$msn', '$webseite')";
  
$comments_comment_q mysql_query($comments_comment);
  
header("location: index.php");
?>
HIER DEN FORMULARKRAM REIN
Das Script prüft nun ob $_POST['username'] einen Wert enthält. Da es nur einen Wert enthält wenn das Formular ausgefüllt und abgeschickt wurde, wird nur in die DB eingetragen, wenn das Formular abgeschickt wurde.
Nach dem Eintragen in die DB wird dann sofort auf index.php weitergeleitet wodurch verhindert wird das der Besucher reloaden kann und so aus Versehen zweimal einen Eintrag hinterlässt.

Beachte das deine Version nicht HTTP/1.1 kompatibel ist. Willst du maximale Kompatibilität musst du bei der Weiterleitung eine absulute Adresse angeben. Schau dazu nochmal ins PHP-Manual. Dort steht wie du dir eine absulute Adresse von PHP zusammensetzen lassen kannst.