PHP Tutorials, PHP lernen, PHP Forum, PHP Community and more ... MyWebsolution.de!

Sidebar

Home News Tutorials Workshops Tipps Artikel Gästebuch Sitemap Unicode Shopping

Suche

Members

Forum Login Registrierung

Statistik

Statistikbereich
Jetzt1
Heute115
Gestern232
Gesamt1669000

PHP Loginsystem - Benutzerliste und Userprofile

Autor Flitze
Klicks 279639
Rating für PHP Loginsystem
  8.8 von 10
Bewertungen283
Stand 12.06.2013
Keywords:
PHP Login System, Autologin, Rechtesystem, Benutzerliste,Userprofile, Loginsystem, Userverwaltung

Amazon: PHP 5.3 und MySQL 5.1
Breadcrumb:
Workshops » PHP Loginsystem » PHP Loginsystem - Benutzerliste und Userprofile
Seite : 1 2 3 4 5 6 Bewerten
Article Wizard - deutscher Article Spinner

4. Benutzerliste und Userprofile


Die Anzahl der registrierten User sind immer so etwas wie ein Aushängeschild der Website. Über 1000 (fiktive Zahl) registrierte User sprechen in der Regel für eine häufig besuchte Website die auch interessante Inhalte bietet. Außerdem geben wir dem User ja die Möglichkeit, optionale Daten von sich anzugeben (ICQ, MSN, ...) und das macht ja nur dann Sinn, wenn man auch einen Bereich erstellt, in dem anderer Benutzer dieses 'Profil' betrachten können.

Aus diesen Gründen bietet es sich an, eine Userliste zu erstellen, die alle registrierten User anzeigt und einen Link zu deren Profilen beinhaltet. Außerdem können noch einige andere Informationen zu dem User gegeben werden. Ein entsprechendes Skript könnte so aussehen:

PHP:
<?php
    error_reporting
(E_ALL);
    
$MYSQL_HOST 'localhost';
    
$MYSQL_USER 'root';
    
$MYSQL_PASS 'myPassWord';
    
$MYSQL_DATA 'myDataBase';

    
$connid = @mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PASS) OR die("Error: ".mysql_error());
    
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());

    echo 
"<table>";
    echo 
" <tr>\n";
    echo 
"  <td>\n";
    echo 
"Nickname\n";
    echo 
"  </td>\n";
    echo 
"  <td>\n";
    echo 
"Registrierungsdatum\n";
    echo 
"  </td>\n";
    echo 
"  <td>\n";
    echo 
"Letzter Login\n";
    echo 
"  </td>\n";
    echo 
"  <td>\n";
    echo 
" \n";
    echo 
"  </td>\n";
    echo 
" </tr>\n";

    
$sql "SELECT
                    ID,
                    SessionID,
                    Nickname,
                    DATE_FORMAT(Registrierungsdatum, '%d.%m.%Y') as Datum,
                    Letzter_Login,
                    Letzte_Aktion
            FROM
                    User
            ORDER BY
                    Nickname ASC
           "
;
    
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

    while (
$row mysql_fetch_assoc($result)) {
        
// existiert eine Session ID und der User
        // war nicht länger als 2 Minuten inaktiv, so wird er als online betrachtet
        
if($row['SessionID'] AND (time()-60*$row['Letzte_Aktion']))
            
$online "<span style=\"color:green\">online</span>\n";
        else
            
$online "<span style=\"color:red\">offline</span>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"<a href=\"profil.php?id=".$row['ID']."\">".$row['Nickname']."</a>\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
$row['Datum']."\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
date('d.m.Y H:i \U\h\r'$row['Letzter_Login'])."\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
$online;
        echo 
"  </td>\n";
        echo 
" </tr>\n";
    }
    echo 
"</table>";
?>


Als erstes wird wieder eine Datenbankverbindung hergestellt, weil alle User aus der Datenbank ausgelesen werden müssen. Für eine geordnete Darstellung habe ich in diesem Fall eine Tabelle erstellt. Als Informationen über die User habe ich mich für den Nickname, das Registrierungsdatum, den letzten Login sowie den momentanen Online-Status entschieden. Das Registrierungsdatum wird als Typ DATE in der Datenbank gespeichert und dabei intern als YYYY-MM-DD formatiert. 2006-12-28 sieht aber nicht wirklich schön aus, deshalb wird es bereits beim Auslesen aus der Datenbank nach deutschem Maßstab formatiert. Wie bereits angedeutet, soll aus der Userliste heraus ein Link zu den Userprofilen führen, deshalb lese ich auch die ID der User mit aus.

Bei jedem User prüfe ich nun, ob er gerade online aktiv oder offline ist. Dazu ziehe ich die Letzte_Aktion spalte zu Rate und akzeptiere eine Differenz von 2 Minuten. Damit haben wir alle Informationen, die wir zur Darstellung benötigen und erzeugen für jeden User eine neue Zeile in der Tabelle. Der Name ist dabei gleichzeitig ein Hyperlink zum Profil des Users dem ich als Identifikation die ID als $_GET-Parameter anhänge. Da der letzte Login als Timestamp gespeichert ist, muss ich ihn noch mit Hilfe der date()-Funktion in eine lesbare Form bringen.

Damit ist die Userliste abgeschlossen. Optimierungsvorschläge dazu wären z.B. eine Suchfunktion, mittels der man nach einem Nickname suchen kann und der Einsatz von Seitenzahlen, damit die Tabelle nicht zu lang wird, falls viele User registriert sind. Dazu gibt es aber eigene Tutorials und ich werde hier nicht näher darauf eingehen.

Userprofile anzeigen


