Fehler im Login System

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo!


    Ich habe folgendes Problem.
    Sobald ich mich mit meinem Account auf dem Server einlogge passt alles, jedoch wenn ich einen anderen Account nehme hat dieser auch zb meinen Roleplay Namen.


    OnUserLogin:

    Woran kann das liegen?


    Danke im Voraus


    Allrounder18

  • Wie mache ich das am besten?


    Edit: Hab folgendes bei OnPlayerConnect und OnPlayerDisconnect aber bringt leider nix.


    Code
    public ResetPlayerVars(playerid)
    {
    	UserDaten[playerid][user_Eingeloggt] = false;
    	for(new i; i<sizeof(UserDaten[]); i++) { UserDaten[playerid][pUserDaten:i] = 0; }
    	for(new i; i<sizeof(UserAccDaten[]); i++) { UserAccDaten[playerid][pUserAccDaten:i] = 0; }
    	return 1;
    }

    Edit: Liegt es vielleiht an dem Dialog?

  • Der Code wird aufgerufen und geprintet


    Diee Quer wirrd aufgerufen wenn man auf Einloggen klickt.

    Code
    new query[500];
    			mysql_format(handle, query, sizeof(query), "SELECT * FROM `user` JOIN `user_acc` WHERE `username` = '%e' AND `passwort` = MD5('%e')",UserDaten[playerid][user_Name], inputtext);
    			mysql_pquery(handle, query, "OnUserLogin", "d", playerid);



    .

  • UserAccDaten[playerid][user_acc_RPVorName] trage ich per Hand in die DB. Da wir da Registirieren nicht im Script machen.


    Ich hab übrigens 2 Tabellen in dem Fall User wo nur Name und PW rreinkommt und user_acc wo der rest reinkommt. Die beiden sind mit einem Fremdschlüssel verbunden.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das habe ich noch nie versucht, ob das geht. Ich könnte mir es als problematisch vorstellen, wenn die Tabellen Spalten haben, die gleich heißen.
    In deinem Query fehlt zudem die ON Anweisung, sprich über welches Feld der JOIN erfolgen soll.


    Versuche es mal ohne den Join, indem du beide Tabellen unabhängig voneinander, nacheinander, ausliest.

  • Code
    new query[256];
    		mysql_format(handle, query, sizeof(query), "SELECT * FROM `user` WHERE `username` = '%e' AND `passwort` = MD5('%e')",UserDaten[playerid][user_Name], inputtext);
    		mysql_format(handle, query, sizeof(query), "SELECT * FROM `user_acc` WHERE `user_id` = '%e'",UserAccDaten[playerid][user_acc_ID]);
    		mysql_pquery(handle, query, "OnUserLogin", "dd", playerid);

    So hae ich es jetzt. Was muss ich dan in die zweite Zeile? So funktioniert es leider auch net. So wird OnUserLogin erst garnicht aufgerufen.



    Edit: Mit mysql_format(handle, query, sizeof(query), "SELECT * FROM `user` RIGHT JOIN `user_acc` ON user.user_id = user_acc.user_id WHERE `username` = '%e' AND `passwort` = MD5('%e')",UserDaten[playerid][user_Name], inputtext); funktioniert wird auch der richtige Roleplay Name angezeigt.


    Edit: Es funktioniert auch mit LEFT JOIN.

  • Es funktioniert auch mit LEFT JOIN.

    Wenn du beides mal exakt einen Datensatz hast, dann ist es egal, ob du einen RIGHT oder LEFT Join machst. Der LEFT Join ist eventuell etwas gebräuchlicher, in der Regel.


    Gut zu wissen, dass das Plugin auch mit Joins klar kommt, und schön, dass du das Problem so lösen konntest!