Datenbankeiträge werden nicht immer eingetragen

perry_sheer

Neuer Benutzer
Beiträge
2
Hallo zusammen.
Vorneweg eine kurze Vorstellung. Ich bin Bauleiter bei einer Baufirma und programmiere nebenbei Hobbymäßig für Vereine wo ich auch Mitglied bin Homepagenseiten. Das habe ich früher in HTML gemacht. In letzter Zeit aber mehr in php und mysql. Nun ist aber unser Ehrenmitglied und Namensgeber verstorben und ich hatte eine Kondolenzseite eingerichtet. Ich konnte vorher nicht ahnen, dass sich hier so viele Leute auch Nichtmitglieder eintragen. Mittlerweile sind es schon um die 80 Einträge und es werden immer mehr. Und nun taucht ein Problem auf. Ich werde in den letzten 3 Tagen immer wieder angeschrieben, dass der Eintrag nicht funktioniert. Ich weis auch nicht woran das liegt. Kurzum: Die Einträge funktionieren bei bestimmten Leuten und bei anderen Leuten wiederum nicht.

Hier mal die Seite.
Burg Eckbertstein

Zum testen habe ich auch noch diese Seite eingerichtet:
Burg Eckbertstein
Diese Seite ist nicht öffentlich.
Vielleicht hat jemand schon Erfahrung mit einer solchen Sache.
Die Seite ist in php aufgebaut und die Einträge werden in einer mysql Datenbank bei Strato eingetragen.
Kann mir jemand Bitte helfen?
Danke
(bis heute Abend)
Hier der Quellcode:

Code:
    <table class="kondolenz_bilder">
  <tr>
    <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
    <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
    <td><img class="bildrechts-rahmen" src="kondolenz/bilder/hansrudi_waescher.jpg" width="600" height="446"/></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>
    </td>
  </tr>

  <tr>
    <td>
    <?php
//echo "Formulareingaben:<br />";
function stringbereinigen ( $inhalt )
{
    $inhalt = strip_tags ( $inhalt );
    $inhalt = trim ( $inhalt );
    return  ( $inhalt );
}
    //   OR  $_POST['besuchername'] != ""


    if ( $_POST['eintrag_'] != ""  AND  $_POST['besuchername_'] != ""  )
    {
        $sql = "
        INSERT INTO`DBxxxxxxx`.`hansrudi_waescher02` (
             `id` ,
             `name` ,
             `email` ,
             `url` ,
             `eintrag` ,
             `zeitpunkt`
        )
        VALUES (
         NULL ,
         '". stringbereinigen ( $_POST['besuchername_'] )."',
         '". stringbereinigen ( $_POST['email_'] )."',
         '". stringbereinigen ( $_POST['url_'] )."',
         '". stringbereinigen ( $_POST['eintrag_'] )."',
         '". date("Y-m-d | H:i:s")  ."'
        );
        ";
             // echo "<br />SQL: $sql <br />";

             $link = mysql_connect("rdbms.strato.de", "U1xxxxxx", "xxxxxxx");
             mysql_select_db('DBxxxxxx');

             mysql_query($sql);
             echo "Ihr Eintrag wurde gespeichert";
             $_POST['besuchername_'] ="";
             $_POST['email_'] ="";
             $_POST['url_'] ="";
             $_POST['eintrag_'] ="";
    }
    else
    {


            if ( $_POST['eintrag_'] != "" )
            {
               echo "<b class='rot' >Bitte auch ihren Namen eintragen</b>";
               echo "<br /><br />";
            }


            if ( $_POST['besuchername_'] != "" )
            {
               echo "<b class='rot' >Bitte auch was im Feld Eintrag eintragen</b>";
               echo "<br /><br />";
            }


            if ($_POST['abgesendet'] == 'ja' AND $_POST['besuchername_'] == "" AND  $_POST['eintrag_'] == "" )
            {
               echo "<b class='rot' >Bitte alle Pflichtfelder ausfüllen</b>";
               echo "<br /><br />";
            }

    }


             $link = mysql_connect("rdbms.strato.de", "U1xxxxxx", "xxxxxx");
             mysql_select_db('DBxxxxxxx');