Damit man das Profil eines Users betrachten kann, muss klar sein, um welchen User es sich handelt. Wie bereits erwähnt werden die User durch ihre ID eindeutig identifiziert und in dem Link der Userliste wird diese ID als $_GET-Parameter verfügbar gemacht. Wie bei allen Usereingaben muss ich diesen Parameter erst gegen X-Scripting sichern, bevor er verwendet werden kann. Dann kann man mit Hilfe der ID den Datensatz des Users aus der Datenbank holen und tabellarisch aufbereiten. Folgendes Skript kann euch dabei als Beispiel dienen:

PHP:
<?php
    error_reporting
(E_ALL);
    
$MYSQL_HOST 'localhost';
    
$MYSQL_USER 'root';
    
$MYSQL_PASS 'myPassWord';
    
$MYSQL_DATA 'myDataBase';

    
$connid = @mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PASS) OR die("Error: ".mysql_error());
    
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());

    
// $_GET-Parameter prüfen
    
if(!isset($_GET['id'])) {
        echo 
"Sie haben keinen Benutzer ausgewählt.<br>\n".
              
"Bitte benutzen Sie einen Link aus der <a href=\"userliste.php\">Userliste</a>\n";
    }
    else{
         
// $_GET-Parameter als Integer casten
         
$_GET['id'] = (int)$_GET['id'];
         
$sql "SELECT
                         SessionID,
                         Nickname,
                         Email,
                         Show_Email,
                         DATE_FORMAT(Registrierungsdatum, '%d.%m.%Y') as Datum,
                         Wohnort,
                         Homepage,
                         ICQ,
                         AIM,
                         YIM,
                         MSN,
                         Avatar,
                         Letzte_Aktion,
                         Letzter_Login
                 FROM
                     User
                 WHERE
                     ID = '"
.mysql_real_escape_string($_GET['id'])."'
                "
;
    
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
         
$row mysql_fetch_assoc($result);
         if(!
$row){
             echo 
"Sie haben keinen gültigen Benutzer ausgewählt.<br>\n".
                  
"Bitte benutzen Sie einen Link aus der <b>»</b> <a href=\"userliste.php\">Userliste</a>\n";
         }
         else{
        echo 
"<table>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"Nickname :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
htmlentities($row['Nickname'], ENT_QUOTES)."\n";
        echo 
" (";
        if(
$row['SessionID'] AND (time()-60*$row['Letzte_Aktion']))
            echo 
"<span style=\"color:green\">online</span>\n";
        else
            echo 
"<span style=\"color:red\">offline</span>\n";
        echo 
")";
        echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"Email-Adresse :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
               if(
$row['Show_Email']==1)
            echo 
htmlentities($row['Email'], ENT_QUOTES)."\n";
        echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"Registrierungsdatum :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
$row['Datum']."\n";
        echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"Letzter Login :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
date('d.m.Y H:i \U\h\r'$row['Letzter_Login'])."\n";
        echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"Wohnort :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
htmlentities($row['Wohnort'], ENT_QUOTES)."\n";
        echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"Homepage :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        if (
trim($row['Homepage'])!= ""){
          if (
strtolower(substr($row['Homepage'], 07)) =='http://')
            echo 
"<a href=\"".htmlentities($row['Homepage'], ENT_QUOTES)."\" target=\"_blank\">".htmlentities(shorten($row['Homepage']), ENT_QUOTES)."</a>\n";
          
// Falls kein http:// eingegeben wurde wird es automatisch eingefügt, um einen gültigen Link zu erzeugen
          
else
            echo 
"<a href=\"http://".htmlentities($row['Homepage'], ENT_QUOTES)."\" target=\"_blank\">".htmlentities(shorten($row['Homepage']), ENT_QUOTES)."</a>\n";
               }
        echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"ICQ :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
htmlentities($row['ICQ'], ENT_QUOTES)."\n";
        echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"AIM :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
htmlentities($row['AIM'], ENT_QUOTES)."\n";
        echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"YIM :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
htmlentities($row['YIM'], ENT_QUOTES)."\n";
        echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"MSN :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
        echo 
htmlentities($row['MSN'], ENT_QUOTES)."\n";
        echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
" <tr>\n";
        echo 
"  <td>\n";
        echo 
"Avatar :\n";
        echo 
"  </td>\n";
        echo 
"  <td>\n";
               if(
$row['Avatar']=='')
                   echo 
"Kein Avatar vorhanden.\n";
               else
                   echo 
"<img src=\"avatare/".htmlentities($row['Avatar'], ENT_QUOTES)."\">\n";
                 echo 
"  </td>\n";
        echo 
" </tr>\n";
        echo 
"</table>\n";
        }
    }
?>


Alle Ausgabe werden mit htmlentities() behandelt, um kein X-Scripting zuzulassen. Die Avatare tauchten bisher noch nicht auf. Sie konnten bei der Registrierung noch nicht eingefügt werden, weil ich denke dass es keinen Sinn macht, einem Nutzer, der sich letztendlich vielleicht garnicht registriert, die Möglichkeit zu geben, unseren Server zuzumüllen. Registrierten Usern soll das allerdings möglich sein. Außerdem soll es möglich sein, die zu Beginn eingegebenen Daten zu überarbeiten um Fehler zu korrigieren oder Angaben zu aktualisieren.

Anmerkung
Bei diesem Script wird die Funktion shorten() benutzt. Diese ist selbst definiert und prüft die Zeichenlänge von Strings. Hier der Code dazu:

PHP:
<?php
    
// Prüft die Länge jedes Wortes eines Strings und korrigiert diese evtl.
    
function shorten($str$max=30$range=5)
    {
            
// aufteilen in Zeilen
         
$lines explode("\n"$str);
         foreach(
$lines as $key_line => $line){
                 
// aufteilen in Wörter
                 
$words explode(" "$line);
                 
// prüfen der Länge jeden Wortes
                 
foreach($words as $key_word => $word){
                        if (
strlen($word) > $max)
                                
$words[$key_word] = substr($word,0,$max-3-$range)."...".substr($word,-$range);
                 }
                 
// zusammenfügen der neuen Zeile
                 
$lines[$key_line] = implode(" "$words);
         }
         
// zusammenfügen des neues Textes
         
$str implode("\n"$lines);
         return 
$str;
    }
?>


Userprofil bearbeiten


Jeder User darf logischerweise nur sein eigenes Profil bearbeiten (ausgeschlossen dem Administrator, aber zu dem komme ich später noch). Die Datei ist sehr ähnlich wie die Registrierungsdatei, da in etwa die gleichen Eingabefelder auftauchen und lediglich bereits mit den Werten aus der Datenbank gefüllt sind. Allerdings lege ich fest, dass der Nickname nicht geändert werden darf, denn das sollte dem Administrator vorbehalten werden.

In dieser Datei lege ich jetzt drei Formulare an, eins für die normalen Daten, eins für das Passwort und ein letztes für das Avatar. Diese Formulare sehen wie folgt aus:

PHP:
<?php
    error_reporting
(E_ALL);
    
$MYSQL_HOST 'localhost';
    
$MYSQL_USER 'root';
    
$MYSQL_PASS 'myPassWord';
    
$MYSQL_DATA 'myDataBase';

    
$connid = @mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PASS) OR die("Error: ".mysql_error());
    
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());

    
session_start();

    if(!isset(
$_SESSION['UserID'])) {
         echo 
"Sie sind nicht eingeloggt.<br>\n".
              
"Bitte <a href=\"login.php\">loggen</a> Sie sich zuerst ein.\n";
    }
    else{

         
$sql "SELECT
                         Nickname,
                         Email,
                         Show_Email,
                         Wohnort,
                         Homepage,
                         ICQ,
                         AIM,
                         YIM,
                         MSN,
                         Avatar
                 FROM
                     User
                 WHERE
                     ID = '"
.mysql_real_escape_string($_SESSION['UserID'])."'
                "
;
        
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        
$row mysql_fetch_assoc($result);
        echo 
"<form ".
             
" name=\"Daten\" ".
             
" action=\"".$_SERVER['PHP_SELF']."\" ".
             
" method=\"post\" ".
             
" accept-charset=\"ISO-8859-1\">\n";
        echo 
"<h5>Obligatorische Angaben</h5>\n";
        echo 
"<span>\n".
             
"Nickname :\n".
             
"</span>\n";
        echo 
htmlentities($row['Nickname'], ENT_QUOTES)."\n";
        echo 
"<br>\n";
        echo 
"<span style=\"font-weight:bold;\" ".
             
" title=\"Ihre.Adresse@Ihr-Anbieter.de\">\n".
             
"Email-Adresse:\n".
             
"</span>\n";
        echo 
"<input type=\"text\" name=\"Email\" maxlength=\"70\" value=\"".htmlentities($row['Email'], ENT_QUOTES)."\">\n";
        echo 
"<br>\n";
        echo 
"<span>\n".
             
"Email-Adresse anzeigen:\n".
             
"</span>\n";
        if(
$row['Show_Email']==1){
            echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"1\" checked> ja\n";
            echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"0\"> nein\n";
        }
        else{
            echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"1\"> ja\n";
            echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"0\" checked> nein\n";
        }
        echo 
"<h5>Freiwillige Angaben</h5>\n";
        echo 
"<span style=\"font-weight:bold;\">\n".
             
"Homepage :\n".
             
"</span>\n";
        echo 
"<input type=\"text\" name=\"Homepage\" maxlength=\"70\" value=\"".htmlentities($row['Homepage'], ENT_QUOTES)."\">\n";
        echo 
"<br>\n";
        echo 
"<span style=\"font-weight:bold;\">\n".
             
"Wohnort :\n".
             
"</span>\n";
        echo 
"<input type=\"text\" name=\"Wohnort\" maxlength=\"70\" value=\"".htmlentities($row['Wohnort'], ENT_QUOTES)."\">\n";
        echo 
"<br>\n";
        echo 
"<span style=\"font-weight:bold;\">\n".
             
"ICQ :\n".
             
"</span>\n";
        echo 
"<input type=\"text\" name=\"ICQ\" maxlength=\"20\" value=\"".htmlentities($row['ICQ'], ENT_QUOTES)."\">\n";
        echo 
"<br>\n";
        echo 
"<span style=\"font-weight:bold;\">\n".
             
"AIM :\n".
             
"</span>\n";
        echo 
"<input type=\"text\" name=\"AIM\" maxlength=\"70\" value=\"".htmlentities($row['AIM'], ENT_QUOTES)."\">\n";
        echo 
"<br>\n";
        echo 
"<span style=\"font-weight:bold;\">\n".
             
"YIM :\n".
             
"</span>\n";
        echo 
"<input type=\"text\" name=\"YIM\" maxlength=\"70\" value=\"".htmlentities($row['YIM'], ENT_QUOTES)."\">\n";
        echo 
"<br>\n";
        echo 
"<span style=\"font-weight:bold;\">\n".
             
"MSN :\n".
             
"</span>\n";
        echo 
"<input type=\"text\" name=\"MSN\" maxlength=\"70\" value=\"".htmlentities($row['MSN'], ENT_QUOTES)."\">\n";
        echo 
"<br>\n";
        echo 
"<input type=\"submit\" name=\"submit\" value=\"Daten ändern\">\n";
        echo 
"</form>\n";

        echo 
"<form ".
             
" name=\"Passwort\" ".
             
" action=\"".$_SERVER['PHP_SELF']."\" ".
             
" method=\"post\" ".
             
" accept-charset=\"ISO-8859-1\">\n";
        echo 
"<span style=\"font-weight:bold;\" ".
             
" title=\"min.6\">\n".
             
"Altes Passwort :\n".
             
"</span>\n";
        echo 
"<input type=\"password\" name=\"Altes_Passwort\">\n";
        echo 
"<br>\n";
        echo 
"<span style=\"font-weight:bold;\" ".
             
" title=\"min.6\">\n".
             
"Neues Passwort :\n".
             
"</span>\n";
        echo 
"<input type=\"password\" name=\"Passwort\">\n";
        echo 
"<br>\n";
        echo 
"<span style=\"font-weight:bold;\" ".
             
" title=\"min.6\">\n".
             
"Neues Passwort wiederholen:\n".
             
"</span>\n";
        echo 
"<input type=\"password\" name=\"Passwortwiederholung\">\n";
        echo 
"<br>\n";
        echo 
"<input type=\"submit\" name=\"submit\" value=\"Passwort ändern\">\n";
        echo 
"</form>\n";

        
// Avatar
        
echo "<form ".
             
" name=\"Avatar\" ".
             
" action=\"".$_SERVER['PHP_SELF']."\" ".
             
" method=\"post\" ".
             
" enctype=\"multipart/form-data\" ".
             
" accept-charset=\"ISO-8859-1\">\n";
        echo 
"<span style=\"font-weight:bold;\" ".
             
" title=\"max. 20kb\nmax 150x150 Pixel\n .jpg .gif oder .png\">\n".
             
"Avatar :\n".
             
"</span>\n";
        if(
$row['Avatar']=='')
            echo 
"Kein Avatar vorhanden.\n";
        else
            echo 
"<img src=\"avatare/".htmlentities($row['Avatar'], ENT_QUOTES)."\">\n";
        if(
$row['Avatar']=='') {
            echo 
"<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".(0.02*1024*1024)."\">";
            echo 
"<input name=\"pic\" type=\"file\">\n";
            echo 
"<input type=\"submit\" name=\"submit\" value=\"Avatar hochladen\">\n";
        }
        else
            echo 
"<input type=\"submit\" name=\"submit\" value=\"Avatar löschen\">\n";
        echo 
"</form>\n";
    }
?>


Zuerst wird überprüft, ob der User eingeloggt ist, indem überprüft wird, ober in seiner Session eine User ID existiert. Ist dies der Fall, werden seine Daten aus der Datenbank geholt. Über das value-Attribut der Inputfelder wird eine Vorbelegung erreicht. Auch dabei muss immer darauf geachtet werden, htmlentities() zu verwenden.

Das Formular zum Avatar hochladen bekommt zusätzlich noch das Attribut enctype="multipart/form-data". Das ist für Dateiuploads nötig. Außerdem wird unterschieden, ob bereits ein Avatar existiert und dieses angezeigt werden soll, oder ob noch keins existiert. Ich beginne mal mit der Beschreibung der Avatarfunktionen. Voraussetzung ist, dass ein Ordner names avatare im gleichen Verzeichnis wie die Datei existiert, sonst stimmen die Pfadangaben nicht mehr. Das Skript wird nun um den Anwendungsfall 'Avatar hochladen' und Avatar löschen erweitert:

PHP:
<?php
    error_reporting
(E_ALL);
    
$MYSQL_HOST 'localhost';
    
$MYSQL_USER 'root';
    
$MYSQL_PASS 'myPassWord';
    
$MYSQL_DATA 'myDataBase';

    
$connid = @mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PASS) OR die("Error: ".mysql_error());
    
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());

    
session_start();

    if(!isset(
$_SESSION['UserID'])) {
         echo 
"Sie sind nicht eingeloggt.<br>\n".
              
"Bitte <a href=\"login.php\">loggen</a> Sie sich zuerst ein.\n";
    }
    else{
        
// Avatar hochladen
        
if(isset($_POST['submit']) AND $_POST['submit'] == "Avatar hochladen") {
            
$errors = array();
            
// Uploadfehler prüfen
            
switch ($_FILES['pic']['error']){
                case 
1$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";
                                    break;
                case 
2$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";
                                    break;
                case 
3$errors[] = "Die Datei wurde nur teilweise hochgeladen.";
                                    break;
                case 
4$errors[] = "Es wurde keine Datei ausgewählt.";
                                    break;
                default : break;
            }
            
// Prüfen, ob eine Grafikdatei vorliegt
            
if(!@getimagesize($_FILES['pic']['tmp_name']))
                
$errors[] = "Ihre Datei ist keine gültige Grafikdatei.";
            else {
                
// Mime-Typ prüfen
                
$erlaubte_typen = array('image/pjpeg',
                                        
'image/jpeg',
                                        
'image/gif',
                                        
'image/png'
                                       
);
                if(!
in_array($_FILES['pic']['type'], $erlaubte_typen))
                    
$errors[] = "Der Mime-Typ ihrer Datei ist verboten.";

                
// Endung prüfen
                
$erlaubte_endungen = array('jpeg',
                                           
'jpg',
                                           
'gif',
                                           
'png'
                                          
);
                
// Endung ermitteln
                
$endung strtolower(substr($_FILES['pic']['name'], strrpos($_FILES['pic']['name'], '.')+1));
                    if(!
in_array($endung$erlaubte_endungen))
                        
$errors[] = "Die Dateiendung muss .jpeg .jpg .gif oder .png lauten ";

                
// Ausmaße prüfen
                
$size getimagesize($_FILES['pic']['tmp_name']);
                    if (
$size[0] > 150 OR $size[1] > 150)
                        
$errors[] = "Die Datei darf maximal 150 Pixel breit und 150 Pixel hoch sein.";
            }
            
// Dateigröße prüfen
            
if($_FILES['pic']['size'] > 0.2*1024*1024)
                
$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";

            if(
count($errors)){
                echo 
"Ihr Avatar konnte nicht gespeichert werden.<br>\n".
                     
"<br>\n";
                foreach(
$errors as $error)
                    echo 
$error."<br>\n";
                echo 
"<br>\n".
                     
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
            }
            else {
                
// Bild auf dem Server speichern
                
$uploaddir 'avatare/';
                
// neuen Bildname erstellen
                
$Name "IMG_".substr(microtime(),-8).".".$endung;
                if (
move_uploaded_file($_FILES['pic']['tmp_name'], $uploaddir.$Name)) {
                    
$sql "UPDATE
                                    User
                            SET
                                    Avatar = '"
.mysql_real_escape_string(trim($Name))."'
                            WHERE
                                    ID = "
.$_SESSION['UserID']."
                           "
;
                    
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

                    echo 
"Ihr Avatar wurde erfolgreich gespeichert.<br>\n".
                         
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
                }
                else {
                    echo 
"Es trat ein Fehler auf, bitte versuche es später erneut.<br>\n".
                         
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
                }
            }
        }
        
// Avatar löschen
        
elseif(isset($_POST['submit']) AND $_POST['submit'] == 'Avatar löschen'){
            
// Bildname des Avatars aus der Datenbank holen
            
$sql "SELECT
                        Avatar
                    FROM
                        User
                    WHERE
                        ID = '"
.$_SESSION['UserID']."'
                   "
;
            
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            
$row mysql_fetch_assoc($result);
            
// Datei löschen
            
unlink('avatare/'.$row['Avatar']);
            
// Bildname des Avatars als leeren String setzen
            
$sql "UPDATE
                        User
                    SET
                        Avatar = ''
                    WHERE
                        ID = '"
.$_SESSION['UserID']."'
                   "
;
            
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            echo 
"Ihr Avatar wurde erfolgreich gelöscht.<br>\n".
                 
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
        }
        else {   
            
$sql "SELECT
                         Nickname,
                         Email,
                         Show_Email,
                         Wohnort,
                         Homepage,
                         ICQ,
                         AIM,
                         YIM,
                         MSN,
                         Avatar
                     FROM
                         User
                     WHERE
                         ID = '"
.mysql_real_escape_string($_SESSION['UserID'])."'
                    "
;
            
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            
$row mysql_fetch_assoc($result);
            echo 
"<form ".
                 
" name=\"Daten\" ".
                 
" action=\"".$_SERVER['PHP_SELF']."\" ".
                 
" method=\"post\" ".
                 
" accept-charset=\"ISO-8859-1\">\n";
            echo 
"<h5>Obligatorische Angaben</h5>\n";
            echo 
"<span>\n".
                 
"Nickname :\n".
                 
"</span>\n";
            echo 
htmlentities($row['Nickname'], ENT_QUOTES)."\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\" ".
                 
" title=\"Ihre.Adresse@Ihr-Anbieter.de\">\n".
                 
"Email-Adresse:\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"Email\" maxlength=\"70\" value=\"".htmlentities($row['Email'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span>\n".
                 
"Email-Adresse anzeigen:\n".
                 
"</span>\n";
            if(
$row['Show_Email']==1){
                echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"1\" checked> ja\n";
                echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"0\"> nein\n";
            }
            else{
                echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"1\"> ja\n";
                echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"0\" checked> nein\n";
            }
            echo 
"<h5>Freiwillige Angaben</h5>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"Homepage :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"Homepage\" maxlength=\"70\" value=\"".htmlentities($row['Homepage'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"Wohnort :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"Wohnort\" maxlength=\"70\" value=\"".htmlentities($row['Wohnort'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"ICQ :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"ICQ\" maxlength=\"20\" value=\"".htmlentities($row['ICQ'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"AIM :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"AIM\" maxlength=\"70\" value=\"".htmlentities($row['AIM'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"YIM :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"YIM\" maxlength=\"70\" value=\"".htmlentities($row['YIM'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"MSN :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"MSN\" maxlength=\"70\" value=\"".htmlentities($row['MSN'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<input type=\"submit\" name=\"submit\" value=\"Daten ändern\">\n";
            echo 
"</form>\n";

            echo 
"<form ".
                 
" name=\"Passwort\" ".
                 
" action=\"".$_SERVER['PHP_SELF']."\" ".
                 
" method=\"post\" ".
                 
" accept-charset=\"ISO-8859-1\">\n";
            echo 
"<span style=\"font-weight:bold;\" ".
                 
" title=\"min.6\">\n".
                 
"Altes Passwort :\n".
                 
"</span>\n";
            echo 
"<input type=\"password\" name=\"Altes_Passwort\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\" ".
                 
" title=\"min.6\">\n".
                 
"Neues Passwort :\n".
                 
"</span>\n";
            echo 
"<input type=\"password\" name=\"Passwort\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\" ".
                 
" title=\"min.6\">\n".
                 
"Neues Passwort wiederholen:\n".
                 
"</span>\n";
            echo 
"<input type=\"password\" name=\"Passwortwiederholung\">\n";
            echo 
"<br>\n";
            echo 
"<input type=\"submit\" name=\"submit\" value=\"Passwort ändern\">\n";
            echo 
"</form>\n";

            
// Avatar
            
echo "<form ".
                 
" name=\"Avatar\" ".
                 
" action=\"".$_SERVER['PHP_SELF']."\" ".
                 
" method=\"post\" ".
                 
" enctype=\"multipart/form-data\" ".
                 
" accept-charset=\"ISO-8859-1\">\n";
            echo 
"<span style=\"font-weight:bold;\" ".
                 
" title=\"max. 20kb\nmax 150x150 Pixel\n .jpg .gif oder .png\">\n".
                 
"Avatar :\n".
                 
"</span>\n";
            if(
$row['Avatar']=='')
                echo 
"Kein Avatar vorhanden.\n";
            else
                echo 
"<img src=\"avatare/".htmlentities($row['Avatar'], ENT_QUOTES)."\">\n";
            if(
$row['Avatar']=='') {
                echo 
"<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".(0.02*1024*1024)."\">";
                echo 
"<input name=\"pic\" type=\"file\">\n";
                echo 
"<input type=\"submit\" name=\"submit\" value=\"Avatar hochladen\">\n";
            }
            else
                echo 
"<input type=\"submit\" name=\"submit\" value=\"Avatar löschen\">\n";
            echo 
"</form>\n";
        }
    }
?>


Eine hochgeladene Datei durchläuft zunächst mehrere Fehlerkontrollen, die alle im Quelltext kommentiert sind. Wurde kein Fehler gefunden, wir ein neuer Name für die Grafik generiert, damit sie sich nicht mit einem bestehenden Avatar überschneidet. Danach wird sie aus ihrem temporären Verzeichnis durch die Funktion move_uploaded_file() in das von uns angelegte Verzeichnis avatare verschoben. Der neue Name wird außerdem in der Datenbank des Users gespeichert. Die Prüfungen der Datei sollten keinesfalls vernachlässigt werden. Die wichtigste Funktionen dazu ist getimagesize().

Das Löschen hingegen ist sehr simpel, es wird einfach der Dateiname des Avatars aus der Datenbank geholt und die Grafik wird mittels unlink() aus dem Ordner gelöscht.

So nun fügen wir noch das Ändern der normalen Daten und des Passwortes hinzu. Die Prüfungen der Daten entsprechen dabei den gleichen wie bei der Registrierung.
PHP:
<?php
    error_reporting
(E_ALL);
    
$MYSQL_HOST 'localhost';
    
$MYSQL_USER 'root';
    
$MYSQL_PASS 'myPassWord';
    
$MYSQL_DATA 'myDataBase';

    
$connid = @mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PASS) OR die("Error: ".mysql_error());
    
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());

    
session_start();

    if(!isset(
$_SESSION['UserID'])) {
         echo 
"Sie sind nicht eingeloggt.<br>\n".
              
"Bitte <a href=\"login.php\">loggen</a> Sie sich zuerst ein.\n";
    }
    else{
        
// Avatar hochladen
        
if(isset($_POST['submit']) AND $_POST['submit'] == "Avatar hochladen") {
            
$errors = array();
            
// Uploadfehler prüfen
            
switch ($_FILES['pic']['error']){
                case 
1$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";
                                    break;
                case 
2$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";
                                    break;
                case 
3$errors[] = "Die Datei wurde nur teilweise hochgeladen.";
                                    break;
                case 
4$errors[] = "Es wurde keine Datei ausgewählt.";
                                    break;
                default : break;
            }
            
// Prüfen, ob eine Grafikdatei vorliegt
            
if(!@getimagesize($_FILES['pic']['tmp_name']))
                
$errors[] = "Ihre Datei ist keine gültige Grafikdatei.";
            else {
                
// Mime-Typ prüfen
                
$erlaubte_typen = array('image/pjpeg',
                                        
'image/jpeg',
                                        
'image/gif',
                                        
'image/png'
                                       
);
                if(!
in_array($_FILES['pic']['type'], $erlaubte_typen))
                    
$errors[] = "Der Mime-Typ ihrer Datei ist verboten.";

                
// Endung prüfen
                
$erlaubte_endungen = array('jpeg',
                                           
'jpg',
                                           
'gif',
                                           
'png'
                                          
);
                
// Endung ermitteln
                
$endung strtolower(substr($_FILES['pic']['name'], strrpos($_FILES['pic']['name'], '.')+1));
                    if(!
in_array($endung$erlaubte_endungen))
                        
$errors[] = "Die Dateiendung muss .jpeg .jpg .gif oder .png lauten ";

                
// Ausmaße prüfen
                
$size getimagesize($_FILES['pic']['tmp_name']);
                    if (
$size[0] > 150 OR $size[1] > 150)
                        
$errors[] = "Die Datei darf maximal 150 Pixel breit und 150 Pixel hoch sein.";
            }
            
// Dateigröße prüfen
            
if($_FILES['pic']['size'] > 0.2*1024*1024)
                
$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";

            if(
count($errors)){
                echo 
"Ihr Avatar konnte nicht gespeichert werden.<br>\n".
                     
"<br>\n";
                foreach(
$errors as $error)
                    echo 
$error."<br>\n";
                echo 
"<br>\n".
                     
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
            }
            else {
                
// Bild auf dem Server speichern
                
$uploaddir 'avatare/';
                
// neuen Bildname erstellen
                
$Name "IMG_".substr(microtime(),-8).".".$endung;
                if (
move_uploaded_file($_FILES['pic']['tmp_name'], $uploaddir.$Name)) {
                    
$sql "UPDATE
                                    User
                            SET
                                    Avatar = '"
.mysql_real_escape_string(trim($Name))."'
                            WHERE
                                    ID = "
.$_SESSION['UserID']."
                           "
;
                    
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

                    echo 
"Ihr Avatar wurde erfolgreich gespeichert.<br>\n".
                         
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
                }
                else {
                    echo 
"Es trat ein Fehler auf, bitte versuche es später erneut.<br>\n".
                         
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
                }
            }
        }
        
// Avatar löschen
        
elseif(isset($_POST['submit']) AND $_POST['submit'] == 'Avatar löschen'){
            
// Bildname des Avatars aus der Datenbank holen
            
$sql "SELECT
                        Avatar
                    FROM
                        User
                    WHERE
                        ID = '"
.$_SESSION['UserID']."'
                   "
;
            
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            
$row mysql_fetch_assoc($result);
            
// Datei löschen
            
unlink('avatare/'.$row['Avatar']);
            
// Bildname des Avatars als leeren String setzen
            
$sql "UPDATE
                        User
                    SET
                        Avatar = ''
                    WHERE
                        ID = '"
.$_SESSION['UserID']."'
                   "
;
            
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            echo 
"Ihr Avatar wurde erfolgreich gelöscht.<br>\n".
                 
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
        }
        
// Daten ändern
        
elseif(isset($_POST['submit']) AND $_POST['submit']=='Daten ändern'){
            
// Fehlerarray anlegen
            
$errors = array();
            
// Prüfen, ob alle Formularfelder vorhanden sind
            
if(!isset($_POST['Email'],
                      
$_POST['Show_Email'],
                      
$_POST['Homepage'],
                      
$_POST['Wohnort'],
                      
$_POST['ICQ'],
                      
$_POST['AIM'],
                      
$_POST['YIM'],
                      
$_POST['MSN']))
                
// Ein Element im Fehlerarray hinzufügen
                
$errors "Bitte benutzen Sie das Formular aus Ihrem Profil";
            else{
                
$emails = array();
                
$sql "SELECT
                               Email
                        FROM
                               User
                       "
;
                
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
                while(
$row mysql_fetch_assoc($result))
                    
$emails[] = $row['Email'];
                
// momentane Email-Adresse ausfiltern
                
$sql "SELECT
                               Email
                        FROM
                               User
                        WHERE
                               ID = '"
.mysql_real_escape_string($_SESSION['UserID'])."'
                       "
;
                
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
                
$row mysql_fetch_assoc($result);

                if(
trim($_POST['Email'])=='')
                    
$errors[]= "Bitte geben Sie Ihre Email-Adresse ein.";
                elseif(!
preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§'trim($_POST['Email'])))
                    
$errors[]= "Ihre Email Adresse hat eine falsche Syntax.";
                elseif(
in_array(trim($_POST['Email']), $emails) AND trim($_POST['Email'])!= $row['Email'])
                    
$errors[]= "Diese Email-Adresse ist bereits vergeben.";
                }
                if(
count($errors)){
                    echo 
"Ihre Daten konnten nicht bearbeitet werden.<br>\n".
                         
"<br>\n";
                    foreach(
$errors as $error)
                        echo 
$error."<br>\n";
                    echo 
"<br>\n".
                         
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
                }
                else{
                
$sql "UPDATE
                                User
                        SET
                                Email =  '"
.mysql_real_escape_string(trim($_POST['Email']))."',
                                Show_Email = '"
.mysql_real_escape_string(trim($_POST['Show_Email']))."',
                                Wohnort = '"
.mysql_real_escape_string(trim($_POST['Wohnort']))."',
                                Homepage = '"
.mysql_real_escape_string(trim($_POST['Homepage']))."',
                                ICQ = '"
.mysql_real_escape_string(trim($_POST['ICQ']))."',
                                AIM = '"
.mysql_real_escape_string(trim($_POST['AIM']))."',
                                YIM = '"
.mysql_real_escape_string(trim($_POST['YIM']))."',
                                MSN = '"
.mysql_real_escape_string(trim($_POST['MSN']))."'
                        WHERE
                                ID = '"
.mysql_real_escape_string($_SESSION['UserID'])."'
                       "
;   
                
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
                echo 
"Ihre Daten wurden erfolgreich gespeichert.<br>\n".
                     
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
            }
        }
        
// Passwort ändern
        
elseif(isset($_POST['submit']) AND $_POST['submit'] == 'Passwort ändern') {
            
$errors=array();
            
// Altes Passwort zum Vergleich aus der Datenbank holen
            
$sql "SELECT
                        Passwort
                    FROM
                        User
                    WHERE
                        ID = '"
.$_SESSION['UserID']."'
                   "
;
            
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            
$row mysql_fetch_assoc($result);
            if(!isset(
$_POST['Passwort'],
                      
$_POST['Passwortwiederholung'],
                      
$_POST['Altes_Passwort']))
                
$errors[]= "Bitte benutzen Sie das Formular aus Ihrem Profil.";
            else {
                if(
trim($_POST['Passwort'])=="")
                    
$errors[]= "Bitte geben Sie Ihr Passwort ein.";
                elseif(
strlen(trim($_POST['Passwort'])) < 6)
                    
$errors[]= "Ihr Passwort muss mindestens 6 Zeichen lang sein.";
                if(
trim($_POST['Passwortwiederholung'])=="")
                    
$errors[]= "Bitte wiederholen Sie Ihr Passwort.";
                elseif(
trim($_POST['Passwort']) != trim($_POST['Passwortwiederholung']))
                    
$errors[]= "Ihre Passwortwiederholung war nicht korrekt.";
                
// Kontrolle des alten Passworts
                
if(trim($row['Passwort']) != md5(trim($_POST['Altes_Passwort'])))
                    
$errors[]= "Ihr altes Passwort ist nicht korrekt.";
            }
            if(
count($errors)){
                echo 
"Ihr Passwort konnte nicht gespeichert werden.<br>\n".
                     
"<br>\n";
                 foreach(
$errors as $error)
                     echo 
$error."<br>\n";
                 echo 
"<br>\n".
                      
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
            }
            else{
                
$sql "UPDATE
                                User
                        SET
                                Passwort ='"
.md5(trim($_POST['Passwort']))."'
                        WHERE
                                ID = '"
.$_SESSION['UserID']."'
                       "
;
                
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
                echo 
"Ihr Passwort wurde erfolgreich gespeichert.<br>\n".
                     
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Profil</a>\n";
            }
        }
        else {   
            
$sql "SELECT
                         Nickname,
                         Email,
                         Show_Email,
                         Wohnort,
                         Homepage,
                         ICQ,
                         AIM,
                         YIM,
                         MSN,
                         Avatar
                     FROM
                         User
                     WHERE
                         ID = '"
.mysql_real_escape_string($_SESSION['UserID'])."'
                    "
;
            
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            
$row mysql_fetch_assoc($result);
            echo 
"<form ".
                 
" name=\"Daten\" ".
                 
" action=\"".$_SERVER['PHP_SELF']."\" ".
                 
" method=\"post\" ".
                 
" accept-charset=\"ISO-8859-1\">\n";
            echo 
"<h5>Obligatorische Angaben</h5>\n";
            echo 
"<span>\n".
                 
"Nickname :\n".
                 
"</span>\n";
            echo 
htmlentities($row['Nickname'], ENT_QUOTES)."\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\" ".
                 
" title=\"Ihre.Adresse@Ihr-Anbieter.de\">\n".
                 
"Email-Adresse:\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"Email\" maxlength=\"70\" value=\"".htmlentities($row['Email'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span>\n".
                 
"Email-Adresse anzeigen:\n".
                 
"</span>\n";
            if(
$row['Show_Email']==1){
                echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"1\" checked> ja\n";
                echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"0\"> nein\n";
            }
            else{
                echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"1\"> ja\n";
                echo 
"<input type=\"radio\" name=\"Show_Email\" value=\"0\" checked> nein\n";
            }
            echo 
"<h5>Freiwillige Angaben</h5>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"Homepage :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"Homepage\" maxlength=\"70\" value=\"".htmlentities($row['Homepage'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"Wohnort :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"Wohnort\" maxlength=\"70\" value=\"".htmlentities($row['Wohnort'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"ICQ :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"ICQ\" maxlength=\"20\" value=\"".htmlentities($row['ICQ'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"AIM :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"AIM\" maxlength=\"70\" value=\"".htmlentities($row['AIM'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"YIM :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"YIM\" maxlength=\"70\" value=\"".htmlentities($row['YIM'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\">\n".
                 
"MSN :\n".
                 
"</span>\n";
            echo 
"<input type=\"text\" name=\"MSN\" maxlength=\"70\" value=\"".htmlentities($row['MSN'], ENT_QUOTES)."\">\n";
            echo 
"<br>\n";
            echo 
"<input type=\"submit\" name=\"submit\" value=\"Daten ändern\">\n";
            echo 
"</form>\n";

            echo 
"<form ".
                 
" name=\"Passwort\" ".
                 
" action=\"".$_SERVER['PHP_SELF']."\" ".
                 
" method=\"post\" ".
                 
" accept-charset=\"ISO-8859-1\">\n";
            echo 
"<span style=\"font-weight:bold;\" ".
                 
" title=\"min.6\">\n".
                 
"Altes Passwort :\n".
                 
"</span>\n";
            echo 
"<input type=\"password\" name=\"Altes_Passwort\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\" ".
                 
" title=\"min.6\">\n".
                 
"Neues Passwort :\n".
                 
"</span>\n";
            echo 
"<input type=\"password\" name=\"Passwort\">\n";
            echo 
"<br>\n";
            echo 
"<span style=\"font-weight:bold;\" ".
                 
" title=\"min.6\">\n".
                 
"Neues Passwort wiederholen:\n".
                 
"</span>\n";
            echo 
"<input type=\"password\" name=\"Passwortwiederholung\">\n";
            echo 
"<br>\n";
            echo 
"<input type=\"submit\" name=\"submit\" value=\"Passwort ändern\">\n";
            echo 
"</form>\n";

            
// Avatar
            
echo "<form ".
                 
" name=\"Avatar\" ".
                 
" action=\"".$_SERVER['PHP_SELF']."\" ".
                 
" method=\"post\" ".
                 
" enctype=\"multipart/form-data\" ".
                 
" accept-charset=\"ISO-8859-1\">\n";
            echo 
"<span style=\"font-weight:bold;\" ".
                 
" title=\"max. 20kb\nmax 150x150 Pixel\n .jpg .gif oder .png\">\n".
                 
"Avatar :\n".
                 
"</span>\n";
            if(
$row['Avatar']=='')
                echo 
"Kein Avatar vorhanden.\n";
            else
                echo 
"<img src=\"avatare/".htmlentities($row['Avatar'], ENT_QUOTES)."\">\n";
            if(
$row['Avatar']=='') {
                echo 
"<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".(0.02*1024*1024)."\">";
                echo 
"<input name=\"pic\" type=\"file\">\n";
                echo 
"<input type=\"submit\" name=\"submit\" value=\"Avatar hochladen\">\n";
            }
            else
                echo 
"<input type=\"submit\" name=\"submit\" value=\"Avatar löschen\">\n";
            echo 
"</form>\n";
        }
    }
?>


So damit hätten wir nun schon einmal ein interaktives Usermanagment mit Loginsystem und Userprofilen. Um das ganze nun noch abzurunden, lege ich jetzt noch ein Rechtesystem an und erstelle einen Verwaltungsbereich von dem aus man die User als Administrator verwalten kann.

Zurück zur vorigen Seite:
PHP Loginsystem - Passwort-vergessen-Funktion
Weiter zur nächsten Seite:
PHP Loginsystem - Rechtesystem

»» Zurück zum Menu

Suchmaschinenoptimierung

Suchmaschinenoptimierung (SEO - Search Engine Optimization)

Ranking

Tutorials (13)

8.6
8.4
8.1

Workshops (3)

8.8
8.7
7.6

Tipps (13)

7.2
6.7
6.5

Artikel (30)

8.4
7.2
6.6

RSS Feeds

Full Feed Tutorials Workshops Tipps Artikel

Twitter

Follow me on Twitter

Partner & Links


Valid HTML 4.01 Transitional
Valid CSS
nach oben

Diese Seiten unterstützen MyWebsolution:
 
© MyWebsolution.de
2006-2017