Sry 4 DP, aber war ja gestern.
Also, ich hab jetzt das Gästebuch einer anderen Seite etwas bearbeitet. Da ist noch kein HTML-Grundgerüt drin, ist aber AFAIK voll funktionsfähig.
Das mit dem "Datenbank/Tabelle erstellen" bin ich mir nicht sicher, sollte aber so funktionieren.
PHP-Code:
<?php
### MySQL-Zugangsdaten und MySQL-Datenbank festlegen, müssen angepasst werden
define ( 'MYSQL_HOST' , 'localhost' );
define ( 'MYSQL_USER' , 'User' );
define ( 'MYSQL_PASS' , 'PWD' );
define ( 'MYSQL_DB' , 'Datenbank' );
$db_link = mysql_connect ( MYSQL_HOST , MYSQL_USER , MYSQL_PASS );
if(!@ mysql_select_db ( MYSQL_DB ))
{
mysql_query ( "CREATE DATABASE `" . MYSQL_DB . "`;" );
$sql = 'CREATE TABLE `guestbook` ('
. ' `id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT, '
. ' `name` VARCHAR(50) NOT NULL, '
. ' `mail` VARCHAR(100) NOT NULL, '
. ' `icq` INT(10) UNSIGNED NOT NULL, '
. ' `aim` VARCHAR(50) NOT NULL, '
. ' `msn` VARCHAR(100) NOT NULL, '
. ' `homepage` VARCHAR(100) NOT NULL, '
. ' `text` TEXT NOT NULL, '
. ' `time` INT(10) NOT NULL,'
. ' PRIMARY KEY (`id`)'
. ' )' ;
mysql_query ( $sql );
}
### Überprüfen, ob alles richtig ausgefüllt wurde
if(isset( $_POST [ 'send' ]) AND $_POST [ 'send' ] == 'Eintragen' AND !empty( $_POST [ 'name' ]) AND !empty( $_POST [ 'text' ]))
{
### Einträge auf Richtigkeit überprüfen
$name = htmlspecialchars ( $_POST [ 'name' ]);
$mail = (( preg_match ( '#.+@.+\.#' , $_POST [ 'mail' ])) ? htmlspecialchars ( $_POST [ 'mail' ]) : '' );
$icq = (( preg_match ( '#[^0-9]#' , $_POST [ 'icq' ])) ? '' : $_POST [ 'icq' ]);
$aim = htmlspecialchars ( $_POST [ 'aim' ]);
$msn = htmlspecialchars ( $_POST [ 'msn' ]);
$homepage = htmlspecialchars ( $_POST [ 'homepage' ]);
$text = htmlspecialchars ( $_POST [ 'text' ]);
### Einträge in Datenbank schreiben
mysql_query ( "INSERT INTO `guestbook` (`name`, `mail`, `icq`, `aim`, `msn`, `homepage`, `text`, `time`) VALUES ('" . $name . "', '" . $mail . "', '" . $icq . "', '" . $aim . "', '" . $msn . "', '" . $homepage . "', '" . $text . "', UNIX_TIMESTAMP());" );
}
?>
<form action="<?php echo $_SERVER [ 'REQUEST_URI' ]; ?> " method="post">
<fieldset style="width: 450px;">
<legend>Neuen Eintrag erstellen</legend>
<table>
<tr>
<td style="text-align: right;">Name:</td>
<td><input type="text" name="name" maxlength="50" /></td>
<td>Eintrag:</td>
</tr>
<tr>
<td style="text-align: right;">E-Mail:</td>
<td><input type="text" name="mail" maxlength="100" /></td>
<td rowspan="5"><textarea name="text" style="width: 100%; height: 120px;"></textarea></td>
</tr>
<tr>
<td style="text-align: right;">ICQ-Nummer:</td>
<td><input type="text" name="icq" maxlength="10" size="10" /></td>
</tr>
<tr>
<td style="text-align: right;">AIM-Addy:</td>
<td><input type="text" name="aim" maxlength="50" /></td>
</tr>
<tr>
<td style="text-align: right;">MSN-Addy:</td>
<td><input type="text" name="msn" maxlength="100" /></td>
</tr>
<tr>
<td style="text-align: right;">Homepage:</td>
<td><input type="text" name="homepage" maxlength="100" /></td>
</tr>
<tr>
<td colspan="3" style="text-align: center; font-size: 8pt;">
Die Felder "Name" und "Eintrag" müssen ausgefüllt werden!<br />
<?php
### Fehlermeldungen ausgeben, wenn nicht alle benötigten Felder ausgefüllt wurden
if(isset( $_POST [ 'send' ]) AND $_POST [ 'send' ] == 'Eintragen' )
{
### Wenn das Feld "Name" leer ist...
if(empty( $_POST [ 'name' ]))
{
echo '<span style="color: #FF0000;">Es wurde kein Name eingegeben!</span><br />' ;
}
### Wenn das Feld "Eintrag" leer ist...
if(empty( $_POST [ 'text' ]))
{
echo '<span style="color: #FF0000;">Es wurde kein Eintrag eingegeben!</span><br />' ;
}
}
?>
<input type="submit" name="send" value="Eintragen" /> <input type="reset" />
</td>
</tr>
</table>
</fieldset>
</form>
<div>
<?php
### Einträge ausgeben
$eintraege = mysql_query ( "SELECT * FROM `guestbook` ORDER BY `time` DESC;" ); // Einträge aus der Datenbank laden
$anzahl = mysql_num_rows ( $eintraege );
$i = 0 ;
while( $row = @ mysql_fetch_array ( $eintraege ))
{
$text = preg_replace ( '#(http\:\/\/[^ ]+)#is' , '<a href="\\1">\\1</a>' , $row [ 'text' ]);
$text = str_replace ( "\n" , "<br />\n" , $text );
echo '<table style="width: 100%; border: 1px #AAAAFF solid;">' . "\n" ;
echo '<tr style="background-color: #AAAAFF; color: #000022;">' . "\n" ;
echo ' <td><span style="float: left; font-size: 10pt;">' .( $anzahl - $i ). '. ' . $row [ 'name' ]. '</span>' ;
if(isset( $row [ 'mail' ]) OR isset( $row [ 'icq' ]) OR isset( $row [ 'aim' ]) OR isset( $row [ 'msn' ]) OR isset( $row [ 'homepage' ]))
{
echo '<span style="float: right; font-size: 7pt;">' ;
if(!empty( $row [ 'mail' ]))
{
echo '| E-Mail: <a href="mailto:' . $row [ 'mail' ]. '">' . $row [ 'mail' ]. '</a>' ;
}
if(!empty( $row [ 'icq' ]))
{
echo ' | ICQ: ' . $row [ 'icq' ];
}
if(!empty( $row [ 'aim' ]))
{
echo ' | AIM: ' . $row [ 'aim' ];
}
if(!empty( $row [ 'msn' ]))
{
echo ' | MSN: ' . $row [ 'msn' ];
}
if(!empty( $row [ 'homepage' ]))
{
echo ' | Homepage: <a href="' . $row [ 'homepage' ]. '">' . $row [ 'homepage' ]. '</a>' ;
}
echo "</span>\n" ;
}
echo "</td>\n" ;
echo "</tr>\n" ;
echo "<tr>\n" ;
echo ' <td>' . $text . "</td>\n" ;
echo "</tr>\n" ;
echo "</table>\n" ;
$i ++;
}
?>
</div>
Ich hoffe, das geht so durch. Wenn du noch Probleme hast, melde dich (oder wenn du Fehler findest)