[PHP/MySQL] Gästebuch für eigene Homepage

radeon55

Stammgast
Ich möchte ein Gästbuch auf meiner Homepage machen. Hab mir eigentlich schon eins ausgesucht aber habe mit dem nun gewisse Probleme. Hab auf dem Hosting Control Panel gesehen dass ich eine MySQL Datenbank erstellen kann. Für die einen Gästebücher die man herunterladen kann braucht man eine solche Datenbank. Aber was muss ich mit der Datenbank und dem heruntergeladenen GB machen?
 

sergey

Stammgast
Was ist es denn für ein Gästebuch?
Wenn wir wüssten, um was für eines es sich handelt könnten wir dir näher helfen.

Nur mal so viel:
In den Dateien zum Gästebuch sollte sich ein .sql Datei befinden, diese kannst du in die Datenbank einfügen lassen.

Gruss

sergey
 

Dragonlord

PCtipp-Moderation
Teammitglied
Gästebuch

Also zuerst musst Du dir Deine Datenbank auf Deinem Server einrichten.

Das machst Du mit dem folgenden Code:
Code:
CREATE DATABASE gaestebuch;

CREATE TABLE gaeste
(
    id int(4) NOT NULL auto_increment,
    datum datetime,
    name varchar(64),
    vorname varchar(64),
    nickname varchar(64),
    email varchar(128),
    message text,
    CONSTRAINT PK_gaeste PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
Nachher musst du die PHP-Datei abändern so dass diese auf Deine Datenbank stimmt (gaeste.php).
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
****************************
*    Design and            *
*    Programming by        *
****************************
//--> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
    <title>Gästebuch</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta http-equiv="content-language" content="de, at" />
    <meta http-equiv="pragma" content="no-cache" />
    <meta name="design" content="*" />
    <meta name="author" content="*" />
    <meta name="date" content="2008-01-21" />
    <meta name="description" content="*" />
    <meta name="keywords" content="*" />
    <meta name="robots" content="index" />
    <meta name="robots" content="follow" />
    <meta name="revisit-after" content="30 days" />
    <!-- Deine CSS-Datei -->
    <link rel="stylesheet" type="text/css" href="*" />
    <script type="text/javascript">
    /* <![CDATA[ */
    function chkFormular()
    {
      if (document.gaeste.vorname.value == "")
        {
        alert("Bitte Ihren Vornamen eingeben!");
        document.gaeste.vorname.focus();
        return false;
      }
        if (document.gaeste.name.value == "")
        {
        alert("Bitte Ihren Namen eingeben!");
        document.gaeste.name.focus();
        return false;
      }
      if (document.gaeste.nickname.value == "")
        {
        alert("Bitte Ihren Nicknamen eingeben!");
        document.gaeste.nickname.focus();
        return false;
      }
        if (document.gaeste.email.value == "")
        {
        alert("Bitte Ihre Emailadresse eingeben!");
        document.gaeste.email.focus();
        return false;
      }
      if (document.gaeste.email.value.indexOf("@") == -1)
        {
        alert("Keine E-Mail-Adresse!");
        document.gaeste.email.focus();
        return false;
      }
      if (document.gaeste.message.value == "")
        {
        alert("Bitte Kommentar eingeben!");
        document.gaeste.message.focus();
        return false;
      }
    }
    function warnung()
    {
        return confirm('Wollen Sie die Eingaben wirklich l\u00f6schen?');
    }
    /* ]]> */
    </script>
    <?php
    /* Datenbank einbinden */
    include "db.inc.php";
    
    /* Datenbankeintrag erstellen */
    if (isset($_POST['submit']))
    {
        mysql_query("
            INSERT INTO gaeste (datum, name, vorname, nickname, email, message)
            VALUES (now(), '".$_POST['name']."', '".$_POST['vorname']."', '".$_POST['nickname']."', '".$_POST['email']."', '".$_POST['message']."')");
    }
    
    /* Datenbank auslesen */
    $result = mysql_query ('
        SELECT UNIX_TIMESTAMP(datum) AS datum, name, vorname, nickname, message
        FROM gaeste
        ORDER BY datum DESC');
    ?>
</head>
<body>
<!-- Eingabe Daten -->
<form name="gaeste" action="gaeste.php" method="post" onsubmit="return chkFormular();" onreset="return warnung();">
    <table border="0" cellpadding="0" cellspacing="2" width="1000">
        <tr>
            <td colspan="2"><h1>Gästebuch</h1></td>
        </tr>
        <tr>
            <td colspan="2"> </td>
        </tr>
        <tr>
            <td colspan="2"><h3>Neuer Eintrag</h3></td>
        </tr>
        <tr>
            <td colspan="2"> </td>
        </tr>
        <tr>
            <td>Vorname</td>
            <td><input name="vorname" type="text" maxlength="40" size="25" /></td>
        </tr>
        <tr>
            <td>Name</td>
            <td><input name="name" type="text" maxlength="40" size="25" /></td>
        </tr>
        <tr>
            <td>Nickname</td>
            <td><input name="nickname" type="text" maxlength="40" size="25" /></td>
        </tr>
        <tr>
            <td>Email</td>
            <td><input name="email" type="text" maxlength="40" size="25" /></td>
        </tr>
        <tr>
            <td valign="top">Mitteilung</td>
            <td><textarea name="message" cols="60" rows="5"></textarea></td>
        </tr>
        <tr>
            <td colspan="2"> </td>
        </tr>
        <tr>
            <td> </td>
            <td><input type="submit" name="submit" value="Eintragen" />  <input type="reset" name="reset" value="Löschen"</td>
        </tr>
    </table>
</form>
<!-- Ausgabe Daten -->
<table border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td colspan="2"><h1>Einträge</h1></td>
    </tr>
    <?php
        /* Ausgabe */
        if (mysql_num_rows($result) == 0)
        {
            echo "<tr>";
            echo "<td colspan=\"2\">Es sind keine Eintrgäe vorhanden</td>";
            echo "</tr>";
        }
        
        for ($row = 0; $row < mysql_num_rows($result); $row++)
        {
            $eintrag = localtime(mysql_result($result, $row, 'datum'), true);
            $monate = Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
            $monat = $eintrag['tm_mon'];
            $jahr = $eintrag['tm_year'] + 1900;
            $stunde = $eintrag['tm_hour'] < 10 ? "0".$eintrag['tm_hour'] : $eintrag['tm_hour'];
            $minuten = $eintrag['tm_min'] < 10 ? "0".$eintrag['tm_min'] : $eintrag['tm_min'];
            
            if ($row % 2 == 0)
            {
                echo '<tr class="grau">';
            }
            else
            {
                echo '<tr class="weiss">';
            }
            echo '<td>';
            echo "<b>".mysql_result($result, $row, 'vorname')." ".mysql_result($result, $row, 'name')."</b> schrieb am ".$eintrag['tm_mday'].". ".$monate[$monat]." ".$jahr." um ".$stunde.":".$minuten;
            echo '</td>';
            
            echo '</tr>';
            
            if ($row % 2 == 0)
            {
                echo '<tr class="grau">';
            }
            else
            {
                echo '<tr class="weiss">';
            }
            
            echo '<td>';
            echo mysql_result($result, $row, 'message');
            echo '</td>';
            
            echo '</tr>';
        }
    ?>
</table>
</body>
</html>
Jetzt brauchst Du noch die Datenbankverbindung zu Deiner Datenbank (db.inc.php).
Code:
<?php
$sql['host'] = "localhost";
$sql['user'] = ""; /* Dein Benutzernamen */
$sql['password'] = ""; /* Dein Passwort */
$sql['db'] = ""; /* Den Datenbanknamen */

mysql_connect ($sql['host'], $sql['user'], $sql['password']) or die("Error");

mysql_select_db ($sql['db']) or die("Error");
?>
lg Roger
 
Zuletzt bearbeitet:

radeon55

Stammgast
Was ist es denn für ein Gästebuch?
Wenn wir wüssten, um was für eines es sich handelt könnten wir dir näher helfen.

Nur mal so viel:
In den Dateien zum Gästebuch sollte sich ein .sql Datei befinden, diese kannst du in die Datenbank einfügen lassen.

Gruss

sergey


Es handelt sich um dieses Gästebuch: http://www.toms-seiten.at/iv_downloads/details.php?dl_id=3&language=de

Habe schon runtergeladen. aber irgendwie find ich das recht kompliziert. Vorallem die tabellen herzustellen, hat zwar ne anleitung, komme aber nicht draus..
 

radeon55

Stammgast
hehe. ähhhm. das Problem ist, dass ich nicht so recht weiss wohin mit denn codes...

vielleicht ist spätenstens jetzt klar, dass ich grosser Anfänger bin..:P
 

Dragonlord

PCtipp-Moderation
Teammitglied
Code

Mit dem ersten Teil erstellt Du die Datenbank auf dem Server.

Die Datei gaeste.php ist die Ausgabe und für das Erstellen von neuen Beiträgen im Gästebuch. Die Datei db.inc.php ist die Verbindung zur Datenbank.

Beide Dateien müssen sich im gleichen Ordner befinden.

lg Roger
 

radeon55

Stammgast
Mit dem ersten Teil erstellt Du die Datenbank auf dem Server.

Die Datei gaeste.php ist die Ausgabe und für das Erstellen von neuen Beiträgen im Gästebuch. Die Datei db.inc.php ist die Verbindung zur Datenbank.

Beide Dateien müssen sich im gleichen Ordner befinden.

lg Roger

Die Datenbank kann ich im Hosting Control Panel erstellen, dann krieg ich passwort und name der Datenbank. und dann könnte ich Tabellen machen oder auch ein SQL code einfügen. Was mache ich nun mit deinem 1. Code? Bei der Datenbank als Code einfügen?
Und dein 2. Code ist das Gästebuch, wo ich dann noch meine css datei einfügen kann? und im Grunde hast du mir ein Gästebuch fertig zugeschickt?
 

Dragonlord

PCtipp-Moderation
Teammitglied
Gästebuch

Ja, ich habe Dir ein fertiges Gästebuch geschickt. Musst es nur anpassen.

lg Roger
 

radeon55

Stammgast
Hab den Code eingegeben und auf OK gedrückt doch dann liefert er mir das:

Fehler

SQL-Befehl:

CREATE DATABASE gaestebuch;

MySQL meldet: Dokumentation
#1044 - Access denied for user 'web317'@'localhost' to database 'gaestebuch'
 

Dragonlord

PCtipp-Moderation
Teammitglied
SQLCode

Ok, dann gebe nur diesen ein:

Code:
CREATE TABLE gaeste
(
    id int(4) NOT NULL auto_increment,
    datum datetime,
    name varchar(64),
    vorname varchar(64),
    nickname varchar(64),
    email varchar(128),
    message text,
    CONSTRAINT PK_gaeste PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
lg Roger
 

Oktopus

Neues Mitglied
Warum so kompliziert?

Es handelt sich um dieses Gästebuch: http://www.toms-seiten.at/iv_downloads/details.php?dl_id=3&language=de

Habe schon runtergeladen. aber irgendwie find ich das recht kompliziert. Vorallem die tabellen herzustellen, hat zwar ne anleitung, komme aber nicht draus..

Kurz:
Ich bin derjenige der das genannte Gästebuch geschrieben hat.

Warum hast du nicht direkt nachgefragt? Ich habe bisher noch jedem geholfen.

Im Grunde ist es ganz einfach:

In der Datei config.php die Daten zur Datenbank eintragen (Solltest du von deinem Hoster entweder bekommen haben oder in deinen Einstellungen finden/ändern/angeben könnnen.

Dann das ganze auf den Server.

install.php über den Browser aufrufeb und dann wars das im großen und ganzen.
 
Oben