[Gelöst]MySQL Daten im Plugin speichern

Wenn ihr bei eurem Plugin nicht weiter kommt, könnt ihr hier euer Problem beschreiben und um Hilfe bitten.

[Gelöst]MySQL Daten im Plugin speichern

Beitragvon nilober » Mo 16. Feb 2015, 17:56

Hallo Leute,

wollte fragen, wie kann man seine MySQL Daten (PW, Benutzername u.s.w) speichern, aber ohne das man wenn man später das Plugin mit java Gui öffnet, die Passwörter und Benutzernamen einsehen kann.
Habe nämlich vor eine Plugin zu schreiben (was ich auch veröffentliche) und was auf eine Datenbank zugreift. Natürlich sollten die Zugangsdaten dann geheim bleiben.

MFG Nils
Zuletzt geändert von nilober am Di 17. Feb 2015, 17:59, insgesamt 1-mal geändert.
Muhahaha ich bin zurück !!! :shock:
Meine Website: http://repo.shadercraft.de
Benutzeravatar
nilober
 
Beiträge: 211
Registriert: Mi 11. Sep 2013, 18:01
Wohnort: Hannover, Deutschland

Re: MySQL Daten im Plugin speichern

Beitragvon Twister_21 » Mo 16. Feb 2015, 18:01

Du kannst dich Suche verwenden. Wenn ich es finde poste ich den Link.

EDIT: viewtopic.php?f=18&t=2341&p=16597&hilit=+mysql+ilouHD#p16597, da werden noch weitere Links erwähnt.
Mit freundlichen Grüßen
Twister21
Benutzeravatar
Twister_21
 
Beiträge: 652
Registriert: Mi 11. Jun 2014, 05:51
Wohnort: Deutschland

Re: MySQL Daten im Plugin speichern

Beitragvon nilober » Mo 16. Feb 2015, 18:54

Ich kriege das einfach nicht mit dem PHP script hin. Oder ich mache ein Fehler in Java:
Code: Alles auswählen
  1. public static boolean isBanned(UUID uuid){
  2.       boolean is = false;
  3.          try {
  4.             URL url = new URL("http://shadercraft.de/API/isBanned.php?username=" + uuid);
  5.             InputStream in = url.openStream();
  6.             InputStreamReader reader = new InputStreamReader(in);
  7.             BufferedReader br = new BufferedReader(reader);
  8.             boolean result = br.readLine() != null;
  9.             is = result;
  10.          } catch (IOException e) {
  11.             is = false;
  12.           }
  13.       
  14.       
  15.       
  16.       
  17.       return is;
  18.       
  19.    }


Oder ist was im Script falsch:
Code: Alles auswählen
  1. <?php   
  2. $username = $_GET["username"];
  3. $connection = mysql_connect("shadercraft.de", "AUSGEBLENDET", "AUSGEBLENDET");
  4. mysql_select_db("AUSGEBLENDET");
  5. mysql_query("CREATE TABLE IF NOT EXISTS BannesPlayerList (UUID VARCHAR(100),  is BOOLEAN(100))");
  6. $command = "SELECT * FROM BannesPlayerList WHERE UUID=" . $_GET["username"];
  7. $result = mysql_query($command);
  8. if ($row = mysql_fetch_object($result)){
  9.     echo $row;
  10. }
  11. mysql_close($connection);
  12. ?>

Code: Alles auswählen
  1. [18:51:55] [Server thread/ERROR]: Error occurred while enabling BanManager v1.0 (Is it up to date?)
  2. java.lang.NullPointerException
  3.    at me.TheNoim.BanDatenbank.BanManager.onEnable(BanManager.java:17) ~[?:?]
  4.    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  5.    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:335) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  6.    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  7.    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.java:356) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  8.    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.java:316) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  9.    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.reload(CraftServer.java:746) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  10.    at org.bukkit.Bukkit.reload(Bukkit.java:534) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  11.    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  12.    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  13.    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCommand(CraftServer.java:646) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  14.    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchServerCommand(CraftServer.java:632) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  15.    at net.minecraft.server.v1_8_R1.DedicatedServer.aM(DedicatedServer.java:353) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  16.    at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:317) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  17.    at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:623) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  18.    at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:526) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  19.    at java.lang.Thread.run(Unknown Source) [?:1.8.0_25]
  20. [18:51:55] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
Muhahaha ich bin zurück !!! :shock:
Meine Website: http://repo.shadercraft.de
Benutzeravatar
nilober
 
Beiträge: 211
Registriert: Mi 11. Sep 2013, 18:01
Wohnort: Hannover, Deutschland

Re: MySQL Daten im Plugin speichern

Beitragvon Ch4t4r » Mo 16. Feb 2015, 19:32

