ich habe vor einer kürtzeren zeit ein Gästebuch Programmiert. Es lief mit PHP und MySQL, heute wollte ich mal wieder eine Erweiterung einbauen und habe SQLite eingebaut. Anfürsich fungtioniert es auch ganz gut nur beim Ausgeben zeigt er probleme. Das Script sollte so laufen wie ich es hier reinstelle einfach den Code in eine Datei mit dem Namen der in der Überschrift steht (Text über code) speichern.
index.php (problemdatei):
- Code: Select all
<?
session_start();
IF (!file_exists('db.php')) {
die('<meta http-equiv="refresh" content="0;URL=setup.php">'); }
include "db.php";
IF (file_exists('farbe.htm')) {
include "farbe.htm"; }
IF ($sql == "mysql") {
@mysql_connect($host, $user, $pass) OR
die("Bitte Benachrichtigen sie ihren Gästebuchadmin! Irrgendwetwas stimmt mit der Datenbank Verbindung nicht!");
mysql_select_db($db) OR
die("Bitte benachrichtigen sie ihren Admin, die Datenbank konnte nicht geöfnet werden!");
} elseif ($sql == "sqlite") {
if ($db = sqlite_open('gbuch', 0666, $sqliteerror)) {
} else {
die("Es konnte kein Kontackt zur SQLite Datenbank erstellt werden!<br />Grund:<br />".$sqliteerror);
}
}
echo '<CENTER><H3>Gaestebuch</H3></CENTER>';
$sql = "SELECT text, user, email, date, IP FROM text ORDER BY date DESC;";
IF ($sql == "mysql") {
$result = mysql_query($sql);
} elseif ($sql == "sqlite") {
}
if($result===false) {
die("Konnte leider ihre Einträge nicht aus der Datenbank laden!"); }
$sqlt = "SELECT text, user, email, date FROM text;";
IF ($sql == "mysql") {
$resultt = mysql_query($sqlt);
$rew = mysql_fetch_assoc($resultt);
IF ($rew['text'] == "") {
echo '<CENTER>Es wurde noch kein Eintrag gemacht!!!</CENTER><br />';
} else {
echo '<CENTER>';
echo '<TABLE BORDER=1>';
echo '<TR ALIGN=center>';
echo '<TH>Text</TH>';
echo '<TH>Von:</TH>';
echo '<TH>E-mail:</TH>';
echo '<TH>Datum:</TH>';
echo '<TH>IP Adresse:</TH>';
echo '</TR>';
while($row = mysql_fetch_assoc($result)) {
echo '<TR ALIGN=center>';
echo '<TD>'.$row['text'].'</TD>';
echo '<TD>'.$row['user'].'</TD>';
echo '<TD><a href="mailto:'.$row['email'].'">'.$row['email'].'</A></TD>';
echo '<TD>'.$row['date'].'</TD>';
IF (isset($_COOKIE['user'])) {
echo '<TD>'.$row['IP'].'</TD>';
} else {
echo '<TD>gelogt!</TD>';
}
echo '</TR>';
}
echo '</TABLE>';
echo '</CENTER>';
}
} else {
$rew = @sqlite_array_query($db, $sqlt);
IF ($rew['text'] == "") {
echo $rew['text'];
echo '<CENTER>Es wurde noch kein Eintrag gemacht!!!</CENTER><br />';
} else {
echo '<CENTER>';
echo '<TABLE BORDER=1>';
echo '<TR ALIGN=center>';
echo '<TH>Text</TH>';
echo '<TH>Von:</TH>';
echo '<TH>E-mail:</TH>';
echo '<TH>Datum:</TH>';
echo '<TH>IP Adresse:</TH>';
echo '</TR>';
while($row = @sqlite_array_query($db, $sql)) {
echo '<TR ALIGN=center>';
echo '<TD>'.$row['text'].'</TD>';
echo '<TD>'.$row['user'].'</TD>';
echo '<TD><a href="mailto:'.$row['email'].'">'.$row['email'].'</A></TD>';
echo '<TD>'.$row['date'].'</TD>';
IF (isset($_COOKIE['user'])) {
echo '<TD>'.$row['IP'].'</TD>';
} else {
echo '<TD>gelogt!</TD>';
}
echo '</TR>';
}
echo '</TABLE>';
echo '</CENTER>';
}
}
IF ($sql == "mysql") {
IF ($_POST['step'] == 1) {
$name = $_POST['username'];
IF ($name == "") {
echo '<CENTER>Der Username fehlt!</CENTER>';
die('<meta http-equiv="refresh" content="3;URL=index.php">');
}
$email = $_POST['email'];
IF ($email == "") {
echo '<CENTER>Deine E-mail addresse fehlt!</CENTER>';
die('<meta http-equiv="refresh" content="3;URL=index.php">');
}
$text = $_POST['text'];
IF ($text == "") {
echo '<CENTER>Du hast den Text vergessen!</CENTER>';
die('<meta http-equiv="refresh" content="3;URL=index.php">');
}
$ipadresse ="$REMOTE_ADDR";
$sql = "INSERT INTO text (text, user, email, date, IP)
VALUES ('$text','$name','$email',NOW(),'$ipadresse');";
$result = mysql_query($sql);
if($result===false) {
die("Konnte leider Ihre Registrationsdaten nicht abspeichern: ".mysql_error()); }
echo '<CENTER>Deine Nachricht wurde erfolgreich eingetragen!</CENTER>';
echo '<meta http-equiv="refresh" content="3;URL=index.php">';
} else {
echo '<CENTER>Möchten sie selber eine Nachricht schreiben?</CENTER><br />';
echo '<CENTER>Hier:</CENTER><br />';
echo '<form method="post" action="index.php">';
echo '<CENTER>Username: <input type="text" name="username"></CENTER>';
echo '<br /><CENTER>E-mail: <input type="text" name="email"></CENTER>';
echo '<br /><CENTER>Text:<TEXTAREA NAME="text" ROWS="5" COLS="50" WRAP></TEXTAREA></CENTER>';
echo '<input type="hidden" name="step" value="1">';
echo '<br /><CENTER><input type="submit" value="Absenden!"></CENTER>';
}
} else {
IF ($_POST['step'] == 1) {
echo 't';
$name = $_POST['username'];
IF ($name == "") {
echo '<CENTER>Der Username fehlt!</CENTER>';
die('<meta http-equiv="refresh" content="3;URL=index.php">');
}
$email = $_POST['email'];
IF ($email == "") {
echo '<CENTER>Deine E-mail addresse fehlt!</CENTER>';
die('<meta http-equiv="refresh" content="3;URL=index.php">');
}
$text = $_POST['text'];
IF ($text == "") {
echo '<CENTER>Du hast den Text vergessen!</CENTER>';
die('<meta http-equiv="refresh" content="3;URL=index.php">');
}
$ipadresse ="$REMOTE_ADDR";
$sql = "INSERT INTO text (text, user, email, date, IP)
VALUES ('$text','$name','$email','','$ipadresse');";
$result = sqlite_query($db, $sql);
if($result===false) {
die("Konnte leider Ihre Registrationsdaten nicht abspeichern: ".mysql_error()); }
echo '<CENTER>Deine Nachricht wurde erfolgreich eingetragen!</CENTER>';
echo '<meta http-equiv="refresh" content="3;URL=index.php">';
} else {
echo '<CENTER>Möchten sie selber eine Nachricht schreiben?</CENTER><br />';
echo '<CENTER>Hier:</CENTER><br />';
echo '<form method="post" action="index.php">';
echo '<CENTER>Username: <input type="text" name="username"></CENTER>';
echo '<br /><CENTER>E-mail: <input type="text" name="email"></CENTER>';
echo '<br /><CENTER>Text:<TEXTAREA NAME="text" ROWS="5" COLS="50" WRAP></TEXTAREA></CENTER>';
echo '<input type="hidden" name="step" value="1">';
echo '<br /><CENTER><input type="submit" value="Absenden!"></CENTER>';
}
}
IF (isset($_COOKIE['user'])) {
echo 'Zum Konfigurationstool!<br />';
echo '<a href="admin.php">Hier!</A>';
} else {
echo 'Zum Admin Login!<br />';
echo '<a href="admin.php">Hier!</A>';
}
echo '<br /><CENTER>Version 1.3 Alpha</CENTER><br /><CENTER>Geschrieben von: 1Euro</CENTER>';
?>
setup.php:
- Code: Select all
<?
session_start();
$step = $_POST['step'];
IF (file_exists('db.php') AND $step != 3) {
die('Tut mir leid dieses Gästebuch wurde bereits installiert!'); }
IF ($step == "") {
$step = 0;
echo '<CENTER><H3>Installationsschritt: "'.$step.'."</H3></CENTER><br />';
echo 'Willkommen bei der Installation dieses Gästebuches!<br />';
echo 'Bitte bevolgen sie vollgende Anweisungen um das gästebuch richtig zu installieren!<br />';
echo 'Waehlen sie hier bitte aus ob sie als Datenbank MySQL oder SQLite verwenden möchten.<br />';
echo 'Wenn sie SQLite verwenden, und es nicht fungtioniert (fehlermeldungen kommen) muessen sie das Gaestebuch loeschen und neu machen!<br />';
echo '<form method="post" action="setup.php">';
echo '<input type="checkbox" name="sql" value="sqlite">SQLite';
echo '<input type="checkbox" name="sql" value="mysql">MySQL';
echo '<input type="hidden" name="step" value="1">';
echo '<br /><input type="submit" value="Absenden!">';
} elseif ($step == 1 AND $_POST['sql'] == "sqlite") {
echo '<CENTER><H3>Installationsschritt: "'.$step.'."</H3></CENTER>';
echo 'Im volgenden Formular müssen sie Adminusername und Passwort fuer den Kofigurationsbereich eingeben.<br />';
echo '<form method="post" action="setup.php">';
echo '<br />Adminusername: <input type="text" name="user">';
echo '<br />Adminpasswort: <input type="password" name="passwd">';
echo '<br />Adminpasswortwiederhollung: <input type="password" name="passwdw">';
echo '<input type="hidden" name="step" value="2">';
echo '<input type="hidden" name="sql" value="sqlite"';
echo '<br /><input type="submit" value="Absenden!">';
} elseif ($step == 2 AND $_POST['sql'] == "sqlite") {
IF ($_POST['passwd'] == $_POST['passwdw']) {
echo '<CENTER><H3>Installationsschritt: "'.$step.'."</H3></CENTER>';
$datei = fopen('db.php','w+');
fwrite($datei,'
<?
$sql = "'.$_POST['sql'].'";
?>');
fclose($datei);
$nextdatei = fopen('farbe.htm','w+');
fwrite($nextdatei,'
<?
IF ($titel == "")
{ echo \'<HTML><HEAD><TITLE>Gaestebuch.</TITLE>\';
} elseif ($titel == "admin") {
echo \'<HTML><HEAD><TITLE>Gaestebuch Admintool.</TITLE>\';
}
echo \'</HTML>\';
?>');
if ($db = sqlite_open('gbuch', 0666, $sqliteerror)) {
$sql = "CREATE TABLE text (
text TEXT,
user TEXT,
email TEXT,
date DATETIME,
IP VARBINARY(12));";
$result = sqlite_query($db, $sql);
if($result===false) {
die("Konnte Tabelle text nicht Abspeichern!<br />Grund:<br />".$sqliteerror); }
$sql = "CREATE TABLE user (
user TEXT,
passwd TEXT);";
$result = sqlite_query($db, $sql);
if($result===false) {
die("Konnte Tabelle user nicht Abspeichern!<br />Grund:<br />".$sqliteerror); }
$sql = "CREATE TABLE extra (
hfarbe VARCHAR(20),
tfarbe VARCHAR(20));";
$result = sqlite_query($db, $sql);
if($result===false) {
die("Konnte Tabelle extra nicht Abspeichern!<br />Grund:<br />".$sqliteerror); }
$user = $_POST['user'];
$passwd = $_POST['passwd'];
$sql = "INSERT INTO user (user, passwd)
VALUES ('$user','$passwd');";
$result = sqlite_query($db, $sql);
if($result===false) {
die("Konnte Tabelle user nicht beschreiben!<br />Grund:<br />".$sqliteerror); }
$sql = "INSERT INTO extra (hfarbe, tfarbe)
VALUES ('white','black');";
$result = sqlite_query($db, $sql);
if($result===false) {
die("Konnte Tabelle extra nicht beschreiben!<br />Grund:<br />".$sqliteerror); }
echo 'Die Installation wurde erfolgreich abgeschlossen!';
} else {
die("Es konnte kein Kontackt zur SQLite Datenbank erstellt werden!<br />Grund:<br />".$sqliteerror);
}
} else {
die("Das Passwort und das bestaetigungs Passwort stimmen nicht miteinander ueberein.");
}
} elseif ($step == 1 AND $_POST['sql'] == "mysql") {
echo '<CENTER><H3>Installationsschritt: "'.$step.'."</H3></CENTER><br />';
echo '<form method="post" action="setup.php">';
echo 'Datenbankhost: <input type="text" name="host">';
echo '<br />Datenbankusername: <input type="text" name="user">';
echo '<br />Datenbankuserpasswort: <input type="passwort" name="passwd">';
echo '<br />Datenbankname: <input type="text" name="db">';
echo '<input type="hidden" name="step" value="2">';
echo '<input type="hidden" name="sql" value="mysql"';
echo '<br /><input type="submit" value="Absenden!">';
} elseif ($step == 2 AND $_POST['sql'] == "mysql") {
echo '<CENTER><H3>Installationsschritt: "'.$step.'."</H3></CENTER>';
$datei = fopen('db.php','w+');
fwrite($datei,'
<?
$sql = "'.$_POST['sql'].'";
$host = "'.$_POST['host'].'";
$user = "'.$_POST['user'].'";
$pass = "'.$_POST['passwd'].'";
$db = "'.$_POST['db'].'";
?>');
fclose($datei);
$nextdatei = fopen('farbe.htm','w+');
fwrite($nextdatei,'
<?
IF ($titel == "")
{ echo \'<HTML><HEAD><TITLE>Gaestebuch.</TITLE>\';
} elseif ($titel == "admin") {
echo \'<HTML><HEAD><TITLE>Gaestebuch Admintool.</TITLE>\';
}
echo \'</HTML>\';
?>');
include "db.php";
@mysql_connect($host, $user, $pass) OR
unlink('db.php') AND
die('Bitte geben sie richtige Datenbank informationen an!');
mysql_select_db($db) OR
unlink('db.php') AND
die("Bitte geben sie eine existierende Datenbank an!");
echo 'Die Daten wurden erfolgreich gespeichert!<br />';
echo 'Bitte geben sie nun Daten zu ihrem Admin Account ein!<br />';
echo '<form method="post" action="setup.php">';
echo '<br />Adminusername: <input type="text" name="user">';
echo '<br />Adminpasswort: <input type="password" name="passwd">';
echo '<br />Adminpasswortwiederhollung: <input type="password" name="passwdw">';
echo '<input type="hidden" name="step" value="2">';
echo '<input type="hidden" name="sql" value="mysql"';
echo '<br /><input type="submit" value="Absenden!">';
} elseif ($step == 3 AND $_POST['sql'] == "mysql") {
IF ($_POST['passwd'] == $_POST['passwdw']) {
echo '<CENTER><H3>Installationsschritt: "'.$step.'."</H3></CENTER>';
include "db.php";
@mysql_connect($host, $user, $pass) OR
die("Es konnte keine Verbindung aufgebaut werden");
mysql_select_db($db) OR
die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
$sql = "CREATE TABLE text (
text TEXT,
user TEXT,
email TEXT,
date DATETIME,
IP VARBINARY(12));";
$result = mysql_query($sql);
if($result===false) {
die("Konnte leider Ihre Registrationsdaten nicht abspeichern: ".mysql_error()); }
$sql = "CREATE TABLE user (
user TEXT,
passwd TEXT);";
$result = mysql_query($sql);
if($result===false) {
die("Konnte leider Ihre Registrationsdaten nicht abspeichern: ".mysql_error()); }
$sql = "CREATE TABLE extra (
hfarbe VARCHAR(20),
tfarbe VARCHAR(20));";
$result = mysql_query($sql);
if($result===false) {
die("Konnte leider Ihre Registrationsdaten nicht abspeichern: ".mysql_error()); }
$user = $_POST['user'];
$passwd = $_POST['passwd'];
$sql = "INSERT INTO user (user, passwd)
VALUES ('$user','$passwd');";
$result = mysql_query($sql);
if($result===false) {
die("Konnte leider Ihre Registrationsdaten nicht abspeichern: ".mysql_error()); }
$sql = "INSERT INTO extra (hfarbe, tfarbe)
VALUES ('white','black');";
$result = mysql_query($sql);
if($result===false) {
die("Konnte leider Ihre Registrationsdaten nicht abspeichern: ".mysql_error()); }
echo 'Die Installation wurde erfolgreich abgeschlossen!';
} else {
echo 'Tut mir leid, aber ihre beiden Passwörter stimmen nicht mit einander über ein!';
}
}
?>
Die admin.php (Konfigurationstool) ist noch nicht fertig mit umstellen (MySQL auf SQLite) Deshalb hab ich sie hier nicht gepostet. Ich hoffe ihr könnt mir helfen.
Euer Verzweifelter 1Euro