Martin2004: Gästebuch mit PHP (?) programmieren

Beitrag lesen

Hi Steffi,

Hier bekommst du mal ein Code. Denn habe ich auch so mal geschickt bekommen. Wenn du es leiber per Mail haben willst dann schreib mir deine Mail Adresse, denn schicke ich dir das auch zu.

Gruß Martin

Hier kommt der CODE:

Also ich schreibe erst den code dann erklär ich es.
Fangen wir mal an:

install.php
<?php
$connect = mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("gb") or die (mysql_error());

$sql = 'CREATE TABLE guestbook ('
. 'id INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,'
.'name VARCHAR( 20 ) NOT NULL ,'
.'hp VARCHAR( 20 ) NOT NULL ,'
.'email VARCHAR( 100 ) NOT NULL ' .'icq VARCHAR( 100 ) NOT NULL ' .'beitrag TEXT NOT NULL ,'
.'ip VARCHAR( 20 ) NOT NULL ,'

.')';
mysql_query($sql) or die(mysql_error()); ;
mysql_close($connect);
echo "Tabbellen wurden erstellt";
?>
[/code]
Einfach hochladen und install.php klicken und db´s werden erstellt.

index.php

Code:

<html>
<body>
<center><a href="index.php?content=formular">Neuer Eintrag</a>
</center>
<center><br>
<?php
$db= mysql_connect("localhost", "root", "");
mysql_select_db("db");

$anfrage = "SELECT * FROM guestbook  LIMIT 4";
echo "<table border=0 width=378 height=69>";
$ergebnis= mysql_query($anfrage);
$anz=mysql_num_rows($ergebnis);

for($a=$anz-1;$a>-1;$a--)
{
mysql_data_seek($ergebnis, $a);

$zeile=mysql_fetch_row($ergebnis);

echo "
   <tr>
    <td width=37 height=1>#$zeile[0]</td>
    <td width=302 height=19>$zeile[1]</td>
    <td width=25 height=19>$zeile[4]</td>
    <td width=35 height=19><a href=http://$zeile[2]><img border=0 src=http://alex.minden069.server4you.de/dF/Bilder/gb/hp.gif width=14 height=14></a></td>
    <td width=111 height=19><a href=mailto:$zeile[3]><img border=0 src=http://alex.minden069.server4you.de/dF/Bilder/gb/email.gif width=16 height=11></a></td>
  </tr>
  <tr>
    <td width=510 valign=top colspan=5 height=38><br>$zeile[5]</td>
  </tr>
   <tr>
<td width=37 height=1></td>
    <td width=302 height=19></td>
    <td width=25 height=19></td>
    <td width=35 height=19></td>
    <td width=111 height=19></td>
    </tr>";
}
echo "</table>";
mysql_close($db);
?>
</center>
</body>
</html>

Erklärung:
Code:

$anfrage = "SELECT * FROM guestbook";
echo "<table border=0 width=378 height=69>";
$ergebnis= mysql_query($anfrage);
$anz=mysql_num_rows($ergebnis);

for($a=$anz-1;$a>-1;$a--)
{
mysql_data_seek($ergebnis, $a);
$zeile=mysql_fetch_row($ergebnis);

bei der anfrage holen wir die Daten von der Datenbank!
Über echo "<table border=0 width=378 height=69>";
erstellen wir eine tabelle, warum davor? ganz einfach, weil er sonst ganz viele tabellen davon erstellt.
Über ergebnis fragen wir die db damit ab und damit auch die Gästebuch einträge sotiert werden, machen wir eine for schleife!
Der rest versteht sich von selbst :-)

Das html formular! ich habe es mal formular.html genannt!
Code:

<html>
<head>
<title>Eintragen</title>
</head>
<body>
<center>
<b>Neuer Gästebuch Eintrag</b>
</center>
<br>
<div align="center">
<form method="post" action="add.php">
<table border="0">
    <td width="100">Name:</td>
            <td width="200">
              <input type="text" name="name">
              </td>
          </tr>
          <tr>
            <td width="100">Homepage:</td>
            <td width="200">
              <input type="text" name="homepage" >
              </td>
          </tr>
          <tr>

<td width="100">Email:</font></td>
            <td width="200">
              <input type="text" name="email" >
             </td>
          </tr>
          <tr>
            <td width="100">ICQ#:</font></td>
            <td width="200">
              <input type="text" name="icq">
              </td>
          </tr>
          <tr>

<td width="100" valign="top">Beitrag:</font></td>
            <td width="200">
              <textarea name="beitrag"  rows="7" cols="35"></textarea>
            </td>
          </tr>
          <tr>
            <td> </td>

<td>&nbsp; </td>
          </tr>
          <tr>

<td width="100"> </td>
            <td width="200">
              <input type="submit" name="Submit" value="Neuer Eintrag">
              </td>
</table>
</form>
</div>
</body>
</html>

Ich glaube den html code versteht auch jeder ;-)
wenden wir uns lieber den haupteil der add.php an.

add.php

Code:

<?php
$host = "localhost";
$user = "root";
$pwd  = "";
$db   = "gb";

$name     = $_POST['name'];
$hp       = $_POST['homepage'];
$email    = $_POST['email'];
$icq      = $_POST['icq'];
$beitrag  = $_POST['beitrag'];
$ip       = $_SERVER['REMOTE_ADDR'];

$verbindung = mysql_connect($host, $user, $pwd);
    mysql_select_db($db);

if($verbindung)
    {
     $sql = "INSERT INTO guestbook ( id , name , hp , email , icq , beitrag , ip )"
        . "VALUES ( "$id", "$name", "$hp", "$email", "$icq", "$beitrag", "$ip" );"
        . " ";

mysql_query($sql, $verbindung);
     echo "Der Eintrag wurde erfolgreich erstellt<br>\n <a href='index.php'>zurück zum Gästebuch";

mysql_close();
    }
    else
    {
    echo "Verbindung konnte nicht hergestellt" . " werden.<br>\n";
    echo mysql_errno() . ": ". mysql_error() . "<br>\n";
    }

?>

Über $_POST holen wir uns die sachen aus dem action!
Das heißt von der formular.html die abgesendet wurde!
Ich habe mal eine if schleife benutzt fals Fehlermeldungen!
Kann man aber auch wegmachen!
Mit INSERT INTO fügt man dann einfach die sachen ein und fertig ist das GB!
Ich hoffe das tutorial hat euch gefallen!
Sonst würde ich noch mehr machen..
mfg aleX
 502 mal angeschaut