Get id

Dolphon

Erfahrenes Mitglied
Moin.

Über diesen LinK:
index.php?site=kommentar&id=1
rufe ich das Eintrage Skript der Kommentare auf.
Der Benutzer gibt dort seine Daten ein, und schickt es ab.
Die Daten werden auch soweit schön in die DB geschrieben, bis auf die ID die oben im Link steht.
Außerdem soll bei der Weiterleitung die selbe ID stehen, die eingetragen wurde.
Hier der Code:


PHP:
<?php 

### Konfigurationsdatei einlesen
require("news/config.inc.php");


// Zunächst brauchen wir eine Datenbankverbindung:



if(!($db = mysql_connect($db_host, $db_user, $db_pass))) //baue datebankverbindung auf 
  die(mysql_error());  //wenn nicht geht, gib fehlermeldung aus 
else //wenn doch geht 
{ 
  if(!mysql_select_db($db_name)) //wähle datenbank aus 
      die(mysql_error());   //wenn das nicht geht, gib fehler aus 
} 

$ip1 = "$REMOTE_ADDR"; 
$anfrage = mysql_query("SELECT ip FROM kommentar WHERE ip = '$ip1'"); 
$anzahl = mysql_num_rows($anfrage); 
if($anzahl == 1) 
{ 
echo "<br><br><br><center><font face=\"verdana\" size=\"1\" color=\"white\"><b>Du hast schon einen Eintrag abgeschickt</b></font></center>"; 
} 
else 
{ 

if($neueintrag) 
{ 
                          
    $name = addslashes($name);             
    $email = addslashes($email);         
    $kommentar = addslashes($message);
    $ip = "$REMOTE_ADDR"; 
    $komnummer = $_GET['id'];

     
    $sqlkommando = "INSERT INTO kommentar (id, name, email, kommentar2, ip, komnummer, stamp) VALUES ('$id', '$name', '$email','$kommentar2', '$ip', '$komnummer',  NOW())";
    
    mysql_query($sqlkommando) or die("Error: " . mysql_error()); // Kommando 'sqlkommando' ausfuehren
                                                                 // bei misserfolg beenden und fehlermeldung ausgeben
    
  echo "<meta http-equiv=\"refresh\" content=\"0; URL=../index.php?site=news&amp;id='$komnummer'\">";


}
}
?>




MFG

Dolphon
 
PHP:
<?php 
// [...]
    $sqlkommando = "INSERT INTO kommentar (id, name, email, kommentar2, ip, komnummer, stamp) VALUES ('" . $id . "', '" . $name . "', '" . $email . "','" . $kommentar2 . "', '" . $ip . "', '" . $komnummer . "',  NOW())";
    
    mysql_query($sqlkommando) or die("Error: " . mysql_error());
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=../index.php?site=news&amp;id=$komnummer\">";
// [...]
?>

So in der Art sollte es klappen, Variablen in Strings, die mit Hochkommas begrenzt werden anstelle von Anführungszeichen, werden nicht geparsed.

PHP:
<?php
$foo = "foo";

echo "Der Inhalt von foo ist $foo<br />\n"; // Out: Der Inhalt von foo ist foo<br />
echo 'Der Inhalt von foo ist $foo<br />\n'; // Out: Der Inhalt von foo ist $foo<br />
?>
 
so weit so gut, nur leider trägt der nichts in die DB ein, weil:

PHP:
<form action="index.php?site=kommentar&id=<?php echo"$komnummer"; ?>" method="post"> <!-- Anfang des Formulars -->
<p align="center">
<b><font color="#336699">Name:</b><br><input type="text" name="name" size="35"><br>
<b>E-mail:</b><br><input type="text" name="email" size="35"><br>
<b>Message:</b><br><textarea name="kommentar2" cols="28" rows="10"></textarea><br></font>

<input type="submit" name="neueintrag" value="Eintragen">
<input type="reset" value="Löschen">


</form>
</body>
das Formular wird zwar mit diesem Link aufgerufen: index.php?site=kommentar&id=1
aber leider wird beim abschicken des Formulars keien Id drangehängt.
 
PHP:
<form action="index.php" method="post">
<input type="hidden" name="site" value="kommentar" />
<input type="hidden" name="id" value="<?php echo $komnummer; ?>" />
<p align="center">
<b><font color="#336699">Name:</b><br><input type="text" name="name" size="35"><br>
<b>E-mail:</b><br><input type="text" name="email" size="35"><br>
<b>Message:</b><br><textarea name="kommentar2" cols="28" rows="10"></textarea><br></font>

<input type="submit" name="neueintrag" value="Eintragen">
<input type="reset" value="Löschen">

</form>
</body>

Und ersetz _GET['id'] mit _POST['id'], dann sollte es klappen...
 
genau ist das ist ja das Problem die "komnummer" steht nicht im Hide, weil er die nicht bekommt.
Meine PHP Version 4.3.1
 
Achso, ich habe gedacht, dass das Formular die Daten an das oben gezeigte Script senden. Wenn das so ist...
PHP:
<input type="hidden" name="id" value="<?php echo $_GET["komnummer"]; ?>" />
 
Zurück