mysql_methode ist veraltet. Benutz besser mysqli und (wichtig!) escape deine Argumente mit mysqli_real_escape_string(dbobject,zu_escapen)
Code: Alles auswählen
  1. $beispielget =  mysqli_real_escape_string($_GET["beispiel"]);
  2. $db = new mysqli("Host","Benutzer","Password","Datenbank");
  3. if (mysqli_connect_errno()) {
  4.   printf("Connection failed: %s\n", mysqli_connect_error());
  5.   exit();
  6. }
  7. $resultset = $db->query("command");
  8. if(!$resultset){
  9.   print("Error: " . $db->error());
  10.   exit();
  11. }
  12. $data = $resultsrt->fetch_object();
  13. $beispiel = $data->beispiel;


Wobei beispiel ein Attribut der benutzten Tabelle ist.

Zu der Exception: Nullpointerexception in BanManager.java:17.
Zuletzt geändert von Ch4t4r am Mo 16. Feb 2015, 21:27, insgesamt 1-mal geändert.
Benutzeravatar
Ch4t4r
 
Beiträge: 455
Registriert: So 7. Jul 2013, 12:44

Re: MySQL Daten im Plugin speichern

Beitragvon nilober » Mo 16. Feb 2015, 19:54

Nochmal für dumme bitte

Habe jetzt das:
Code: Alles auswählen
  1. <?php   
  2. $get =  mysqli_real_escape_string($_GET["uuid"]);
  3. $db = new mysqli("shadercraft.de","","","");
  4. if (mysqli_connect_errno()) {
  5.   printf("Connection failed: %s\n", mysqli_connect_error());
  6.   exit();
  7. }
  8. $resultCreate = $db->query("CREATE TABLE IF NOT EXISTS BannesPlayerList (UUID VARCHAR(100),  is BOOLEAN(100))");
  9. $resultset = $db->query("SELECT * FROM BannesPlayerList WHERE UUID=" . $get);
  10. if(!$resultset){
  11.   print("Error: " . $db->error());
  12.   exit();
  13. }
  14. if (!$resultCreate){
  15.     print("Error:" . $db->error());
  16.     exit();
  17. }
  18. $data = $resultsrt->fetch_object();
  19. $beispiel = $data->beispiel;
  20. ?>
Muhahaha ich bin zurück !!! :shock:
Meine Website: http://repo.shadercraft.de
Benutzeravatar
nilober
 
Beiträge: 211
Registriert: Mi 11. Sep 2013, 18:01
Wohnort: Hannover, Deutschland

Re: MySQL Daten im Plugin speichern

Beitragvon Ch4t4r » Mo 16. Feb 2015, 19:58

nilober hat geschrieben:Nochmal für dumme bitte

Habe jetzt das:
Code: Alles auswählen
  1. <?php   
  2. $get =  mysqli_real_escape_string($_GET["uuid"]);
  3. $db = new mysqli("shadercraft.de","","","");
  4. if (mysqli_connect_errno()) {
  5.   printf("Connection failed: %s\n", mysqli_connect_error());
  6.   exit();
  7. }
  8. $resultCreate = $db->query("CREATE TABLE IF NOT EXISTS BannesPlayerList (UUID VARCHAR(100),  is BOOLEAN(100))");
  9. $resultset = $db->query("SELECT * FROM BannesPlayerList WHERE UUID=" . $get);
  10. if(!$resultset){
  11.   print("Error: " . $db->error());
  12.   exit();
  13. }
  14. if (!$resultCreate){
  15.     print("Error:" . $db->error());
  16.     exit();
  17. }
  18. $data = $resultsrt->fetch_object();
  19. $beispiel = $data->beispiel;
  20. ?>



resultset ist an einer Stelle falsch geschrieben, $beispiel kann bei deinem Tabellenlayout entweder $data->UUID oder $data->is sein.
Hier mal ein Beispiel von mir: http://hastebin.com/utitowerub.coffee
Benutzeravatar
Ch4t4r
 
Beiträge: 455
Registriert: So 7. Jul 2013, 12:44

Re: MySQL Daten im Plugin speichern

Beitragvon PostCrafter » Mo 16. Feb 2015, 20:08

Der Fehler liegt aktuell aber nicht im php-Code, sondern noch in Java, php kann man danach immer noch debuggen.

Damit wir dir helfen können, brauchen wir die im Fehler erwähnte Klasse mit entsprechenden Zeilennummern, es wäre also gut die gesamte Klasse zu posten.

@Ch4t4r: es wäre hilfreich zu sagen weshalb er gewisse Methoden verwenden muss, sonst lernt er nichts sondern kopiert nur.
Übrigens ist mysqli_real_escape_string KEIN wirksamer Schutz gegen Injections, man sollte stattdessen PreparedStatements verwenden.
Besser wäre es hier sogar, das Argument zunächst per Regex zu validieren.
TeamSpeak-Server zur freien Nutzung: postcrafter.de
Benutzeravatar
PostCrafter
Administrator
 
Beiträge: 1443
Registriert: Do 6. Jun 2013, 19:16
Wohnort: Ebersberg

Re: MySQL Daten im Plugin speichern

