Hallo,
folgendes funktioniert lokal mit Xampp bis auf 1 kleinen Fehler wunderbar:
PHP
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Titel</title>
<?php
include ('../meta.php')
?>
</head>
<body>
<div id="umschluss">
<div id="header">
<p>
</p>
</div>
<!--header ende-->
<div id="nav">
<ul>
<li> <a href="../index.php">Startseite</a></li>
<li> <a href="../sites/ueber.php">Über mich</a></li>
<li> <a href="../sites/galerie.php">Bildergalerie</a></li>
<li> <a href="../sites/kontakt.php">Kontakt</a></li>
<li> <a href="../sites/links.php">Links</a></li>
<li> <a class="fett" href="../sites/impr.php">Impressum</a></li>
</ul>
</div><!--nav ende-->
<div id="inhalt">
<h1>Gästebuch</h1><br />
<?php
//hier werden daten fuer mysql definiert
define ( 'MYSQL_HOST', 'localhost' );
define ( 'MYSQL_BENUTZER', 'licht-fische' );
define ( 'MYSQL_KENNWORT', 'hättet ihr wohl gerne :P' );
define ( 'MYSQL_DATENBANK', 'licht-fische' );
//post variablen setzen (komischer vorgang bei neuen php versionen)
if (isset($_POST['name'])) $name = $_POST['name'];
if (isset($_POST['email'])) $email = $_POST['email'];
if (isset($_POST['eintrag'])) $eintrag = $_POST['eintrag'];
if (isset($_POST['url'])) $url = $_POST['url'];
//fehler
$fehler = "";
//wenn der absenden button gedrückt wurde, dann
if (isset($_POST["senden"])){
//captcha korrekt?
if (isset($_SESSION['captcha']) AND $_POST['sicherheitscode'] == $_SESSION['captcha']){
//wenn ja, session löschen
unset($_SESSION['captcha']);
$codefehler = "";
}
else {
$fehler .= "fehler";
/*echo "Der Sicherheitscode wurde falsch abgetippt!<br>";*/
$codefehler = "Der Sicherheitscode wurde falsch abgetippt!<br>";
echo "$codefehler";
}
//name leer?
if(($_POST['name']) == ""){
echo "Bitte ergänzen Sie den Namen!";
}
//Gaestebucheintrag leer?
if(($_POST['eintrag']) == ""){
echo "Bitte ergänzen Sie den Gästebucheintrag!";
}
//wenn fehler NICHT 0, dann ausgeben
if ($fehler != ""){
echo "$codefehler";
}
//wenn DOCH 0, dann speichern
else {
$sql = " INSERT INTO gaestebuch ";
$sql .= " SET ";
$sql .= " name ='". $_POST['name'] ."', ";
$sql .= " email ='". $_POST['email'] ."', ";
$sql .= " url ='". $_POST['url'] ."', ";
$sql .= " datum ='". date("Y-m-d H:i:s") ."', ";
$sql .= " eintrag='". $_POST['eintrag'] ."' ";
echo "<hr />SQL: $sql<hr />";
//define ( 'MYSQL_HOST', 'localhost' );
//define ( 'MYSQL_BENUTZER', 'root' );
//define ( 'MYSQL_KENNWORT', '' );
//define ( 'MYSQL_DATENBANK', 'anwendungen' );
$db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
if ( ! $db_link )
{
// hier sollte dann später dem Programmierer eine
// E-Mail mit dem Problem zukommen gelassen werden
// die Fehlermeldung für den Programmierer sollte
// das Problem ausgeben mit: mysql_error()
die('keine Verbindung zur Zeit möglich - später probieren ');
}
$db_sel = mysql_select_db( MYSQL_DATENBANK )
or die("Auswahl der Datenbank fehlgeschlagen");
// ausführen des mysql-Befehls
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
//mir eine email schicken, mit inhalt
//meine Daten
$emailbetreff = "websitegaestebuch";
$webmaster = "xxxxx@xxxx.de";
$body = <<<EOD
<br><hr><br>
Name: $name <br>
Website: $url <br>
Email: $email <br>
Eintrag: $eintrag <br>
EOD;
//wenn keine email angegeben ist, dann anonym
if (($_POST['$email']) == ""){
$_POST['$email'] == "anonyme@ema.il";
exit;
}
else {$_POST['$email'] = $_POST['email'];}
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
$headers = mail($webmaster, $emailbetreff, $body, $headers);
echo "Ihr Gästebucheintrag muss vor dem anzeigen noch freigeschaltet werden.";
/*klammer von wenn fehler 0*/}
}
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" >
<?php
echo '<label>Name:*</label>';
//wenn senden gesetzt und absender
if (isset($_POST["senden"])){
echo '<input type="text" name="name" value="' . htmlspecialchars( $_POST['name'], ENT_QUOTES, 'UTF-8') . '" /><br>'; }
else {
echo "<input type=\"text\" name=\"name\" value=\"\" size=\"20\" maxlength=\"50\" /><br />";}
/*echo"<input type=\"text\" name=\"absender\" id=\"absender\" value=\"\" size=\"20\" maxlength=\"50\" /> <br />";*/
echo '<label>E-Mail:</label>';
//wenn senden und email
if (isset($_POST["senden"])){
echo '<input type="email" name="email" "value="' . htmlspecialchars( $_POST['email'], ENT_QUOTES, 'UTF-8') . '" /><br>'; }
else {
echo "<input type=\"text\" name=\"email\" value=\"\" size=\"20\" maxlength=\"50\" /><br />";}
echo '<label>Ihre Homepage:</label>';
//wenn senden und url
if (isset($_POST["senden"])){
echo '<input type="text" name="url" value="' . htmlspecialchars( $_POST['url'], ENT_QUOTES, 'UTF-8') . '" /> <br>'; }
else {
echo "<input type=\"text\" name=\"url\" value=\"\" size=\"20\" maxlength=\"50\" /><br />";}
/*echo "<input type=\"text\" name=\"email\" id=\"email\" value=\"\" size=\"20\" maxlength=\"50\" /><br />*/
echo '<label>Ihr Gästebucheintrag:*</label>';
//wenn senden und eintrag
if (isset($_POST["senden"])){
echo '<textarea name="eintrag" rows="8" cols="40">' . htmlspecialchars( $_POST['eintrag'], ENT_QUOTES, 'UTF-8') . '</textarea><br>'; }
else {
echo "<textarea name=\"eintrag\" rows=\"8\" cols=\"40\"></textarea><br />";}
/*echo "<textarea name=\"inhalt\" id=\"ihnalt\" rows=\"8\" cols=\"40\"></textarea><br />*/
echo '<label class="oben">Sicherheitscode:*<br />(Untenstehende Ziffernfolge)</label>';
echo "
<input type=\"text\" name=\"sicherheitscode\" id=\"sicherheitscode\" size=\"20\" maxlength=\"5\" title=\"\" /><br />
<img src=\"/captcha/captcha.php\" border=\"0\" title=\"überprüfung\"/><br />";
?>
<input class="abstand" type="Submit" name="senden" value="absenden" />
</form>
*:Pflichtfelder<p></p>
<?php
//wenn NICHT dann soll folgendes (geschweifte klammer geht bis nach unten)
//else {
$db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
if ( ! $db_link )
{
// hier sollte dann später dem Programmierer eine
// E-Mail mit dem Problem zukommen gelassen werden
// die Fehlermeldung für den Programmierer sollte
// das Problem ausgeben mit: mysql_error()
die('keine Verbindung zur Zeit möglich - später probieren ');
}
$db_sel = mysql_select_db( licht-fische )
or die("Auswahl der Datenbank fehlgeschlagen");
// SQL-Befehl für den Zugriff
// SQL-Befehl für den Zugriff
$sql = "
SELECT
*
FROM gaestebuch
WHERE aktiviert='1'
ORDER BY datum
";
// ausführen des mysql-Befehls
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
// Anzeige der Anzahl der Einträge
$anzahl_eintraege = mysql_num_rows($db_erg);
echo "<p>Anzahl der Gästebuch-Einträge: $anzahl_eintraege </p>";
//schleife zum array
while ($daten = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
// Aushabe der Daten
echo "ID: ";
echo $daten['id'];
echo "<br />";
echo "Name: ";
echo $daten['name'];
echo "<br />";
//wenn Email leer, nichts anzeigen
if ($daten['email'] == ""){
}
else{
echo "E-Mail: ";
echo $daten['email'];
echo "<br />";
}
echo "URL: ";
echo $daten['url'];
echo "<br />";
echo "Datum: ";
echo $daten['datum'];
echo "<br />";
echo "Gästebucheintrag: ";
echo $daten['eintrag'];
echo "<br />";
}
//ressourcen zerstören bzw. freigeben
mysql_free_result( $db_erg );
//}
?>
</div>
<!--inhalt ende-->
<div id="bottom">
</div>
<div id="fuss"><p>© - <a href="../sites/impr.php">Impressum/Disclaimer</a></p><br />
</div><!--fuss ende-->
</div><!--umschluss ende-->
</body>
</html>
Alles anzeigen
(Eine "" bereinigung muss noch gemacht werden,
und ein wenig Design in der Anzeige... )
Das ganze ist schon hochgeladen licht-fische.bplaced.net/sites/gaestebuch.php
Beim Freischalten kommt der Fehler nicht: licht-fische.bplaced.net/sites/freischalt.php
Die Datenbank existiert und die Tabellen sind auch da.
Ich bin ratlos...
EDIT: und jetzt kommt beim anmelden in phpmyadmin folgende Meldung: Die Sitzung konnte nicht ohne Fehler gestartet werden, schauen Sie bitte in das Fehlerprokoll von PHP und/oder Ihres Webservers und konfigurieren Sie PHP entsprechend (session.save_path, Schreibrechte).