
Script
Tutorial
PHP
Layout
Upload
Blaetterfunktion
Loading...
Script
Tutorial
PHP
Layout
Upload
Blaetterfunktion
<?php // config.inc.php //--------------------------- $host = "localhost"; // Adresse des Datenbankservers, fast immer localhost $user = ""; // Dein MySQL Benutzername $pass = ""; // Dein MySQL Passwort $dbase = ""; // Name der Datenbank //--------------------------- $connection = mysql_connect("$host","$user","$pass") OR DIE ("Keine Verbindung zu der Datenbank moeglich."); $db = mysql_select_db($dbase , $connection) OR DIE ("Auswahl der Datenbank nicht moeglich."); ?>
<?php // header.php session_start(); // Session starten include('functions.php'); // Funktion einbinden include('config.inc.php'); // DB-Verbindung einbinden $pfad = $_SERVER['PHP_SELF']; // aktuellen Dateipfad ermitteln if(!isset($_SESSION['login']) AND (basename($pfad) != 'admin.php')){ // Sofern NICHT eingeloggt echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">"; //=> Weiterleitung } ?> <!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"> <head> <title>Grafixx LayoutManager</title> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="imagetoolbar" content="no" /> <meta http-equiv="Content-Language" content="de" /> <link rel="stylesheet" href="style.css" type="text/css" /> </head> <body> <div id="ram"> <div id="header"> <h1>Grafixx LayoutManager</h1> </div> <div id="content">
</div> <?php include('sidebar.php'); ?> <div id="footer"> <p class="right"> Valid <a href="http://validator.w3.org/check/referer" title="This page validates as XHTML 1.0 Transitional"><abbr title="eXtensible HyperText Markup Language"> XHTML</abbr></a> | Valid <a href="http://jigsaw.w3.org/css-validator/check/referer" title="CSS ist valide!"><abbr title="Cascading Style Sheets"> CSS</abbr></a> </p> <p><a href="http://unnecessary.de">Grafixx LayoutManager</a> <a href="http://alice-grafixx.de">Alice-Grafixx.de</a></p> </div> </body> </html>
<?php // sidebar.php echo "<div id=\"sidebar\">\n"; $action = strip_tags($_GET['action']); // Variable definieren if(isset($_POST['submit_login'])){ $log_user = mysql_real_escape_string($_POST['log_user']); // Variable definieren $log_pass = mysql_real_escape_string($_POST['log_pass']); // Variable definieren => MD5 Verschluesselung $login = mysql_query("SELECT id FROM user WHERE name='$log_user' AND passwort='$log_pass'"); if(mysql_num_rows($login) > 0){ // korrekt eingeloggt $row = mysql_fetch_object($login); // DATEN aus DB $_SESSION['login'] = $row->id; // Session zuweisen $_SESSION['user'] = $log_user; // Session zuweisen echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">"; // Weiterleitung } } //-------------------------------------------------------- // Wenn Eingeloggt //-------------------------------------------------------- if(isset($_SESSION['login'])){ echo "<h2>Welcome ".$_SESSION['user']."<small>"; echo "<a href=\"?action=logout\">Logout</a></small></h2>"; echo "<p><a href=\"admin.php\" class=\"the_button\">Layouts verwalten</a>\n "; echo "<a href=\"post_layout.php\" class=\"the_button\">Layout eintragen</a></p>\n "; //-------------------------------------------------------- // Logout //-------------------------------------------------------- if($action == 'logout'){ session_unset(); // Sessionvariable loeschen session_destroy(); // Session zerstoeren echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">"; // Weiterleitung => Login } }else{ ?> <form action="" method="post"> <fieldset> <legend><span class="color">Grafixx</span> Login</legend> <label>Name</label> <input type="text" name="log_user" /><br /> <label>Passwort</label> <input type="text" name="log_pass" /> <br /><br /> <input type="submit" value="Login" name="submit_login" class="button"/> </fieldset> </form> <?php } /* Close login */ ?> </div> </div>
<?php // admin.php include('header.php'); // header einbunden if(isset($_SESSION['login'])){ // Sofern eingeloggt echo "<h2>Layouts</h2>\n"; $abfrage = mysql_query("SELECT id FROM layouts"); // DB Abfragen $total = mysql_num_rows($abfrage); // Anzahl der Zeilen in DB // ---------------------- Seitennavigationsdaten -------------------------------------------------- $per_page = "8"; // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen $p = "5"; // Anzahl der Links die in der Seitenavigation ausgegeben werde // Blaetterfunktion aufrufen = > Ausgeben list ($start, $ende) = get_navi($_GET['go'], $total, "admin.php?go=", false, $per_page, $p); // ---------------------- ENDE Seitennavigationsdaten---------------------------------------------- $abfrage = mysql_query("SELECT id, autor, title, cat, icon, preview, download, size, views, downloads, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM layouts ORDER BY id DESC LIMIT $start,$ende"); if($total < 1){ // Pruefen ob Layouts vorhanden echo "<p>Zur Zeit existieren keine Layouts ...</p>"; }else{ echo "<p>Insgesamt sind derzeit <a href=\"layouts.php\">".$total." Layouts</a> vorhanden ...</p>"; echo "<ul class=\"list\">"; // News ausgeben ausgeben while($row = mysql_fetch_object($abfrage)){ echo "<li>"; echo "<div class=\"right\">\n"; echo "<a href=\"post_layout.php?action=edit&id=".$row->id."\">Bearbeiten</a> \n"; echo "<a href=\"post_layout.php?action=loeschen&id=".$row->id."\">[x]</a>\n"; echo "</div>\n "; echo "<strong>".$row->id.". </strong>\n"; echo "<a href=\"".$row->preview."\" target=\"_blank\" class=\"tool\">".$row->title."<span><img src=\"".$row->icon."\" alt=\"".$row->title."\" /></span></a>\n"; echo "» ".$row->autor."\n"; echo "<small><strong>".$row->datum."</strong> » ".$row->size." » <a href=\"".$row->preview."\" target=\"_blank\">Views (".$row->views.")</a> » \n"; echo "<a href=\"".$row->download."\" target=\"_blank\">Downloads (".$row->downloads.")</a>\n"; echo "</small>\n </li>\n"; } // close while echo "</ul>\n<br /><br class=\"clear_left\"/>"; // Blaetterfunktion aufrufen = > Ausgeben get_navi($_GET['go'], $total, "admin.php?go=", true, $per_page, $p); } // close Eintrage vorhanden //------------------------------------------------------------------------------ }else{ // Sofern nicht eingeloggt ... if(isset($_POST['submit_login'])){ $log_user = mysql_real_escape_string($_POST['log_user']); // Variable definieren $log_pass = mysql_real_escape_string($_POST['log_pass']); // Variable definieren => MD5 Verschluesselung $login = mysql_query("SELECT id FROM user WHERE name='$log_user' AND passwort='$log_pass'"); if(mysql_num_rows($login) > 0){ // korrekt eingeloggt $row = mysql_fetch_object($login); // DATEN aus DB $_SESSION['login'] = $row->id; // Session zuweisen $_SESSION['user'] = $log_user; // Session zuweisen echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">"; // Weiterleitung } } // close submit // Wenn nicht eingeloggt --------------------------------------------------------- echo "<h2>Zugriff verweigert ...</h2>"; echo "<p>Du musst eingeloggt sein, um diese Seite aufrufen zu koennen ...</p>"; } // close eingeloggt include('footer.php'); // Footer einbinden ?>
<?php // post_layout.php include('header.php'); // header einbunden $id = clean_it($_GET["id"]); $action = clean_it($_GET['action']); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $tab ="layouts"; // Tabellenname $icon_max_size = 800000; // Erlaubte Icon-Dateigre - 1048576 = 1 MByte, 10485760 = 10 MByte $icon_max_type = array(".jpg",".jpeg",".gif",".png"); // Die Erlaubten Datei-Endungen - Icon $zip_max_size = 1548576; // Erlaubte Zip-Dateigre - 1048576 = 1 MByte, 10485760 = 10 MByte $zip_max_type = array(".zip"); // Die Erlaubten Datei-Endung - ZIP $pfad_layi = "layouts/"; // Speicherort der Layouts //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(isset($_GET['id'])) { $query = mysql_query("SELECT autor, icon, cat, typ, title, downloads, views, size, preview, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM $tab WHERE id='$id'"); $row = mysql_fetch_object($query); $title = $row->title; $cat = $row->cat; } // if $_GET 'id' // ------------------------------------------------ / Configuration / ------------------------------------------------// if (isset($_POST['submit'])) { $action = clean_it($_GET['action']); $id = clean_it($_GET['id']); $autor = clean_it($_POST['autor']); $typ = clean_it($_POST['typ']); $cat = clean_it($_POST['cat']); $title = clean_it($_POST['title']); $icon = $_FILES['thumb']['name']; $zip = $_FILES['zip']['name']; $datei_size = $_FILES['zip']['size']; $user_ip = $_SERVER['REMOTE_ADDR']; // ------------------------------- Neues Layout ---------------------------- if(!isset($_GET['action'])){ // Pruefen ob alles angegeben wurde if ($autor == '' || $title == '' || $typ == '' || $icon == '' || $series = '' || $zip == '') { echo '<div class="error"><h2>Error ...</h2><p>Bitte Danke alle Felder ausfuellen ...</p></div>'; }else{ // Sofern denn alles da $zip_size = datei_groesse("$datei_size", 2); // Dateigroesse ermitteln // Pruefen ob Dateityp / Dateigre erlaubt -> Icon $icon_d = strrchr($_FILES['thumb']['name'], "."); // Nun ist in $icon_d folgendes enthalten: .dateiendung if ($_FILES['thumb']['size'] <= $icon_max_size && in_array($icon_d,$icon_max_type)) { // Sofern okay Dateityp/Dateigroesse // Pruefen ob Dateityp / Dateigre erlaubt -> ZIP $zip_d = strrchr($_FILES['zip']['name'], "."); // Nun ist in $zip_d folgendes enthalten: .dateiendung if ($_FILES['zip']['size'] <= $zip_max_size && in_array($zip_d,$zip_max_type)) { // Sofern okay Dateityp/Dateigroesse $x = 1; while(is_dir($pfad_layi.$x)){ $x++; } // Zahl fuer Ordner definieren mkdir($pfad_layi.$x, 00777) or die($php_errormsg); // Ordner erstellen chmod($pfad_layi.$x, 00777); // CHMOD setzen $datei_pfad = $pfad_layi.$x."/"; if (is_dir($datei_pfad)) { // pruefen ob ordner erstellt wurde echo "<p class=\"no_error\"> - Ordner <strong>".$x."</strong> in Verzeichnis layouts erstellt<br />"; } // Vorschaubild hochladen //----------------------------------------------------------------------- $datei_pfad_img = $datei_pfad.$x.'-thumb'.$icon_d; // Datei umbenenn in if(move_uploaded_file($_FILES['thumb']['tmp_name'], $datei_pfad_img)) { echo " - Vorschaubild erfolgreich hochgeladen<br /> \n"; }else{ echo " x Vorschaubild konnte nicht hochgeladen werden :("; } // Zip-Datei hochladen //----------------------------------------------------------------------- $datei_pfad_zip = $datei_pfad.$x.'.zip'; // Datei umbenenn in if(move_uploaded_file($_FILES['zip']['tmp_name'], $datei_pfad_zip)) { echo " - Zip-Datei erfolgreich hochgeladen<br />\n"; }else{ // Wenn ZIP Datei nicht hochgeladen werden konnte echo " x Zip-Datei wurde nicht hochgeladen :( \n"; } // Zip-Datei entpacken //----------------------------------------------------------------------- include('pclzip.lib.php'); // PclZip einbinden $archive = new PclZip("$datei_pfad_zip"); //zip file to extract if ($archive->extract(PCLZIP_OPT_PATH, $datei_pfad.'/') == 0){ die(" x Error : ".$archive->errorInfo(true)); // fehler -> abbrechen }else{ // Wenn kein Fehler beim Entpacken war Echo " - Zip-Datei wurde erfolgreich entpackt<br /> \n"; $icon = $datei_pfad_img; // Iconpfad $download = $datei_pfad_zip; // Downloadpfad $preview = $datei_pfad; // Vorschaupfad }// close entpacken // DB Eintrag $upload = mysql_query("INSERT INTO $tab (autor, title, typ, cat, icon, size, preview, download, ip, date ) VALUES ('$autor','$title','$typ', '$cat', '$icon','$zip_size','$preview','$download','$user_ip', now() )"); if($upload){ // Sofern Upload erfolgreich echo "<div class=\"no_error\"><h2>Wunderbar ...</h2><p>Der Eintrag in die Datenbank war erfolgreich ...</p></div>"; $okay = 1; } else { // Wenn Upload nicht erfolgreich echo "<div class=\"error\"><h2>Error....</h2>\n <p>Der Eintrag war nicht erfolgreich :( <br />\n ".mysql_error()."</p></div>\n"; } }else{ // Datei zugross / keine Zip Datei if ($_FILES['zip']['size'] > $zip_max_size){ echo "<div class=\"error\"><h2>Error...</h2>\n<p>Die Zip-Datei ist zu schwer max. ".$zip_max_size."kb ...</p></div>\n"; } if (!in_array($zip_d,$zip_max_type)){ echo "<div class=\"error\"><h2>Error...</h2>\n<p>Die hochgeladene Datei ist keine Zip-Datei!</p></div>\n"; } } // close else Datei zugross / keine Zip Datei }else{ // Datei zugross / Dateitype nicht erlaubt Icon Datei if ($_FILES['thumb']['size'] > $iconp_max_size){ echo "<div class=\"error\"><h2>Error...</h2>\n<p>Die Zip-Datei ist zu schwer max. ".$zip_max_size."kb ...</p></div>\n"; } if (!in_array($icon_d,$icon_max_type)){ echo "<div class=\"error\"><h2>Error...</h2>\n<p>Die hochgeladene Datei ist keine Zip-Datei!</p></div>\n"; } } // close else Datei zugross / keine Icon Datei } // close Check if user submit blank entry } // close !action // ------------------------------- Layout edit ---------------------------- if ($action == "edit") { // Pruefen ob alles angegeben wurde if ($autor == '' || $title == '' || $typ == '' || $series = '' ){ echo '<div class="error"><h2>Error ...</h2><p>Bitte Danke alle Felder ausfuellen ...</p></div>'; }else{ // Wenn alles notwendige angegeben wurde if(!empty($zip) AND !empty($icon)){ // Nur wenn die Dateien ein Update benoetigen $zip_size = datei_groesse("$datei_size", 2); // Dateigroesse ermitteln // ALTE Dateien Loeschen $folder = substr($row->preview, 0, -1); // zu loeschendes Verzeichnis ermitteln if(deleteDirectory($folder) == false){ // Pruefen ob die alten Dateien geloescht wurden, wenn nicht -> Fehler echo '<div class="error"><h2>Error ...</h2><p>Es ist ein Fehler aufgetreten ...</p></div>'; }else{ // wenn die alten Dateien geloescht wurden // Pruefen ob Dateityp / Dateigre erlaubt -> Icon $icon_d = strrchr($_FILES['thumb']['name'], "."); // Nun ist in $icon_d folgendes enthalten: .dateiendung if ($_FILES['thumb']['size'] <= $icon_max_size && in_array($icon_d,$icon_max_type)) { // Sofern okay Dateityp/Dateigroesse // Pruefen ob Dateityp / Dateigre erlaubt -> ZIP $zip_d = strrchr($_FILES['zip']['name'], "."); // Nun ist in $zip_d folgendes enthalten: .dateiendung if ($_FILES['zip']['size'] <= $zip_max_size && in_array($zip_d,$zip_max_type)) { // Sofern okay Dateityp/Dateigroesse $x = 1; while(is_dir($pfad_layi.$x)){ $x++; } // Zahl fuer Ordner definieren mkdir($pfad_layi.$x, 00777) or die($php_errormsg); // Ordner erstellen chmod($pfad_layi.$x, 00777); // CHMOD setzen $datei_pfad = $pfad_layi.$x."/"; if (is_dir($datei_pfad)) { // pruefen ob ordner erstellt wurde echo "<p class=\"no_error\"> - Ordner <strong>".$x."</strong> in Verzeichnis layouts erstellt<br />"; } // Vorschaubild hochladen //----------------------------------------------------------------------- $datei_pfad_img = $datei_pfad.$x.'-thumb'.$icon_d; // Datei umbenenn in if(move_uploaded_file($_FILES['thumb']['tmp_name'], $datei_pfad_img)) { echo " - Vorschaubild erfolgreich hochgeladen<br /> \n"; }else{ echo " x Vorschaubild konnte nicht hochgeladen werden :("; } // Zip-Datei hochladen //----------------------------------------------------------------------- $datei_pfad_zip = $datei_pfad.$x.'.zip'; // Datei umbenenn in if(move_uploaded_file($_FILES['zip']['tmp_name'], $datei_pfad_zip)) { echo " - Zip-Datei erfolgreich hochgeladen<br />\n"; }else{ // Wenn ZIP Datei nicht hochgeladen werden konnte echo " x Zip-Datei wurde nicht hochgeladen :( \n"; } // Zip-Datei entpacken //----------------------------------------------------------------------- include('pclzip.lib.php'); // PclZip einbinden $archive = new PclZip("$datei_pfad_zip"); //zip file to extract if ($archive->extract(PCLZIP_OPT_PATH, $datei_pfad.'/') == 0){ die(" x Error : ".$archive->errorInfo(true)); // fehler -> abbrechen }else{ // Wenn kein Fehler beim Entpacken war Echo " - Zip-Datei wurde erfolgreich entpackt<br /> \n"; $icon = $datei_pfad_img; // Iconpfad $download = $datei_pfad_zip; // Downloadpfad $preview = $datei_pfad; // Vorschaupfad }// close entpacken }else{ // Datei zugross / keine Zip Datei if ($_FILES['zip']['size'] > $zip_max_size){ echo "<div class=\"error\"><h2>Error...</h2>\n<p>Die Zip-Datei ist zu schwer max. ".$zip_max_size."kb ...</p></div>\n"; } if (!in_array($zip_d,$zip_max_type)){ echo "<div class=\"error\"><h2>Error...</h2>\n<p>Die hochgeladene Datei ist keine Zip-Datei!</p></div>\n"; } } // close else Datei zugross / keine Zip Datei }else{ // Datei zugross / Dateitype nicht erlaubt Icon Datei if ($_FILES['thumb']['size'] > $iconp_max_size){ echo "<div class=\"error\"><h2>Error...</h2>\n<p>Die Zip-Datei ist zu schwer max. ".$zip_max_size."kb ...</p></div>\n"; } if (!in_array($icon_d,$icon_max_type)){ echo "<div class=\"error\"><h2>Error...</h2>\n<p>Die hochgeladene Datei ist keine Zip-Datei!</p></div>\n"; } } // close else Datei zugross / keine Icon Datei } // close alte dateien loeschen } // close datein benoetigen Update // DB Update $update= "UPDATE $tab SET autor = '$autor', typ = '$typ', cat = '$cat', title ='$title', ip = '$user_ip'"; if((!empty($zip)) AND (!empty($icon))){ // Nur wenn die Dateien ein Update benoetigen $update.= ", icon = '$icon', size = '$zip_size', preview = '$preview', download = '$download'"; } $update.= "WHERE id='$id'"; $upload = mysql_query($update); if($upload){ // Sofern Upload erfolgreich echo "<div class=\"no_error\"><h2>Wunderbar ...</h2><p>Das Update war erfolgreich ...</p></div>"; $okay = 1; } else { // Wenn Upload nicht erfolgreich echo "<div class=\"error\"><h2>Error....</h2>\n <p>Der Eintrag war nicht erfolgreich :( <br />\n ".mysql_error()."</p></div>\n"; } } // close Check if user submit blank entry } // close action edit }//------------------------------------- close Submit geklickt -------------------------------------- if($okay != 1 AND $action != 'loeschen'){ ?> <form name="form" action="" method="post" enctype="multipart/form-data"> <fieldset> <legend>Layout eintragen</legend> <label>Autor</label> <input type="text" name="autor" size="20" value="<?php if(isset($id)){ echo $row->autor; }else{ echo $_SESSION['user']; } ?>" /> <label>Typ</label> <select name="typ" size="1" class="form"> <?php if(isset($_GET['id'])){ echo "<option selected=\"selected\" value=\"".$row->typ."\"> ".$row->typ." </option>"; }else{ echo "<option>Bitte Kategorie auswhlen</option>"; } ?> <option>----------------------------------------</option> <option value="divider">Divider</option> <option value="iframes">iFrames</option> <option value="Table">Table</option> <option value="special">Sonstiges</option> </select> <br /> <label>Series</label> <input type="text" name="cat" value="<?= $cat; ?>" size="44" class="form" /> <label>Title</label> <input type="text" name="title" value="<?= $title; ?>" size="44" class="form" /> <br /> <br /> <?php if(isset($_GET['id'])){ echo "<label>Vorhanden</label> \n "; echo "<a href=\"".$row->preview."\" target=\"_blank\" style=\"float: left; padding-right: 8px;\"><img border=\"0\" src=\"".$row->icon."\" alt=\"".$row->title."\" /></a> \n"; echo "<p><strong>Datum:</strong> ".$row->datum." \n"; echo "<br /><strong>Size:</strong> ".$row->size." \n"; echo "<br /><strong>Downloads:</strong> ".$row->downloads." \n"; echo "<br /><strong>Views:</strong> ".$row->views."</p>\n"; echo "<br class=\"clear_left\"/><br />"; echo "<h3>Optional</h3>"; } ?> <label>Icon</label> <input type="file" name="thumb" size="44" /> <label>Zip</label> <input type="file" name="zip" size="44" /> <br /><br /> <input type="submit" value="Abschicken" name="submit" class="button" /> </fieldset> </form> <?php } //close $okay // ------------------------------- Wenn action = delete ---------------------------- $mode = $_GET['mode']; if($action == "loeschen"){ if(!isset($_GET['mode'])){ // Zur Sicherheit lieber noch mal nachfragen echo "<div class=\"error\"><h2>Wirklich ...</h2>\n"; echo "<p>Bist du sicher dass du das <a href=\"".$row->preview."\" class=\"tool\">Layout ".$id."<span><img src=\"".$row->icon."\" alt=\"".$row->title."\" /></span></a>\n"; echo "loeschen moechtest?</p> \n"; echo "<p><a href=\"post_layout.php?action=loeschen&mode=del&id=$id\" class=\"button\"> Ja </a>"; echo " <a href=\"admin.php\" class=\"button\"> Nein </a></p>\n </div>"; }else{ $delete = mysql_query("DELETE from $tab WHERE id='$id'");// Loeschen der Dateien aus der Datenbank $folder = substr($row->preview, 0, -1); // zu loeschendes Verzeichnis ermitteln if((deleteDirectory($folder) == true) AND ($delete)){ // Wenn geloescht wurde echo "<div class=\"no_error\"><h2>Prima ...</h2>\n<p>Das Loeschen des Designs war erfolgreich ...</p></div>\n"; }else{ // Wenn nicht geloescht wurde echo "<div class=\"error\"><h2>Error ...</h2>\n<p>Der Loeschvorgang war leider nicht erfolgreich :(</p></div>"; } } // close mode } // close if ($action == "delete") include('footer.php'); ?>
<?php // functions.php // Funktion um die DB-Eintraege zu pruefen => SQL Injektions function clean_it($dirty){ // Auswirkungen von magic_quotes_gpc zuruecksetzen, wenn ON if (get_magic_quotes_gpc()) { $clean = mysql_real_escape_string(stripslashes(htmlspecialchars($dirty))); }else{ $clean = mysql_real_escape_string(htmlspecialchars($dirty)); } return $clean; } // Funktion um die Dateigroesse zu ermitteln function datei_groesse($datei_size, $nachkommastellen = 0) { $d_size = $datei_size; if($d_size >= 1073741824) { return round($d_size/(1073741824), $nachkommastellen)." GB"; } if($d_size >= 1048576) { return round($d_size/(1048576), $nachkommastellen)." MB"; } if($d_size >= 1024) { return round($d_size/(1024), $nachkommastellen)." KB"; } return $d_size." Byte"; } // Blaetterfunktion => Seitennavigation function get_navi($go, $total, $pfad, $ausgabe = false, $ende = 10, $p = 3){ //----------------------------------------------------------------------------------------------- // $pfad => Dateipfad // $total => Anzahl der in DB // $ende => Anzahl der Datensaetze die Pro Seite angezeigt werden sollen // $p => Anzahl der Links die in der Seitenavigation ausgegeben werden // $ausgabe = false => Seitennavigation NICHT ausgeben oberhalb der DB Abfrage //----------------------------------------------------------------------------------------------- $seiten = ceil($total / $ende); // Berechnet die Seitenanzahl insgesamt if(!isset($go)){ // korrigieren der aktuellen Seite $go = 1; // Sofern $go nicht uebergeben wurde }elseif($go <= 0 || $go > $seiten){ $go = 1; // Variable definieren }else{ // Wenn Obiges nicht zutraf $go = clean_it($go); // Variable definieren } $links = array(); // Linkkette bilden // Seite die vor der aktuellen Seite kommt definieren if(($go - $p) < 1){ $davor = $go - 1; }else { $davor = $p; } // Seite die nach der aktuellen Seite kommt definieren if(($go + $p) > $seiten){ $danach = $seiten - $go; }else{ $danach = $p; } $off = ($go - $davor); // Variable definieren if ($go- $davor > 1){ // Link definieren => Zur Erste Seite springen $first = 1; $links[] = "<a href=\"".$pfad."".$first."\" title=\"Zur ersten Seite springen\">« Erste ...</a>\n"; } if($go != 1){ // Link definieren => eine Seite zurueck blaettern $prev = $go-1; $links[] = "<a href=\"".$pfad."".$prev."\" title=\"Eine Seite zurueck blaettern\">«</a>\n"; } for($i = $off; $i <= ($go + $danach); $i++){ // einzelne Seitenlinks erzeugen if ($i != $go){ // Link definieren $links[] = "<a href=\"".$pfad."".$i."\">$i</a>\n"; }elseif($i == $seiten) { // aktuelle Seite, ein Link ist nicht erforderlich $links[] = "<span class=\"current\">$i</span>\n"; }elseif($i == $go){ // aktuelle Seite, ein Link ist nicht erforderlich $links[] = "<span class=\"current\">$i</span>\n"; } // close if $i }// close for if($go != $seiten){ // Link definieren => eine Seite weiter blaettern $next = $go+1; $links[] = "<a href=\"".$pfad."".$next."\" title=\"Eine Seite weiter blaettern\">»</a>\n"; } if($seiten - $go - $p > 0 ){ // Link definieren => Zur letzen Seite springen $last = $seiten; $links[] = "<a href=\"".$pfad."".$last."\" title=\"Zur letzten Seite springen\">... Letzte »</a>\n"; } $start = ($go-1) * $ende; // Berechne den Startwert fuer die DB $link_string = implode(" ", $links); // Zusammenfuegen der einzelnen Links zu einem String // -------------------------------------- Seitennavigation ausgeben ---------------------------- if($ausgabe == true){ echo "<div id=\"navigation\">\n"; echo "<span class=\"pages\">Seite $go von $seiten</span>\n"; echo $link_string; // Ausgabe der Seitennavigation echo "</div> \n"; } //close ausgabe // -------------------------------------- Seitennavigation ende -------------------------------- return array($start, $ende); } // close function // Funktion zum Loeschen von Ordner mit samt Inhalt function deleteDirectory($dir){ if (!file_exists($dir)) return false; if (!is_dir($dir) || is_link($dir)) return unlink($dir); foreach (scandir($dir) as $item) { if ($item == '.' || $item == '..') continue; if (!deleteDirectory($dir . "/" . $item)) { chmod($dir . "/" . $item, 0777); if (!deleteDirectory($dir . "/" . $item)) return false; }; } return rmdir($dir); } ?>
<?php //layouts.php include('config.inc.php'); // Db-Verbindungsdaten einbinden include('functions.php'); // Db-Verbindungsdaten einbinden // Klicks zaehlen //------------------------------------------------------------------------------------- if(isset($_GET['id'])){ // Parameteruebergabe pruefen $id = clean_it($_GET['id']); // Variable definieren $do = clean_it($_GET['do']); // Variable definieren $abfrage = mysql_query("SELECT preview, download FROM layouts WHERE id='$id'"); $row = mysql_fetch_object($abfrage); if($do == 'view'){ // Layout anschauen $was = "views"; $url = $row->preview; } if($do == 'download'){ // Layout downloaden $was = "downloads"; $url = $row->download; } // eins hochzaehlen und leitet den Besucher weiter $update = mysql_query("UPDATE layouts SET $was = $was+'1' WHERE id='$id'"); if($update){ header("Location: $url"); }else{ echo "<div class=\"error\"><h2>Error....</h2><p>Es ist ein Fehler aufgetreten!</p></div>"; } } // close ID uebergeben //-------------------------------------------------------------------------------------- ?> <!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"> <head> <title>Grafixx LayoutManager</title> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="imagetoolbar" content="no" /> <meta http-equiv="Content-Language" content="de" /> <link rel="stylesheet" href="style.css" type="text/css" /> </head> <body> <div id="ram"> <div id="header"> <h1>Grafixx LayoutManager</h1> </div> <div id="content"> <?php //-------------------------------------------------------------------------------------- // Ausgabe der Layouts //-------------------------------------------------------------------------------------- echo "<h2>Layouts</h2>\n"; $pfad = "layouts.php?go="; // Pfad ermitteln if(isset($_GET['do'])){ // nur bestimmter typ $do = clean_it($_GET['do']); // Variable definieren $where = "WHERE typ = '".clean_it($_GET['do'])."'"; $pfad = "layouts.php?do=".$do."$amp;go="; // Pfad ermitteln }else{ // Wenn nichts uebergeben $pfad = "layouts.php?go="; // Pfad ermitteln } if(isset($_GET['autor'])){ // nur bestimmter Autor $auto = clean_it($_GET['autor']); // Variable definieren $where = "WHERE autor = '".$auto."'"; $pfad = $pfad."&autor=".$auto; // Pfad ermitteln } if(isset($_GET['cat'])){ // nur bestimmte Serie $cats = clean_it($_GET['cat']); // Variable definieren $where = "WHERE cat = '".$cats."'"; $pfad = $pfad."&cat=".$cats; // Pfad ermitteln } $abfrage = mysql_query("SELECT id FROM layouts ".$where." "); // DB Abfragen $total = mysql_num_rows($abfrage); // Anzahl der Zeilen in DB mysql_error(); // ---------------------- Seitennavigationsdaten -------------------------------------------------- $per_page = 6; // Anzahl der Datensaetze die Pro Seite angezeigt werden sollen $p = 5; // Anzahl der Links die in der Seitenavigation ausgegeben werde // Blaetterfunktion aufrufen = > Ausgeben list ($start, $ende) = get_navi($_GET['go'], $total, $pfad, false, $per_page, $p); // ---------------------- ENDE Seitennavigationsdaten---------------------------------------------- $abfrage = mysql_query("SELECT id, autor, title, typ, cat, icon, preview, download, size, views, downloads, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM layouts ".$where." ORDER BY id DESC LIMIT $start,$ende"); if($total < 1){ // Pruefen ob Layouts vorhanden echo "<p>Zur Zeit existieren keine Layouts in dieser Kategorie ...</p>"; }else{ echo "<p>Insgesamt sind derzeit <a href=\"layouts.php\">".$total." Layouts</a> vorhanden ...</p>"; // Layouts ausgeben ausgeben while($row = mysql_fetch_object($abfrage)){ ?> <div class="layout"> <strong class="color right"><?= $row->title; ?></strong> <br /> <img src="<?= $row->icon; ?>" alt="<?= $row-title; ?>" /> <strong>Serie:</strong> <?= $row->cat; ?><br /> <strong>Designer:</strong> <?= $row->autor; ?><br /> <strong>Datum:</strong> <?= $row->datum; ?><br /> <strong>Size:</strong> <?= $row->size; ?><br /> <strong>Typ:</strong> <?= $row->typ; ?><br class="clear_left" /> <p><a href="layouts.php?do=view&id=<?= $row->id; ?>" class="button" target="_blank"> Preview <small>(<?= $row->views; ?>)</small> </a> <a href="layouts.php?do=download&id=<?= $row->id; ?>" class="button"> Download <small>(<?= $row->downloads; ?>)</small> </a></p> </div> <?php } // close while echo "<br class=\"clear_left\" /><br />"; // Blaetterfunktion aufrufen = > Ausgeben get_navi($_GET['go'], $total, $pfad, true, $per_page, $p); } // close Eintrage vorhanden ?> </div> <div id="sidebar"> <h2>Navigation</h2> <ul> <?php // Typen abfragen $sql = mysql_query("SELECT typ, COUNT(typ) AS anzahl FROM layouts GROUP BY typ"); while($row = mysql_fetch_object($sql)){ echo "<li><a href=\"layouts.php?do=".$row->typ."\">".ucfirst($row->typ)." <small>(".$row->anzahl.")</small></a></li>\n"; } ?> <li><a href="layouts.php">» Alle</a></li> </ul> <br /> <form action="" method="get"> <fieldset> <legend>Browse by Autor</legend> <select name="autor" onchange="window.location.href='layouts.php?autor='+this.options[this.selectedIndex].value" class="select"> <option>Select a autor</option> <?php // Autoren abfragen $sql = mysql_query("SELECT autor FROM layouts GROUP BY autor"); while($rows = mysql_fetch_object($sql)){ echo "<option value=\"".$rows->autor."\">".$rows->autor."</option>\n"; } ?> </select> </fieldset> </form> <br /> <form action="" method="get"> <fieldset> <legend>Browse by Series</legend> <select name="series" onchange="window.location.href='layouts.php?cat='+this.options[this.selectedIndex].value" class="select"> <option>Select a series</option> <?php // Autoren abfragen $query = mysql_query("SELECT cat, COUNT(cat) AS anzahl FROM layouts GROUP BY cat"); while($rowq = mysql_fetch_object($query)){ echo "<option value=\"".$rowq->cat."\">".$rowq->cat."(".$rowq->anzahl.")</option>\n"; } ?> </select> </fieldset> </form> </div> <div id="footer"> <p class="right"> Valid <a href="http://validator.w3.org/check/referer" title="This page validates as XHTML 1.0 Transitional"><abbr title="eXtensible HyperText Markup Language"> XHTML</abbr></a> | Valid <a href="http://jigsaw.w3.org/css-validator/check/referer" title="CSS ist valide!"><abbr title="Cascading Style Sheets"> CSS</abbr></a> </p> <p><a href="http://unnecessary.de">Grafixx LayoutManager</a> <a href="http://alice-grafixx.de">Alice-Grafixx.de</a></p> </div> </div> </body> </html>
Du musst angemeldet sein, um einen Kommentar zu hinterlassen...
Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...