012
04.01.2005, 16:58 Uhr
Pablo
Supertux (Operator)
|
Ok, hier ein kleines Beispiel unter http://pcpool.mathematik.uni-freiburg.de/~pabloy/bs.zip dort findest du 3 Source Dateien und die Datei config.inc.php musst du anpassen.
So, ich hoffe, das kann eine Basis für dich sein. Wenn du online testen willst, kannst du von http://rex.supertux.homelinux.org/php/index.php testen, wirs sehen 100% XHTML Valid
Wenn du die Datenbank sehen willst, dann geh auf http://supertux.homelinux.org und dann unter "Administration" klickst du auf "MySQL Datenbank", du musst das SSL Zertifikat akzeptieren. Als Benutzername gibst du test ein und das Passwort soll leer bleiben, dann klickst du auf Login. Die Datenbank test (du wirst Zugriff auf 2 Datenbanken haben, test und test_board) musst du wählen und dort findest du 2 Tabellen, games und category, dort ist die Information gespeichert.
Bei einigen Sachen hab ich nhur die Grundidee programmiert, d.h. das die Skripten sind nicht optimal, z.B. die Navigationslinks mit "back page", "next page" ist naiv gelöst und sollte auf jeden Fall verbessert, das tue ich so, damit du es löst, du wirst sehen, dass "Next Page" verschwindet, sobald keine Ergebnisse mehr vorhanden sein, das solltest du schlauer lösen (frage zuerst ab, wie viele Elemente es überhaupt gibt, zb. SELECT NUM(id) FROM categry ist ein guter Ansat dafür.
PHP 4: |
<?php /* config.inc.php */
/* Die Konfigurationsdatei darf nur von der Seite gelesen werden */
if(!isset($readconfig) or isset($_GET['$readconfig']) or isset($_POST['$readconfig'])) die("Zugriff nicht erlaubt!");
$config = array();
$config['MYSQL_HOST'] = "localhost";
$config['MYSQL_USER'] = "";
$config['MYSQL_PASSWD'] = "";
$config['MYSQL_DB'] = "test";
?>
|
PHP 4: |
<?php
/* scripts.php */
function DB_connect() { global $config;
$connID = @mysql_connect($config['MYSQL_HOST'], $config['MYSQL_USER'], $config['MYSQL_PASSWD']);
if(!$connID) return NULL;
if(!@mysql_select_db($config['MYSQL_DB'], $connID)) { echo err2str($connID); mysql_close($connID); return NULL; }
return $connID; }
function DB_close($connID) { if(!$connID) return; mysql_close($connID); }
function err2str($res) { return "<p style=\"color: Xff0000;font-weight: bold\">Error " . (string) mysql_errno($res) . "<i>" . mysql_error($res) . "</i></p>\n"; }
?>
|
PHP 4: |
<?php
/* index.php */
/* Konfigurationsdatei einbinden */
$readconfig=1; require_once("config.inc.php"); require_once("scripts.php");
/* XHTML 1.0 Transitional */
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <title>Spiele online</title> <meta name="author" content="Pablo Yanez Trujillo" /> <meta name="Audience" content="Alle" /> <meta name="Expires" content="0" /> <meta http-equiv="Expires" content="0" /> <meta http-equiv="cache-control" content="no-cache" /> <meta http-equiv="pragma" content="no-cache" /> <meta name="Robots" content="INDEX,FOLLOW" /> <meta name="Revisit-After" content="5 days" /> <style type="text/css">
body { background-color: X 95b7db; margin-left: 6mm; margin-right: 6mm; }
h1 { text-align: center; color: X 7a5fe3; }
h2 { color: X 7a5fe3; }
p { color: X 5f66e3; text-align: justify; }
a,a:active,a:link,a:visited { color: X 0054A2; }
a:hover { color: X 0170FF; text-decoration: none
}
</style> </head> <body> <h1>Willkommen @ spieleonlie.de</h1> <p>Hallo! Das ist eine Testseite. Hier kannst du deine Spiele online stellen und die von den anderen Benutzern herunterladen. Du darfst natürlich alles hochladen und herunterladen, wie viel du willst, aber beachte, dass du die Dateien in zip Format oder tar.gz Format hochlädst. </p> <p> Für diesen Test hab ich darauf verzichtet, ein Upload-Feld anzubieten, weil sonst der Aufwand viel zu groß wäre! </p> <p>Mann kann entweder eine neue Kategorie hinzufügen oder ein neues Spiel</p> <?php
/* ok, MySQL starten */
$connID = DB_connect();
/* Limits berechnen */ $max_res = 3; /* Maximale Anzahl von Ergebnissen pro Seite */ $from_res = 0; /* Ab welchem Ergebnis anzeigen */
if(isset($_GET['abres'])) $from_res = $_GET['abres'];
if(!$connID) { echo "<p style=\"color:X ff0000; font-weight: bold\">Fehler: " . mysql_error() . "</p>\n"; } else { /* ok, DB ist up */
/* Die Datenbank sieht so aus: Tabelle: games Felder: id (Primary Key), cat_id *, name, url * ist die ID der Kathegorie
Tabelle: category id (Primary Key), name
*/
if(isset($_POST['formCatSubmit'])) { /* Kategorie hinzufügen */ $catname = trim($_POST['formCatName']);
if(!empty($catname)) { $sql = "INSERT INTO category (name) VALUES ('$catname')"; $result = @mysql_query($sql, $connID);
if($result) echo "<p style=\"color:X 0000ff; font-weight: bold\">Kategorie '" . htmlentities($catname) . "' wurde hinzugefügt</p>\n"; else echo err2str($connID); } else echo "<p style=\"color:X ff0000; font-weight: bold\">Kann keine Categorie hinzufügen, weil das Feld leer ist</p>\n"; }
if(isset($_POST['formGameSubmit'])) { /* spiel hinzufügen */ $catid = trim($_POST['formGameCat']); $homepage = trim($_POST['formGameHomepage']); $gamename = trim($_POST['formGameName']);
if(!empty($gamename) and !empty($homepage)) { /* hier könnte man überprüfen, ob die Homepage ein richtiges format hat, verzichte ich aber hier drauf */
$sql = "INSERT INTO games (cat_id,name,url) VALUES ($catid, '$gamename', '$homepage')"; $result = @mysql_query($sql, $connID);
if($result) echo "<p style=\"color:X 0000ff; font-weight: bold\">Spiel '" . htmlentities($gamename) . "' wurde hinzugefügt</p>\n"; else echo err2str($connID); } else echo "<p style=\"color:X ff0000; font-weight: bold\">Kann kein Spiel hinzufügen, weil mindestens ein Feld leer ist</p>\n"; }
if(isset($_GET['catid']) and !empty($_GET['catid'])) { /* Spiele der Kathegorie anzeigen */ $sql = "SELECT name FROM category WHERE id=$_GET[catid]"; $result = mysql_query($sql, $connID);
if($result){ $row = mysql_fetch_row($result); echo "<h2>Kategorie: " . htmlentities($row[0]) . "</h2>";
/* games anzeigen */ $sql = "SELECT name, url FROM games WHERE cat_id=$_GET[catid] LIMIT $from_res, $max_res"; $result = mysql_query($sql, $connID);
if($result) { $rows = @mysql_num_rows($result); for($i=0; $i<$rows; ++$i) { $row = @mysql_fetch_row($result); ?> <p> <object> <table border="0" cellspacing="2" cellpadding="2"> <tr> <td><b>Name</b></td> <td><?php echo htmlentities($row[0]); ?></td> </tr> <tr> <td><b>Homepage</b></td> <td><a href="<?php echo $row[1]; ?>" target="_blank"><?php echo $row[1]; ?></a></td> </tr> </table> </object> </p> <?php }
/* ok, page anzeigen */ echo "<p style=\"text-align: right\">"; if($from_res) { echo "<a href=\"index.php?catid=$_GET[catid]&abres=" . (string) ($from_res - $max_res); echo "\">Back Page</a> "; }
if($rows) { echo "<a href=\"index.php?catid=$_GET[catid]&abres=" . (string) ($from_res + $max_res); echo "\">Next Page</a>"; }
echo "</p>\n";
echo "<p><a href=\"index.php\">Zurück zum Index</a></p>\n";
} else echo err2str($connID); } else echo err2str($connID); } else { /* Kathegorien anzeigen */ $sql = "SELECT * FROM category"; $result = mysql_query($sql, $connID);
if($result) { $rows = mysql_num_rows($result); $cats_str=""; for($i=0; $i<$rows; ++$i) { $row = mysql_fetch_row($result); echo "* <a href=\"index.php?catid=$row[0]\">" . htmlentities($row['1']) . "</a><br />\n"; $cats = array('id' => $row[0], 'name' => htmlentities($row[1])); $cats_str .= "<option value=\"$cats[id]\">$cats[name]</option>\n"; }
/* ok, Category hinzufügen, spiel Hinzufügen */
?> <h2>Kategorie hinzufügen</h2> <p> <object> <form action="index.php" method="post"> <input name="formCatName" value="" size="20" /> <input type="submit" name="formCatSubmit" value="Hinzufügen" /> </form> </object> </p> <h2>Spiel hinzufügen</h2> <p> <object> <form action="index.php" method="post"> <b>Name:</b><br /> <input name="formGameName" value="" size="20" /><br /> <b>Homepage:</b><br /> <input name="formGameHomepage" value="http://" size="20" /><br /> <b>Kategorie:</b> (Bitte wälen)<br /> <select name="formGameCat"> <?php echo $cats_str; ?> </select> <input type="submit" name="formGameSubmit" value="Hinzufügen" /> </form> </object> </p> <?php
} else { echo err2str($connID); } }
}
DB_close($connID);
?> </body> </html>
|
edit: @flo, die Farb-Angabe unter [php] in #RGB Format werden komplett angezeigt. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 04.01.2005 um 17:14 Uhr von Pablo editiert. |