Projekt: Community-Seite (Teil 7: Login-Grundlage)



  • Hallo liebes Forum,

    jetzt geht es wieder los, leider nur mit der Grundlage des Logins :)

    [warnbox:1in47sbr]Solltest du den vorherigen Teil nicht gelesen haben, klicke hier![/warnbox:1in47sbr]

    [infobox:1in47sbr]Achtung!
    An dieser Stelle will ich nochmal sagen, das ich noch kein genaues Konzept habe und möglicherweise noch etwas dazu kommt! Die werden dann aber in anderen Teilen verteilt werden![/infobox:1in47sbr]

    Punkt 1: Konzept

    Wir werden als erstes mal auch ein Modul dafür erstellen, in dem wir dann einige Variablen definieren!
    [code]$login (true / false)
    $login_username
    $user['name']
    $user['email'][/code]

    Somit können wir dann auch den Header beeinflussen, wenn man eingeloggt ist!

    Punkt 2: Das Modul

    Wie oben besprochen, werden wir nun ein neues Modul erstellen!
    Das Modul nennen wir einfach "user".

    Ich hoffe ihr wisst noch wie das geht, hier ist das (letzte mal!) die Anleitung:
    ~1.~ Ordner "user" in data/modules/ erstellen
    ~2.~ Datei "module.include.php" erstellen und im Editor öffnen.

    Ich werde in den folgenden Teilen des Tutorials nicht erneut erklären wie das geht! Merkt es euch.
    Nachdem wir die Datei geöffnet haben schreiben wir folgendes rein:

    [code]

    0, \'name\' => $user_name, \'email\' => \'unknown\'); [/code] Wenn man nicht eingeloggt ist, steht als name einfach Gast da, das haben wir ja oben definiert. Jetzt geht es aber weiter, und zwar mit dem abrufen der E-Mail Adresse! Dazu folgender Code: [code] if($login) { $user[\'email\'] = $sql->getEmail($user[\'id\']); } [/code] .. moment mal! Die Funktion haben wir ja garnicht! **Punkt 2: Erweiterung der MySQL-Klasse** Da wir die Funktion erst erstellen müssen öffnen wir unsere MySQL-Klasse! (*data/sql/class.php*) Ich habe mir (spontan) überlegt das wir auch etwas mehr Funktionen erstellen: **Funktion 1: getUserIDByName** Wir benutzen folgenden Code, erklärung folgt! [code] public function getUserIDByName($name) { $sql = $this->query(\'SELECT `userid` FROM `user` WHERE `username`=\"\'.$name.\'\"\'); $userid = @mysql_fetch_assoc($sql); $userid = @$userid[\'userid\']; if(!$userid) { return false; } return $userid; } [/code] Nur der Parameter *$name* wird übergeben. Dann wird in der Datenbank die userid abgefragt und zurückgegeben. Sollte kein User mit dem Name existieren, wird *false* zurück gegeben! **Funktion 2: getNameByUserID** Als ersten erst wieder der Code: [code] public function getNameByUserID($userid) { $sql = $this->query(\'SELECT `username` FROM `user` WHERE `userid`=\"\'.$userid.\'\"\'); $usernm = @mysql_fetch_assoc($sql); $usernm = @$usernm[\'username\']; if(!$usernm) { return false; } return $usernm; } [/code] Hier machen wir im Grunde genau das Gegenteil zu der Funktion davor. Wir suchen den Namen raus. Sollte kein User mit dem Name existieren, wird *false* zurück gegeben! **Funktion 3: getUserVariable** Das ist eine sehr schöne Funktion, wie ich finde: [code] public function getUserVariable($userid, $cell) { $sql = $this->query(\'SELECT `\'.$cell.\'` FROM `user` WHERE `userid`=\"\'.$userid.\'\"\'); $value = @mysql_fetch_assoc($sql); $value = @$value[$cell]; if(!$value) { return false; } return $value; } [/code] Hier wird die Variable einer bestimmten Zelle (z.B: username, email, ..) ausgelesen und zurückgegeben. Das ist nur eine Zusatzfunktion. Die weiteren Funktionen wreden sie nutzen! **Funktion 4: getEmail** Dies ist eine der Funktionen die die Zusatzfunktion (s.o.) nutzen wird! [code] public function getEmail($userid) { return $this->getUserVariable($userid, \'email\'); } [/code] Praktisch, oder? **Das war\'s für diesen Teil!** Wir haben eine gute Grundlage erschaffen und auch noch unsere MySQL-Klasse erweitert! Wie gesagt, es kann passieren das sie noch weitere Funktionen hinzu kommen :D [infobox:1in47sbr]**Was kommt in Teil 8?** In Teil 8 werden wir uns mit dem Login & der Registrierung beschäftigen. Ich hatte mir eigentlich auch vorgestellt in diesem Teil das noch zu schaffen, aber ich finde dann wäre das zu groß geworden![/infobox:1in47sbr] Solltet ihr noch Ideen haben, oder Fragen! postet sie hier! Grüße Freaky


  • Hallo liebes Forum,

    jetzt geht es wieder los, leider nur mit der Grundlage des Logins :)

    [warnbox:1in47sbr]Solltest du den vorherigen Teil nicht gelesen haben, klicke hier![/warnbox:1in47sbr]

    [infobox:1in47sbr]Achtung!
    An dieser Stelle will ich nochmal sagen, das ich noch kein genaues Konzept habe und möglicherweise noch etwas dazu kommt! Die werden dann aber in anderen Teilen verteilt werden![/infobox:1in47sbr]

    Punkt 1: Konzept

    Wir werden als erstes mal auch ein Modul dafür erstellen, in dem wir dann einige Variablen definieren!
    [code]$login (true / false)
    $login_username
    $user['name']
    $user['email'][/code]

    Somit können wir dann auch den Header beeinflussen, wenn man eingeloggt ist!

    Punkt 2: Das Modul

    Wie oben besprochen, werden wir nun ein neues Modul erstellen!
    Das Modul nennen wir einfach "user".

    Ich hoffe ihr wisst noch wie das geht, hier ist das (letzte mal!) die Anleitung:
    ~1.~ Ordner "user" in data/modules/ erstellen
    ~2.~ Datei "module.include.php" erstellen und im Editor öffnen.

    Ich werde in den folgenden Teilen des Tutorials nicht erneut erklären wie das geht! Merkt es euch.
    Nachdem wir die Datei geöffnet haben schreiben wir folgendes rein:

    [code]

    0, \'name\' => $user_name, \'email\' => \'unknown\'); [/code] Wenn man nicht eingeloggt ist, steht als name einfach Gast da, das haben wir ja oben definiert. Jetzt geht es aber weiter, und zwar mit dem abrufen der E-Mail Adresse! Dazu folgender Code: [code] if($login) { $user[\'email\'] = $sql->getEmail($user[\'id\']); } [/code] .. moment mal! Die Funktion haben wir ja garnicht! **Punkt 2: Erweiterung der MySQL-Klasse** Da wir die Funktion erst erstellen müssen öffnen wir unsere MySQL-Klasse! (*data/sql/class.php*) Ich habe mir (spontan) überlegt das wir auch etwas mehr Funktionen erstellen: **Funktion 1: getUserIDByName** Wir benutzen folgenden Code, erklärung folgt! [code] public function getUserIDByName($name) { $sql = $this->query(\'SELECT `userid` FROM `user` WHERE `username`=\"\'.$name.\'\"\'); $userid = @mysql_fetch_assoc($sql); $userid = @$userid[\'userid\']; if(!$userid) { return false; } return $userid; } [/code] Nur der Parameter *$name* wird übergeben. Dann wird in der Datenbank die userid abgefragt und zurückgegeben. Sollte kein User mit dem Name existieren, wird *false* zurück gegeben! **Funktion 2: getNameByUserID** Als ersten erst wieder der Code: [code] public function getNameByUserID($userid) { $sql = $this->query(\'SELECT `username` FROM `user` WHERE `userid`=\"\'.$userid.\'\"\'); $usernm = @mysql_fetch_assoc($sql); $usernm = @$usernm[\'username\']; if(!$usernm) { return false; } return $usernm; } [/code] Hier machen wir im Grunde genau das Gegenteil zu der Funktion davor. Wir suchen den Namen raus. Sollte kein User mit dem Name existieren, wird *false* zurück gegeben! **Funktion 3: getUserVariable** Das ist eine sehr schöne Funktion, wie ich finde: [code] public function getUserVariable($userid, $cell) { $sql = $this->query(\'SELECT `\'.$cell.\'` FROM `user` WHERE `userid`=\"\'.$userid.\'\"\'); $value = @mysql_fetch_assoc($sql); $value = @$value[$cell]; if(!$value) { return false; } return $value; } [/code] Hier wird die Variable einer bestimmten Zelle (z.B: username, email, ..) ausgelesen und zurückgegeben. Das ist nur eine Zusatzfunktion. Die weiteren Funktionen wreden sie nutzen! **Funktion 4: getEmail** Dies ist eine der Funktionen die die Zusatzfunktion (s.o.) nutzen wird! [code] public function getEmail($userid) { return $this->getUserVariable($userid, \'email\'); } [/code] Praktisch, oder? **Das war\'s für diesen Teil!** Wir haben eine gute Grundlage erschaffen und auch noch unsere MySQL-Klasse erweitert! Wie gesagt, es kann passieren das sie noch weitere Funktionen hinzu kommen :D [infobox:1in47sbr]**Was kommt in Teil 8?** In Teil 8 werden wir uns mit dem Login & der Registrierung beschäftigen. Ich hatte mir eigentlich auch vorgestellt in diesem Teil das noch zu schaffen, aber ich finde dann wäre das zu groß geworden![/infobox:1in47sbr] Solltet ihr noch Ideen haben, oder Fragen! postet sie hier! Grüße Freaky

Log in to reply
 

Looks like your connection to MyTechZone 2 was lost, please wait while we try to reconnect.