Frage von KillermasterxD, 44

Kein Eintrag wieso?

<html>
<head>
<title>Gästebuch</title>
<link rel="stylesheet" type="text/css" href="/stylesheet2.css" />
</head>
<body>
<h1>Gästebuch</h1>
<?php
$name  = $_POST["name"];
$mail  = $_POST["mail"];
$nachricht  = $_POST["nachricht"];

if($name == "" or $mail == "" or $nachricht == "") {
    echo "Du hast die Felder nicht ausgefüllt...";
} else {
    $verbindung = mysql_connect("localhost", "Benutzername", "Passwort")
    or die ("Fehler im System");
    
    mysql_select_db("fireoftheempire")
    or die ("Verbindung zur Datenbank war nicht möglich...");
    
    $id = 0;
    $abfrage = "SELECT id FROM Gästebuch ORDER BY id DESC LIMIT 1";
    $ergebnis = mysql_query($abfrage);
    while (row == mysql_fetch_object($ergebnis))
    {
        $id = $row->id;
    }
    $id++;
    
    $timestamp = time();
    $datum = date("d.m.Y", $timestamp);
    
    $nachricht = str_replace("ä", "&auml;", $nachricht);
    $nachricht = str_replace("Ä", "&Auml;", $nachricht);
    $nachricht = str_replace("ö", "&ouml;", $nachricht);
    $nachricht = str_replace("Ö", "&Ouml;", $nachricht);
    $nachricht = str_replace("ü", "&uuml;", $nachricht);
    $nachricht = str_replace("Ü", "&Uuml;", $nachricht);
    $nachricht = str_replace("ß", "&szlig;", $nachricht);
    $nachricht = str_replace("<", "<nbsp;", $nachricht);
    $nachricht = str_replace(">", ">nbsp;", $nachricht);
    $nachricht = str_replace("\r\n", "<br />/;", $nachricht);
    
    $name = str_replace("ä", "&auml;", $name);
    $name = str_replace("Ä", "&Auml;", $name);
    $name = str_replace("ö", "&ouml;", $name);
    $name = str_replace("Ö", "&Ouml;", $name);
    $name = str_replace("ü", "&uuml;", $name);
    $name = str_replace("Ü", "&Uuml;", $name);
    $name = str_replace("ß", "&szlig;", $name);
    $name = str_replace("<", "<nbsp;", $name);
    $name = str_replace(">", ">nbsp;", $name);
    
    $eintrag = "INSERT INTO 'fireoftheempire'.'Gästebuch'
    ('Id', 'Name', 'E-mail', 'Text', 'Date')
    
    VALUES
    ('$id', '$name', '$mail', '$nachricht', '$datum')";
    
    $eintragen = mysql_query($eintrag);
    
    if($eintragen = true) {
    echo  "Danke Dir! Dein Eintrag wurde gespeichert...<br />
    <a href='<a href="http://fireoftheempire.bplaced.net/g&buch/">http://fireoftheempire.bplaced.net/g&buch/</a>'>Zurück &raquo;</a>";

    }  else {
    echo "Fehler im System. Konnte nicht gespeichert werden...";
    }
    mysql_close($verbindung);
    
}

?>
</body>
</html>

Ich habe das problem gelöst das alles glatt läuft nurnoch ein Problem gibt es: Es füllt nichts in die Datenbank ein!

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Malemeister, 31

Hallo,

sorry aber wenn ich mir den Code angucke dann... Ach ich lass es lieber, wird eh nicht geändert.

Du solltest die Funktion mysql_ nicht mehr benutzen da Sie in der neusten Version von PHP nicht mehr unterstützt werden. Nimm stattdessen mysqli_ oder am besten gleich PDO. Ansonsten wird dein Script auch nicht mehr lange laufen (nur noch so lange wie deine PHP Version nicht geupdatet wird).

Schau dir also einmal mysqli_ oder PDO an und änder dein Script entsprechend um.

Kommentar von KillermasterxD ,

Ok, ich danke dir, geht PgSQL?

Kommentar von Malemeister ,

Nutzt du eine Postgres Datenbank? Wenn ja, dann musst du diese Funktion sogar nehmen. Wenn nicht (wenn du eine andere Datenbank benutzt, z.B. MySQL) dann wird das nichts.

Lies dir bitte die Dokus von php.net durch. Da steht alles was du wissen musst!

Achso: Und Past & Copy wird nie funktionieren. Also lass es lieber sein...

Kommentar von KillermasterxD ,

Benutze jetzt Postgre Datenbank schreibe grade alles um

Antwort
von maximilianus7, 15


 if($eintragen = true) {


du meinst

 if($eintragen == true) {


aber besser ist:

 if( $eintragen ) {


(weil: so sieht es aus, als ob du das konzept der booleschen variablen verstanden hast)

ich weiss nicht obs nur so aussieht, aber ich sehe in der query, dass du die db-objekte mit einem single quote ' einrahmst statt dem back-tick `
wenn dem so ist, ist dein sql syntaktisch falsch, er liefert also false zurück, was du aber falsch abfragst 

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten