[php] "Rank" System

06/25/2015 22:13 CeLiFiG#1
Also Hey Leute,
ich habe mich in letzter Zeit ein bisschen mit php beschäftigt und habe ein Login und Register Script erstellt. Mit der mysql db usw. funktioniert alles soweit gut. Nun möchte ich das manche Benutzer wenn sie eingeloggt sind anderen Text angezeigt bekommen als normale. So wie z.B ein Premium bei epvp
Habt ihr da eine idee?^^
06/25/2015 22:36 Shawak#2
[Only registered and activated users can see links. Click Here To Register...]
06/25/2015 22:37 wurstbrot123#3
Füg einfach ein Feld für Userstatus hinzu in der DB und frag dann den Status ab.
Je nachdem welchen Status die haben zeigste dann anderen Content...
06/25/2015 22:58 MrDami123#4
Erstelle spezielle Usergruppen in MySQL und füg die jeweiligen User dann dort hinzu. Entsprechend der Usergruppe wird eine modifizierte Versions des Templates wiedergegeben.
06/26/2015 22:58 CeLiFiG#5
Hab eine neue Spalte namens rank eingefügt, nun brßuchte ich eine Abfrage kann mir einer mit dem script helfen ?
06/27/2015 00:00 snow#6
#moved…
06/27/2015 14:41 Icetea#7
Mach es einfach über die Datenbank mit Buchstaben oder Zahlen in der Spalte und mach dann in PHP ein array, dass die Webseite weiß was genau was ist. Anschließend machst du einfach Authority Checks. Das ganze sollte eigentlich relativ simpel zu lösen sein.

Tipp: Youtube Tutorials gibt es genügend. :p

Liebe Grüße,
Icetea'
06/27/2015 15:05 False#8
Kleine Tipp am Rande, ich denke du nutzt Mysql ganz normal....Da dort der Sicherheitsstandard nicht optimal ist empfehle ich dir Dbal zu nutzen
06/27/2015 15:16 lnqlorlouz#9
PHP Code:
<?PHP if ($rank == "0") { echo 'Du bist noch kein Premium-Mitglied.';}
elseif (
$rank == "1") { echo 'Du bist Premium-Mitglied! Glückwunsch!';} ?>
So könnte das auch aussehen. Musst halt natürlich den Rank aus deiner Datenbank auslesen.
06/27/2015 15:45 Shawak#10
Oder du machst es vernünftig und benutzt Bitflags, auf die Art und Weise kannst du einem User verschiedene Usergruppen zuordnen ohne viel Speicher zu verschwenden.

Den Link zu einem Tutorial habe ich ja bereits gepostet.
06/27/2015 23:46 CeLiFiG#11
Quote:
Originally Posted by Shawak View Post
Oder du machst es vernünftig und benutzt Bitflags, auf die Art und Weise kannst du einem User verschiedene Usergruppen zuordnen ohne viel Speicher zu verschwenden.

Den Link zu einem Tutorial habe ich ja bereits gepostet.
Ich glaube ich bin noch ein bisschen zu doof für Bitflags.
Könntest du mir einen Code schreiben? Würde auch bezahlen :P
06/28/2015 13:45 Wieland11#12
Quote:
Originally Posted by CeLiFiG View Post
Ich glaube ich bin noch ein bisschen zu doof für Bitflags.
Könntest du mir einen Code schreiben? Würde auch bezahlen :P
Hier steht doch ein Code:

Quote:
<?PHP if ($rank == "0") { echo 'Du bist noch kein Premium-Mitglied.';}
elseif ($rank == "1") { echo 'Du bist Premium-Mitglied! Glückwunsch!';} ?>
Den kannst du benutzen. Die mysql_abfragen kannst du selber machen, dass müsstest du kennen, du hast ja dich bereits mit einem Login/Register vertraut gemacht.
06/28/2015 14:21 CeLiFiG#13
Quote:
Originally Posted by Wieland11 View Post
Hier steht doch ein Code:



Den kannst du benutzen. Die mysql_abfragen kannst du selber machen, dass müsstest du kennen, du hast ja dich bereits mit einem Login/Register vertraut gemacht.
Ich probiers mal
07/02/2015 09:11 xsrf#14
Ich weiß jetzt nicht ob das Thema noch aktuell ist oder ob sich sein Problem bereits gelöst hat.

Natürlich sind BitFlags eine effizientere Variante aber ich denke nicht, dass er nach so kurzer Zeit damit zurecht kommen wird.

