4x bewertet

Wallpaper mit Thumbnail

von Delite  |  01.03.2007 um 09:06 h
PHP Anwendungen
Typ: PHP Anwendungen
Stufe:Nur für Fortgeschrittene
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
WallpapersStringfunktion 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$Originalgrafik0000,
$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$Originalgrafik0000,
$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$Originalgrafik0000,
$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 istist Seite 
        
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 VorschauIm alt Befehl steht
das Datum
Linkum 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 =)

Bild



22 Kommentare




Sayuri

Super tut ^^ Habs auch für PNG´s gebrauchen können
am 05.06.2007 um 17:40 Uhr


klasse tutorial Smilie ! gut erklärt , muss es erstmal ausprobieren
am 06.06.2007 um 19:57 Uhr


kann man acuh irgendwie den ersteller anzeigen lassen? ich habs versucht selbst einzubauen, bin aber kläglich gescheitert^^
mfg
Jule
am 09.08.2007 um 06:13 Uhr


hey wolte mal fragen warum der klickzähler nicht geht o.o ist das nur bei mir so? mfg
donedwin
am 28.08.2007 um 01:15 Uhr


Noare

Ja, bei mir ging es auch nicht.
Irgendwo steht "downloads++" ändere es in "downloads+'1'"
logischerweise ohne ""
am 09.09.2007 um 00:01 Uhr


cheasy

hm bei mir klappt das thumbnail erstellen nich o.o
da kommt beim hochladen immer dieser fehler:

Fatal error: Call to undefined function ImageCreateFromGIF() in /srv/www/httpd/phost/s/de/pytalhost/shezpretty/web/weintragen.php on line 41

Smilie
am 09.09.2007 um 11:34 Uhr


@ donedwin:
aber da steht doch:
My-SQL Code:
.($row->downloads++)."' WHERE
id = '".$_REQUEST["id"]."'";
$update = mysql_query($aendern); // Downloadanzahl eintragen +1

Und schau dir dann mal den Kommentar an. Da steht doch, dass man das ändern muss ^^
am 17.11.2007 um 11:53 Uhr


bei mir wrd die seite weiß! oô
Kann mir irgendjemand helfen? Ich verzweifle schon am ACP :'(
am 18.11.2007 um 01:55 Uhr


NekoMyv

kann man des auch mit avataren machen? Smilie
am 03.02.2008 um 12:48 Uhr


Larita

Für Avatare gibt es das auch. Das Tutorial dazu ist hier

LG Lara
am 03.02.2008 um 22:03 Uhr


NekoMyv

aaah, hab ich gar net gesehen Smilie danke^^v
am 09.02.2008 um 02:04 Uhr


madi

tolles tut... zwar sind die thumbnails nicht so schön, aber ich hab dafür eine eigene funktion eingebaut, dank dir... *.*
am 17.06.2008 um 17:46 Uhr


Jessy

ich hab ein problem =( die wallpaper wollen nicht nebeneinander das sieht voll doof aus wenn ich das mache: http://www.vanilla-wings.net/portfolio/blend.php
am 22.06.2008 um 17:09 Uhr


Fr34k

Ich weiß nicht, ob ihr auch das Problem hattet. Jedenfalls wurden die Downloads nicht hochgezählt. Die Zeile


$aendern = "UPDATE wallpaper Set downloads = '".($row->downloads++)."'
WHERE id = '".$_REQUEST["id"]."'";



muss in


$aendern = "UPDATE wallpaper Set downloads = (downloads+1) WHERE id =
'".$_REQUEST["id"]."'";



geändert werden :)
am 18.03.2009 um 14:03 Uhr


CrazyMoFu

Wie kann man die Seite ändern auf der der angeklickte Walli angezeigt wird?
am 04.01.2010 um 20:01 Uhr


SmaX

ja wallpaper.php bearbeiten?!
am 04.01.2010 um 20:22 Uhr


CrazyMoFu

Ne ich meine was anderes...
wenn man auf das vorschaubild klickt dann kommt ja http://DEINESEITE.de/wallpaper.php?action=download&id=4
die seite meine ich...
am 04.01.2010 um 20:47 Uhr


Charmedengel

Ein super Tutorial. ♥ Aber das mit den Thumbnails finde ich nicht so schön.
Ich hätte es besser gefunden, dass man die Thumbnails selber hochladen könnte (sowie bei dem Tutorial für das hochladen von Layouts), für eine schönere Ansicht, da ich dieses Skrpit auch zum hochladen von PNG′s benutze und dann sieht es leider auch nicht so gut aus, wenn die kleinen Vorschaugrafiken mit einem schwarzen Hintergrund unterlegt sind. Smilie

Aber dennoch danke für′s reinstellen und echt gut erklärt Smilie
am 21.01.2010 um 12:25 Uhr


werock2040

Gerda das man die Thumbnails nicht selber hochladen muss,finde ich eine erhebliche Erleichterung! man kann das Script ja umschreiben so wie es einem gefällt,wie die Thumbs angezeigt werden sollen und mit delites neuem Wallpaperscript kombinieren. So werde ich das machen.
am 04.06.2010 um 11:53 Uhr


Akiko

Ich sag nur danke, danke, danke Smilie Super erklärt!

Ich bin totale Anfängerin, aber hab das Tutorial (erstaunlicherweise xD) wirklich gut verstanden :)
Klappt auch alles perfekt Smilie
am 09.07.2010 um 19:03 Uhr


Xx-Freaker

Wie kann man die CHMOD dingsda-rechte verändern?
Funktioniert das auch beim stinknormalen "FTP-Commander"?
Wenn ja, wo ?
wenn nicht, wo kann ich es ändern xD ?
am 18.12.2010 um 12:08 Uhr


Xx-Freaker

Geht das auch, wenn ich das so mache: <?phpchmod("wallpaper/", 0777);?> ??
am 18.12.2010 um 12:24 Uhr