6x bewertet

Avatar Upload mit Datenbank

von Delite  |  21.02.2007 um 19:31 h
PHP Anwendungen
Typ: PHP Anwendungen
Stufe:Nur für Fortgeschrittene
Jetzt zeige ich euch wie ihr mithilfe von PHP und MySQL ein einfaches Avatar-Skript erstellen könnt. Dieses Tutorial ist nicht ganz so einfach also nur etwas für Fortgeschrittene (wenn man es wirklich verstehen will XD). Vorab: Man kann keine Dateien in MySQL eintragen, da gibt es aber einen Trick XD
Zuersteinmal erstellt ihr einen ordner (avatars) auf euren Webspace und setzt dort die Rechte auf 777.

Danach geht ihr in PHPMyAdmin und Dort oben in der waagerechten Leiste auf SQL und kopiert diesen Code in des Textfeld, um die avatar-Tabelle zu erstellen:

My-SQL Code:
CREATE TABLE `avatars` (
`id` int(150) unsigned NOT NULL auto_increment,
`timestamp` int(150) NOT NULL,
`endung` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;


Eine neue Tabelle wurde erstellt mit den Feldern: id, timestamp und endung.
Jetzt erstellen wir eine neue Datei eintragen.php:


<form action="eintragen.php" method="post" 
enctype="multipart/form-data">
<b>Neuer Avatar</b><br />
Avatar: <input type="file" name="avatar">
<br />
<input type="submit" value="Neuer Avatar" name="submit"> 
</form>
<?php
    
if (isset($_REQUEST["submit"])) { // Wenn Formular abgeschickt,
dann..
        if(isset(
$_FILES["avatar"]["name"])) { // Wenn der Avatar auch
wirklich ausgefüllt istdann..
            
$endung strstr($_FILES["avatar"]["name"] , "."); // Endung des
AvatarsStringfunktion wo Punkt
            
include("db.php"); // db.php includen, um Verbindung zur Datenbank
zu bekommen.
            
$eintrag "INSERT INTO avatars (timestamp, endung) 
            VALUES ('"
.time()."', '".$endung."')"// 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["avatar"]["tmp_name"],"avatars/".$id.$endung);
// Datei hochladen auf Namen: IdENDUNG in den Ordner avatars
                
echo "<br />Avatar erfolgreich eingetragen!";
            } else { 
// Wenn MySQL Fehler..
                
echo "Es ist leider ein Fehler aufgetreten "mysql_errno() .": ".
mysql_error(); // Fehlerausgabe
            
}
        }
    }
?>



Wenn alles gut gegangen ist, können wir bereits Avatare hochladen. Nur blöd, dass sie nicht angezeigt werden. Das ändern wir aber un erstellen avatars.php:


<?php
    
include("db.php");
    
$proseite 10// Wieviele Einträge pro Seite?

    
if(!isset($_REQUEST["seite"])) { // Wenn die Seite leer ist, ist
Seite 0
        $seite 
0;
    } else {
        
$seite $_REQUEST["seite"];
    } 

    
$abfrage "SELECT * FROM avatars 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 
"<img src=avatars/".$row->id.$row->endung." border=0 alt='am
"
.date("d.m.Y",$row->timestamp)."'> "// avatars/idENDUNG ist die url
zum bildIm alt Befehl steht das Datum!
    } 

    echo 
"<br /><br />";
    
$count 0// Seitenfunktion, siehe anderes Tutorial
    
$abfrage "SELECT id FROM avatars"
    
$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++; 
    } 
?>



Jui, die Kommentare sollten alles erklären. Über db.php finder ihr hier ein Tutorial.

DAS GANZE ERGEBNIS DOWNLOADEN

Die Kommentare sollten alles erklären, ansonsten könnt ihr hier noch Fragen stellen!
bei eintragen.php könnt ihr die dateien eintragen und avatars.php seht ihr die Avas.

Bild



9 Kommentare




neontrauma

... wobei (zumindest bei mir) die eintragen.php den absoluten Pfad zum Avatars-Ordner benötigt (in der Zeile
move_uploaded_file($_FILES["avatar"]["tmp_name"],"avatars/".$id.$endung);.

(wie man den absoluten Pfad herausbekommt, wird hier erklärt)

Feines Tut :-)
am 27.06.2007 um 16:26 Uhr


Delite

@Großstadtgeflüster
Ich war schon auf zahlreichen verschiedenen Servern. Bis jetzt ging es überall ;)
Das ganze wäre ja auch recht nervig, wenn man den nicht in der DB speichert, wenn man umzieht.

LG Delite
am 10.10.2007 um 16:39 Uhr


Kann man auch so machen das mehrere Avatars hochgeladen werden?
Ich benutz das auch für bases, und das sind meistens doch sehr viel xD'
<3
am 06.02.2008 um 20:42 Uhr


Sadako

Schöner Tut uns auch praktisch nur hab ich immerwieder das Problem wenn ich einen Avatar Uploade, muss ich die Rechte des Ordners avatars wieder auf 777 setzen weil sie nicht so bleiben und deswegen der neue Avatar nicht angezeigt wird Smilie
Wer kann mir helfen? v-v
am 24.07.2008 um 14:06 Uhr


ehm, sobald ich den ordner auf 777 setze kann ich nicht mehr draufzugreifen ô.o
am 27.01.2009 um 14:12 Uhr


MiaAsashi

Wie macht man es, dass der zuletzt hochgeladene Avatar als erstest steht?
am 22.11.2009 um 00:23 Uhr


MiaAsashi

Wie macht man es, dass der zuletzt hochgeladene Avatar als erstest steht?
am 22.11.2009 um 01:20 Uhr


Akiko

Ich finde das Tutorial sehr gut erklärt :)
Habe sehr schnell durchgefunden!
Jedoch werden bei mir andauernd Fehlermeldungen (nach dem Hochladen etc) angezeigt, so was wie "syntax error, unexpected ′"′, expecting T_STRING or T_VARIABLE or T_NUM_STRING" u.s.w. xD Sitze seit 2 Stunden dran und versuche das hinzukriegen.

Aber liegt wohl an meiner Dummheit *lach* Smilie
am 26.09.2010 um 12:54 Uhr


Herodius

Danke für das tolle Tut Smilie. Das hilft mir jetzt gerade total weiter Smilie.
am 01.10.2010 um 18:56 Uhr