Verfasst von Alice am 23.08.2009 - wurde schon 38814 mal gelesen
Script
Tutorial
PHP
Layout
Upload
Blaetterfunktion
Loading...
![]()
Verfasst von Alice am 23.08.2009 - wurde schon 38814 mal gelesen
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 ...