Du machst folgendes:

Erstelle in deiner Datenbank in der Tabelle wo der Account gespeichert ist eine neue Spalte name Auth.

Du weist dieser Spalte den Typ INT und eine maximale Länge von 1 zu. Den Standartwert setzt du auf 0. (Und ja ich meine die Zahl 0.)

Bei jeder Registration wird dieser Wert auf 0, den Standart Rang gesetzt.

Dann erstellst du eine neue Datei die du meinetwegen SiteFunctions.php nennen kannst oder wie du gerade möchtest.

Dort schreibst du folgenden Code hinein.

PHP Code:
<?php

function getUserAuth($databaseAuth){
    
    
$strAuth null;
    
    switch(
$databaseAuth){
        case 
0:
            
$strAuth 'Registriertes Mitglied';
            break;
        case 
1:
            
$strAuth 'Premium Mitglied';
            break;
        case 
2:
            
$strAuth 'Administrator';
            break;
    }
    
    return 
$strAuth;
    
}
Diese Datei fügst du dann mit require_once() in deine Hauptdatei ein oder wo auch immer du deine Dateien includierst.

Hast du das gemacht musst du nun eine Abfrage an eine Datenbank machen bzw. beim Login die Spalte Auth abfragen. Den Wert den du bekommst speicherst du in der $_SESSION Variable zum Bleistift unter Authority oder Auth.

Du hast jetzt den Zahlenwert abgespeichert. Wenn du jetzt an irgendeiner Stelle auf deiner Seite diesem Zahlen Wert einen Rangnamen zuweisen möchtest wirfst du es einmal durch diese Funktion und lässt es ausgeben.

PHP Code:
<?php echo getUserAuth($_SESSION['Auth']); ?>
Abfragen tust du den Rang bei if Abfragen oder Ähnlichem lediglich über den Zahlenwert. Der String ist nur dafür da um dem User seinen Rang zu offenbaren.
07/02/2015 21:48 CeLiFiG#15
Quote:
Originally Posted by AMAZEN View Post
Ich weiß jetzt nicht ob das Thema noch aktuell ist oder ob sich sein Problem bereits gelöst hat.

Natürlich sind BitFlags eine effizientere Variante aber ich denke nicht, dass er nach so kurzer Zeit damit zurecht kommen wird.

Du machst folgendes:

Erstelle in deiner Datenbank in der Tabelle wo der Account gespeichert ist eine neue Spalte name Auth.

Du weist dieser Spalte den Typ INT und eine maximale Länge von 1 zu. Den Standartwert setzt du auf 0. (Und ja ich meine die Zahl 0.)

Bei jeder Registration wird dieser Wert auf 0, den Standart Rang gesetzt.

Dann erstellst du eine neue Datei die du meinetwegen SiteFunctions.php nennen kannst oder wie du gerade möchtest.

Dort schreibst du folgenden Code hinein.

PHP Code:
<?php

function getUserAuth($databaseAuth){
    
    
$strAuth null;
    
    switch(
$databaseAuth){
        case 
0:
            
$strAuth 'Registriertes Mitglied';
            break;
        case 
1:
            
$strAuth 'Premium Mitglied';
            break;
        case 
2:
            
$strAuth 'Administrator';
            break;
    }
    
    return 
$strAuth;
    
}
Diese Datei fügst du dann mit require_once() in deine Hauptdatei ein oder wo auch immer du deine Dateien includierst.

Hast du das gemacht musst du nun eine Abfrage an eine Datenbank machen bzw. beim Login die Spalte Auth abfragen. Den Wert den du bekommst speicherst du in der $_SESSION Variable zum Bleistift unter Authority oder Auth.

Du hast jetzt den Zahlenwert abgespeichert. Wenn du jetzt an irgendeiner Stelle auf deiner Seite diesem Zahlen Wert einen Rangnamen zuweisen möchtest wirfst du es einmal durch diese Funktion und lässt es ausgeben.

PHP Code:
<?php echo getUserAuth($_SESSION['Auth']); ?>
Abfragen tust du den Rang bei if Abfragen oder Ähnlichem lediglich über den Zahlenwert. Der String ist nur dafür da um dem User seinen Rang zu offenbaren.
Danke weißt gar nicht wie sehr du mir geholfen hast ! :D
Hab jetzt ein Problem,
wenn ich in der Datenbank die Spalte Auth von 0 zu 1 ändere bleibt "Registrietes Mitglied" gleich und wird nicht verändert. Eine idee?