Beitragvon Ch4t4r » Mo 16. Feb 2015, 20:10

PostCrafter hat geschrieben:Der Fehler liegt aktuell aber nicht im php-Code [...] Übrigens ist mysqli_real_escape_string KEIN wirksamer Schutz gegen Injections, man sollte stattdessen PreparedStatements verwenden.
Besser wäre es hier sogar, das Argument zunächst per Regex zu validieren.


Zu beidem: Stimmt, habe ich auch nie behauptet.
Benutzeravatar
Ch4t4r
 
Beiträge: 455
Registriert: So 7. Jul 2013, 12:44

Re: MySQL Daten im Plugin speichern

Beitragvon nilober » Mo 16. Feb 2015, 20:12

Code: Alles auswählen
  1. package me.TheNoim.BanDatenbank;
  2. import org.bukkit.Bukkit;
  3. import org.bukkit.plugin.java.JavaPlugin;
  4. public class BanManager extends JavaPlugin{
  5.    public static BanManager getInstance(){
  6.       return instance;
  7.     }
  8.    
  9.    public static BanManager instance;   
  10.    
  11.    @Override
  12.    public void onEnable(){
  13.       instance = this;      
  14.       System.out.println(isBan.isBanned(Bukkit.getPlayer("TheNoim").getUniqueId()));
  15.    }
  16. }

Code: Alles auswählen
  1. package me.TheNoim.BanDatenbank;
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.InputStreamReader;
  6. import java.net.URL;
  7. import java.util.UUID;
  8. public class isBan {
  9.    
  10.    public static boolean isBanned(UUID uuid){
  11.       boolean is = false;
  12.          try {
  13.             URL url = new URL("http://shadercraft.de/API/isBanned.php?username=" + uuid);
  14.             InputStream in = url.openStream();
  15.             InputStreamReader reader = new InputStreamReader(in);
  16.             BufferedReader br = new BufferedReader(reader);
  17.             boolean result = br.readLine() != null;
  18.             is = result;
  19.          } catch (IOException e) {
  20.             is = false;
  21.           }
  22.       
  23.       
  24.       
  25.       
  26.       return is;
  27.       
  28.    }
  29. }

Code: Alles auswählen
  1. [19:52:51] [Server thread/ERROR]: Error occurred while enabling BanManager v1.0 (Is it up to date?)
  2. java.lang.NullPointerException
  3.    at me.TheNoim.BanDatenbank.BanManager.onEnable(BanManager.java:17) ~[?:?]
  4.    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  5.    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:335) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  6.    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  7.    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.java:356) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  8.    at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.java:316) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  9.    at net.minecraft.server.v1_8_R1.MinecraftServer.q(MinecraftServer.java:402) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  10.    at net.minecraft.server.v1_8_R1.MinecraftServer.k(MinecraftServer.java:370) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  11.    at net.minecraft.server.v1_8_R1.MinecraftServer.a(MinecraftServer.java:325) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  12.    at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.java:211) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  13.    at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:494) [spigot-1.8-R0.1-SNAPSHOT.jar:git-Spigot-952179b-f98775c]
  14.    at java.lang.Thread.run(Unknown Source) [?:1.8.0_25]

Code: Alles auswählen
  1. <?php   
  2. $get =  mysqli_real_escape_string($_GET["uuid"]);
  3. $db = new mysqli("","","","");
  4. if (mysqli_connect_errno()) {
  5.   printf("Connection failed: %s\n", mysqli_connect_error());
  6.   exit();
  7. }
  8. $resultCreate = $db->query("CREATE TABLE IF NOT EXISTS BannesPlayerList (UUID VARCHAR(100),  is BOOLEAN(100))");
  9. $resultset = $db->query("SELECT * FROM BannesPlayerList WHERE UUID=" . $get);
  10. if(!$resultset){
  11.   print("Error: " . $db->error());
  12.   exit();
  13. }
  14. if (!$resultCreate){
  15.     print("Error:" . $db->error());
  16.     exit();
  17. }
  18. $data = $resultsrt->fetch_object();
  19. $beispiel = $data->beispiel;
  20. ?>
Muhahaha ich bin zurück !!! :shock:
Meine Website: http://repo.shadercraft.de
Benutzeravatar
nilober
 
Beiträge: 211
Registriert: Mi 11. Sep 2013, 18:01
Wohnort: Hannover, Deutschland

Re: MySQL Daten im Plugin speichern

Beitragvon PostCrafter » Mo 16. Feb 2015, 20:15

Ist der Spieler "TheNoim" zum Zeitpunkt der Aktivierung des Plugins online?
TeamSpeak-Server zur freien Nutzung: postcrafter.de
Benutzeravatar
PostCrafter
Administrator
 
Beiträge: 1443
Registriert: Do 6. Jun 2013, 19:16
Wohnort: Ebersberg

Nächste

Zurück zu Hilfe und Support

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 18 Gäste