Dieses Tutorial hat ziemlich viele Anknüpfungen am Avatar-Upload Skript, ist aber noch komplizierter ;)
1. Erstellen wird einen Ordner:
wallpaper chmod Rechte auf 777
2. Danach geht ihr in PHPMyAdmin und Dort oben in der waagerechten Leiste auf SQL und kopiert diesen Code in des Textfeld, um die wallpaper-Tabelle zu erstellen:
 | My-SQL Code: |
CREATE TABLE `wallpaper` (
`id` int(150) unsigned NOT NULL auto_increment,
`timestamp` int(150) NOT NULL,
`endung` varchar(10) NOT NULL,
`titel` varchar(255) NOT NULL,
`downloads` int(150) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;
3. Eine neue Tabelle wurde erstellt mit den Feldern: id, timestamp, endung, titel und downloads (Anzahl der Downloads).
Jetzt erstellen wir eine neue Datei
eintragen.php:
<form action="eintragen.php" method="post"
enctype="multipart/form-data">
<b>Neues Wallpaper</b><br />
Wallpaper: <input type="file" name="wallpaper"><br />
Titel: <input type="text" name="titel">
<br />
<input type="submit" name="submit" value="Neues Wallpaper">
</form>
<?php
if (isset($_REQUEST["submit"])) { // Wenn Formular abgeschickt,
dann..
if(isset($_FILES["wallpaper"]["name"]) && isset($_REQUEST["titel"]))
{ // Wenn Wallpaper und Titel auch wirklich ausgefüllt sind dann..
$endung = strstr($_FILES["wallpaper"]["name"] , "."); // Endung des
Wallpapers, Stringfunktion wo Punkt
include("db.php"); // db.php includen, um Verbindung zur Datenbank
zu bekommen.
$eintrag = "INSERT INTO wallpaper (timestamp, endung, titel,
downloads)
VALUES ('".time()."', '".$endung."', '".$_REQUEST["titel"]."',
'0')"; // Eintragen in die Datenbank time() ist der Timestamp
$eintragen = mysql_query($eintrag);
$id = mysql_insert_id();
if (mysql_errno() == 0) { // Wenn MySQL keine Fehler hat dann..
move_uploaded_file($_FILES["wallpaper"]["tmp_name"],"wallpaper/".$id.$endung);
// Datei hochladen auf Namen: IdENDUNG in den Ordner wallpaper
$Bilddaten = getimagesize("wallpaper/".$id.$endung);
$breite = $Bilddaten[0]; // Breite des Bilders
$hoehe = $Bilddaten[1]; // Höhe des Bildes
$ThumbnailBreite = 100; // Breite des Thumbnail
$ThumbnailHoehe = 100; // Höhe des Thumbnail
if($Bilddaten[2] == 1) // Wenn es eine GIF-Datei ist dann:
{
$Originalgrafik = ImageCreateFromGIF("wallpaper/".$id.$endung);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite,
$ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0,
$ThumbnailBreite, $ThumbnailHoehe, $breite, $hoehe);
ImageGIF($Thumbnailgrafik, "wallpaper/thumb_".$id.$endung);
}
elseif($Bilddaten[2] == 2) // Wenn es eine JPG-Datei ist dann:
{
$Originalgrafik = ImageCreateFromJPEG("wallpaper/".$id.$endung);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite,
$ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0,
$ThumbnailBreite, $ThumbnailHoehe, $breite, $hoehe);
ImageJPEG($Thumbnailgrafik, "wallpaper/thumb_".$id.$endung);
}
elseif($Bilddaten[2] == 3) // Wenn es eine PNG-Datei ist dann:
{
$Originalgrafik = ImageCreateFromPNG("wallpaper/".$id.$endung);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite,
$ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0,
$ThumbnailBreite, $ThumbnailHoehe, $breite, $hoehe);
ImagePNG($Thumbnailgrafik, "wallpaper/thumb_".$id.$endung);
}
echo "<br />Wallpaper erfolgreich eingetragen!";
} else { // Wenn MySQL Fehler..
echo "Es ist leider ein Fehler aufgetreten ". mysql_errno() .": ".
mysql_error(); // Fehlerausgabe
}
}
}
?>
Jetzt können wir schon Wallpaper hochladen. Jetzt wollen wir sie noch ausgeben.
4. Jetzt erstellen wir eine neue Datei
wallpaper.php:
<?php
include("db.php");
if($_REQUEST["action"] == "download") { // Wenn Download dann:
$abfrage = "SELECT downloads, endung FROM wallpaper WHERE id =
'".$_REQUEST["id"]."'"; // Daten abrufen wo unser Eintrag ist!
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{ // Wenn es ein Ergebnis gibt:
$aendern = "UPDATE wallpaper Set downloads =
'".($row->downloads++)."' WHERE id = '".$_REQUEST["id"]."'";
$update = mysql_query($aendern); // Downloadanzahl eintragen +1
echo "<meta http-equiv=refresh content='0;
URL=wallpaper/".$_REQUEST["id"].$row->endung."'>"; // Weiterleitung
zum Wallpaper!
}
}
else { // Wenn kein Download Normal Anzeige
$proseite = 10; // Wieviele Einträge pro Seite?
if(!isset($_REQUEST["seite"])) { $seite = 0; } // Wenn die Seite
leer ist, ist Seite = 0
else { $seite = $_REQUEST["seite"]; }
$abfrage = "SELECT * FROM wallpaper LIMIT ".$seite.",".$proseite; //
Limit fängt bei seite an und zeigt soviele Einträge wie bei proseite
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "<a href=wallpaper.php?action=download&id=".$row->id."
target=_blank><img src=wallpaper/thumb_".$row->id.$row->endung."
border=0 alt='am ".date("d.m.Y",$row->timestamp)."'></a>
<b>".$row->titel."</b> (".$row->downloads." Downloads) "; //
wallpaper/thumb_idENDUNG ist die url zur Vorschau. Im alt Befehl steht
das Datum! Link, um Wallpaper zu Downloaden mit Zähler!
}
echo "<br /><br />";
$count = 0; // Seitenfunktion, siehe anderes Tutorial
$abfrage = "SELECT id FROM wallpaper";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
if($count%$proseite == 0) {
$aktuelleseite = $count/$proseite+1;
if($count == $seite) {
echo $aktuelleseite." ";
} else {
echo "<a href=?seite=$count>".$aktuelleseite."</a> ";
}
}
$count++;
}
}
?>
Die Kommentare sollten alles erklären. Über db.php finder ihr
hier ein Tutorial.
DAS GANZE ERGEBNIS DOWNLOADEN!
Über eintragen.php könnt ihr Wallpaper hochladen und bei wallpaper.php könnt ihr sie anschauen ;)
Wenn es noch Fragen gibs meldet euch einfach =)
Sayuri
Super tut ^^ Habs auch für PNG´s gebrauchen können