//$db_erg = mysql_query("SELECT * FROM hansrudi_waescher02 ORDER BY zeitpunkt DESC");
$db_erg = mysql_query("SELECT * FROM hansrudi_waescher02 ORDER BY zeitpunkt ASC");
//echo $db_erg;
while ($datensatz = mysql_fetch_array($db_erg, MYSQL_ASSOC))
{
//print_r ( $datensatz );
echo "<table border='0' bgcolor='#ffffff' width='1000px'>";
  echo "<tr>";
    echo "<td>";
echo "<fieldset >";
echo "<legend >";
echo "<b>Eingetragen von: </b>";
echo $datensatz['name'];
echo "</legend>";

echo"<pre>";
if ($datensatz['email'] != "")
    {
    echo "<b>            E-Mail: </b>";
    echo "<a href=mailto:";
    echo $datensatz ['email'];
    echo ">";
    echo $datensatz ['email'];
    echo "</a>";
    echo "<br />";
    }


if ($datensatz['url'] != "")
    {
    echo "<b>          Internet: </b>";
    echo "<a href=\"{$datensatz['url']}\">";
    echo $datensatz['url'];
    echo "</a>";
    echo "<br />";
    }


echo "<b>    Eingetragen am:</b> ";
echo $datensatz['zeitpunkt'];
echo "<br />";
echo"</pre>";


echo "<br />";

echo nl2br ($datensatz['eintrag']);  // nl2br = Umbrüche werden gezeigt

echo "</fieldset>";
echo "</td>";
  echo "</tr>";
echo "</table>";

echo "<br />";
echo "<br />";
}

?>
    </td>
  </tr>

    <tr>
    <td>
    <fieldset>
<legend>
<h3>Hier k&ouml;nnen Sie einen Eintrag ins Kondolenzbuch machen!</h3><h6>  * = Pflichtfelder - Eintrag Homepage mit http://</h6>
</legend>
<br />
<pre>
<form action="kondolenz/hansrudi_waescher02.php" method="post">
        * Name:<input type="text" name="besuchername_"size="60" value="<?php echo $_POST['besuchername_']; ?>" />
E-Mail_Adresse:<input type="text" name="email_"       size="60" value="<?php echo $_POST['email_']; ?>" />
Ihre Homepage:<input type="text" name="url_"         size="60" value="<?php echo $_POST['url_']; ?>" />
* Ihr Eintrag:<textarea          name="eintrag_"  cols="60" rows="8" ><?php echo $_POST['eintrag_']; ?></textarea>
               <input type="hidden" name="abgesendet" value="ja"/>
               <input type="submit" value="speichern" />
               <br />
</pre>
</form>
</fieldset>
    </td>
  </tr>

</table>
 

Anhänge

Werbung:
Also PHP behersche ich nicht und in diesem Forum ist das auch nicht wirklich zu erwarten. Dein SQL ist sehr simpel, ich wüsste nicht, was da für ein Fehler drin stecken sollte. Das einzige was ich merkwürdig finde ist, das du in deinem INSERT die id Spalte angibst und dann NULL einträgst. Das macht nicht wirklich Sinn, das könnte beides raus. Die id muss in jedem Fall von der Datenbank vergeben werden (AUTO_INCREMENT) oder NULL Werte erlauben.
 
Die Mysql-Extension in PHP ist deprecated bzw. in aktuellen PHP-Versionen gar nicht mehr da -> nicht verwenden. Du hast KEINERLEI Fehlerprüfung/Behandlung. Dein Code ist sehr wahrscheinlich anfällig für SQL-Injection. Du baust dafür mysql_real_escape_string() in Deiner stringbereinigen() - Funktion zwar nach, aber nur unvollständig. Einen Timestamp kann die DB selber setzen - vermutlich hast Du da eh den falschen Datentyp. ID-Spalte auf NULL zu setzen wurde schon gesagt, daß select * böse ist noch nicht.

tl;dr

das ist a) massiver Pfusch und b) hier falsch. Du hast (in erster Linie) ein PHP-Problem.
 
Werbung:
Zurück
Oben