Alltes Problem mit Gästebuch...

Dexter15

Grünschnabel
Hi Leute

Sry ich weiß ich nerv mit dem Topic, da das Problem schon so viele hatten, hab nämlich gerade erst angefangen mich mit php und MySQL zu beschäftigen.

In meinem Gästebuch funktioniert auch alles schon so wies funktionieren sollte, nur die Kommentarfunktion nicht..
Hab schon sämtliche Themen/Tutorials hier im Forum dazu durchgelesen, ergänzt und ausprobiert, nur leider gehts teilweise immer noch ned :confused:

Mein Problem ist, dass er mir das Textfeld, wo ich meinen Kommentar rein schreibe, nicht eintragen will.. :

PHP:
    if($_GET['comment'] && $_GET['Datum'])
    {
 mysql_query("UPDATE `Gaestebuch` set comment = '".$_post['comfield']."' WHERE Datum = '".date("Y-m-d H:i:s", $_GET['Datum'])."'", $DatabasePointer);  
   }

Wenn ich nun statt dem "$_post['commfield']" einen gewöhnlichen String hineinschreibe,also z.B.: 'Danke für den Eintrag', funktioniert das problemlos.
Hab schon so viele Kombinationen die ich hier im forum gefunden hab ausprobiert.. aber nix davon will funktionieren..

Das mit dem Textfeld sieht so aus:
PHP:
 <input type="text" name="comfield" value="commentar" size="120">

Da ist sicher irgend wo so ein kleiner Anfängerfehler :rolleyes:

schon mal vielen Dank für eure Antworten :)
 
ok, erstmal schreibt man $_GET oder $_POST immer groß, also
PHP:
$_POST['comfield']
dann sollte das auch gehen;)

PS. Und nochwas, Variablen ungerpüft in die Datenbank zu schreiben erhöht drastisch die Gefahr von SQL-Injektionen.
Prüfe vorher alle Variablen und trage sie erst dann ein, gib gegebenenfalls einen Fehler aus, aber nicht so!
 
Also erstmal vielen dank für die schnellen Antworten :) , nur gehts leider trotz der Großschreibung immer noch ned.. :confused:

PS. Und nochwas, Variablen ungerpüft in die Datenbank zu schreiben erhöht drastisch die Gefahr von SQL-Injektionen.
Prüfe vorher alle Variablen und trage sie erst dann ein, gib gegebenenfalls einen Fehler aus, aber nicht so!
Gut zu wissen^^
 
Ok, ich lese aus deinem Codeschnipsel, dass du das Formular mit Get überträgst, dann musst du statt $_POST natürlich auch $_GET nehmen.
 
sry geht auch mit GET auch nicht..

Hier ist mal ein teil des Code's des Guestbook admin pannals, vl hab ich irgend wo anders was falsches geschrieben:

PHP:
if($_REQUEST['Send'] && $Zugangspasswort == $_REQUEST['Passwort'])
{
    $DatabasePointer = mysql_connect("localhost", "$user", "$pw");
    mysql_select_db("$user", $DatabasePointer);

    if($_GET['Passwort'] && $_GET['Loeschen'])
    {
        mysql_query("DELETE FROM Gaestebuch WHERE Datum='".date("Y-m-d H:i:s", $_REQUEST['Datum'])."'", $DatabasePointer); 
    }

    if($_GET['comment'] && $_GET['Datum'])
    {
       mysql_query("UPDATE `Gaestebuch` set comment = '".$_GET['comfield']."' WHERE Datum = '".date("Y-m-d H:i:s", $_GET['Datum'])."'", $DatabasePointer);  
    }

    $ResultPointer = mysql_query("SELECT * FROM Gaestebuch ORDER BY Datum DESC", $DatabasePointer);

    for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
    {
        $Gaestebuch = mysql_fetch_object($ResultPointer);
    echo"
    <table border='0' cellspacing='0' cellpadding='0' >
     <tr >
       <td><b>Name:</b> $Gaestebuch->name - <b>Date:</b> $Gaestebuch->Datum </td> 
     </tr>

      <tr>
        <td>
           <b>$Gaestebuch->titel</b> <p/>
             <textarea name='eintrag' rows='10' class='formular' cols='50'>$Gaestebuch->message <br /> $Gaestebuch->comment</textarea>";
 
 ?>
    <input type="text" name="comfield" value="kommentar" size="100"> <br />
 
  <?php
.
.
.

Das ist nur mal die Rohversion des scripts..
 
Wenn du das Ganze Script postet würdest, wärs einfacher.

Hast du überhaupt das Formular definiert? (<form> ... </form>)
 
ok, hab mir nur gedacht, dass ich nur den teil poste um den es mit dem kommentaren geht:

PHP:
<?php
if($_REQUEST['Send'] && $Zugangspasswort == $_REQUEST['Passwort'])
{
    $DatabasePointer = mysql_connect("localhost", "$user", "$pw");
    mysql_select_db("$user", $DatabasePointer);

    if($_GET['Passwort'] && $_GET['Loeschen'])
    {
        mysql_query("DELETE FROM Gaestebuch WHERE Datum='".date("Y-m-d H:i:s", $_REQUEST['Datum'])."'", $DatabasePointer); 
    }

    if($_GET['comment'] && $_GET['Datum'])
    {
       mysql_query("UPDATE `Gaestebuch` set comment = '".$_GET['comfield']."' WHERE Datum = '".date("Y-m-d H:i:s", $_GET['Datum'])."'", $DatabasePointer);  
    }

    $ResultPointer = mysql_query("SELECT * FROM Gaestebuch ORDER BY Datum DESC", $DatabasePointer);

    for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
    {
        $Gaestebuch = mysql_fetch_object($ResultPointer);
    echo"
    <table border='0' cellspacing='0' cellpadding='0' >
     <tr >
       <td><b>Name:</b> $Gaestebuch->name - <b>Date:</b> $Gaestebuch->Datum </td> 
     </tr>

      <tr>
        <td>
           <b>$Gaestebuch->titel</b> <p/>
             <textarea name='eintrag' rows='10' class='formular' cols='50'>$Gaestebuch->message <br /> $Gaestebuch->comment</textarea>";
 
 ?>
    <input type="text" name="comfield" value="kommentar" size="100"> <br />
   <?php 
echo"
         </td>
       </tr>
      </table>
<a href=\"",
            $_SERVER['PHP_SELF'],
            "?Send=1&Passwort=",
            $_REQUEST['Passwort'],
            "&Loeschen=1&Datum=",
            strtotime($Gaestebuch->Datum),
            "\">Eintrag l&ouml;schen</a></td>",
            "</tr>",
            "<tr>",
            "<td><hr></td>",
            "</tr>";

echo"<a href=\"",
             $_SERVER['PHP_SELF'],
             "?Send=1&Passwort=",
             $_REQUEST['Passwort'],
             "&comment=1&Datum=",
              strtotime($Gaestebuch->Datum), "\">Eintrag kommentieren</a>";
    }


}
else
{
?>
<table border="0">
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="post">
 <tr>
  <td>Passwort</td>
  <td><input name="Passwort" size="10" type="password"></td>
 </tr>
 <tr>
  <td align="center" colspan="2"><input name="Send" type="submit" value="Login"></td>
 </tr>
</form>
</table>
<?php
}

?>

Mit einem Formular hab ich's auch schon versucht, jedoch ohne Erfolg.
Hab schon so ziemlich alles versucht :confused:
 
Versuch mal folgendes:

PHP:
mysql_query("UPDATE `Gaestebuch` set comment = '".$_GET['comfield']."' WHERE Datum = '".date("Y-m-d H:i:s", $_GET['Datum'])."'", $DatabasePointer) OR die(mysql_error());

Damit wird der MySQL-Error ausgegeben falls der Query nicht klappt. Wenn es ein MySQL-Error gibt poste den ins Forum.
 
Zurück