[LUA] Wie machen wir den One-Time Inventar Login?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [LUA] Wie machen wir den One-Time Inventar Login?

      Hallo meine Lieben,

      an alle Interessierten, werde ich hier immer wieder einfache und kurze Lua-Codes direkt vom Server posten. Viel Spaß!

      Hier zeige ich euch, was passiert, wenn ihr Ingame !inv eingebt. Viel spaß: (minimale abgeändert, damit ihr nicht auf dumme Gedanken kommt :) )

      Ganz oben kommen natürlich noch die LoginDaten für den MYSQL Zugriff hin.

      Quellcode

      1. hook.Add( "PlayerSay", "cmd", function( ply, strText)
      2. strText = string.lower( strText )
      3. if (string.find( strText , "!inv" )) or (string.match( strText , "!inv" )) then
      4. local sid64 = ply:SteamID64()
      5. ply:PrintMessage(HUD_PRINTTALK ,"<c=255,0,0>[Instinkt Server Online Inventar] </c> Dein Link wird generiert.")
      6. ply:PrintMessage(HUD_PRINTTALK ,"<c=255,0,0>[Instinkt Server Online Inventar] </c> Gib diesen Link unter keinen Umständen weiter!")
      7. ply:PrintMessage(HUD_PRINTTALK ,"<c=255,0,0>[Instinkt Server Online Inventar] </c> Dieser erlaubt den uneingeschränkten Zugriff auf Dein Online Inventar!")
      8. ply:PrintMessage(HUD_PRINTTALK ,"<c=255,0,0>[Instinkt Server Online Inventar] </c> Nutze zum Sharen den Link in deinem UCP Profil")
      9. --local ply = FindMetaTable("Player")
      10. --local ply = Entity(ply)
      11. local upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
      12. local lowerCase = "abcdefghijklmnopqrstuvwxyz"
      13. local numbers = "0123456789"
      14. local characterSet = upperCase .. lowerCase .. numbers .. upperCase
      15. local keyLength = 16
      16. local output = ""
      17. for i = 1, keyLength do
      18. local rand = math.random(#characterSet)
      19. output = output .. string.sub(characterSet, rand, rand)
      20. end
      21. local Timestring = os.date('%Y%m%d%H%M', ts)
      22. local hash = output .. Timestring
      23. local sid64 = ply:SteamID64()
      24. local queryhash = databaseObject2:query("INSERT INTO *zensiert*(hash, steamid64) VALUES ('" .. hash .. "','" .. sid64 .. "') ")
      25. queryhash:start()
      26. timer.Simple(1, function()
      27. ply:PrintMessage(HUD_PRINTTALK ,"<c=255,0,0>[Instinkt Server Online Inventar] </c> Hier dein Login-Link: <url>https://inventar.instinkt-servers.net/login.php?hash="..hash.. "</url>")
      28. end)
      29. end
      30. end)
      Alles anzeigen

      Nun ist die eindeutige ID in der Datenbank und einem genauen User zugeorndet, weshalb ein Login direkt aus dem Spiel erfolgen kann, ohne Logindaten eingeben zu müssen.


      Sollte selbsterklärend sein.
      Bei Fragen: Posten.



      Have fun
      Viele Grüße,
      Instinkt

      Owner werden ist nicht schwer. Owner sein dagegen sehr.
      Denken ist harte Arbeit, weshalb sie auch nur von wenigen ausgeübt wird.

    • Hier meine Magie der Website (natürlich ist das nicht alles)

      HTML-Quellcode

      1. if($_GET["hash"]!=null){
      2. $result4 = mysqli_query($con,"SELECT steamid64 FROM hashing WHERE hash ='".$_GET["hash"]."';");
      3. $currcommon = mysqli_fetch_row($result4);
      4. $result5 = mysqli_query($con,"SELECT validation FROM hashing WHERE hash ='".$_GET["hash"]."';");
      5. $currcommon2 = mysqli_fetch_row($result5);
      6. if($currcommon[0]!=null&&$currcommon2[0]==null){
      7. $steamprofile['steamid'] = $currcommon[0];
      8. $getname = mysqli_query($con,"SELECT personaname FROM userliste WHERE steamid = '".$steamprofile['steamid']."'");
      9. $name = mysqli_fetch_row($getname);
      10. $steamprofile['personaname'] = $name[0];
      11. echo"valid! hash:".$_GET["hash"]."steamid:".$currcommon[0]."name:".$steamprofile['personaname'];
      12. setcookie(
      13. ******************************* zensiert
      14. 0
      15. );
      16. $status = "expired";
      17. $updatevalidation = mysqli_query($con,"update hashing set validation='". $status ."' where steamid64='" .$currcommon[0]. "'");
      18. header("Location: https://inventar.instinkt-servers.net/login.php");
      19. die();
      20. }}
      21. session_regenerate_id();
      22. if($_COOKIE[secureloginwithoutsteam]!=null){
      23. $result4 = mysqli_query($con,"SELECT steamid64 FROM hashing WHERE hash ='".$_COOKIE[*******censored]."';");
      24. $currcommon = mysqli_fetch_row($result4);
      25. $steamprofile['steamid'] = $currcommon[0];
      26. $getname = mysqli_query($con,"SELECT personaname FROM userliste WHERE steamid = '".$steamprofile['steamid']."'");
      27. $name = mysqli_fetch_row($getname);
      28. $steamprofile['personaname'] = $name[0];
      29. if(strlen($steamprofile['personaname'])<2){
      30. $testname = mysqli_query($con,"SELECT name from Inventar where steamid = '". $steamprofile['steamid'] ."' ORDER BY id DESC LIMIT 2");
      31. $testname2 = mysqli_fetch_row($testname);
      32. if($testname2[0]!=null){
      33. $steamprofile['personaname']=$testname2[0];
      34. }else{
      35. $steamprofile['personaname']="unknown User (".$steamprofile['steamid'].")";}
      36. }
      37. }
      Alles anzeigen


      Pewidot

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Peridot ()