Web [php] Votifier Script

Dieses Thema im Forum "Programmierung" wurde erstellt von Postkutsche, 15. März 2013.

  1. Postkutsche
    Offline

    Postkutsche

    Registriert seit:
    8. Januar 2012
    Beiträge:
    2
    Guten Abend,

    da ich in einer der nächsten Folge meiner Bukkit Plugin Tutorialreihe die API von Votifier behandeln will (ja, ich weiß, dass das extrem wenig ist, aber einige fragen danach), wollte ich zu diesen Zwecke ein Script aufsetzen, mit dem ich auf meiner lokalen Maschine eine Art "Voteschnittstelle" erstelle. Hierbei soll einfach nur der Name, der über einen URL-Parameter übergeben wird, sowie IP und TimeStamp übergeben werden.

    Bei ersten Nachforschungen wurde ich immer auf diese Seite verlinkt, deren Code ziemlich nützlich aussieht und auch nahezu funktioniert, mir jedoch teilweise ein paar Probleme bereitet.
    Vorweg: Die benötigten Parameter $public_key, $server_ip, $server_port und $username sind alle vorhanden und eigentlich auch korrekt.

    Erstes Szenario:
    Wenn ich folgende vier Zeilen in meinem Code verwende bekomme ich jedes mal einen "Internal Server Error" und der Code wird in Folge dessen logischerweise nicht ausgeführt.
    Code (Text):
    1.     $public_key = << -----BEGIN PUBLIC KEY-----
    2.     $public_key
    3.     -----END PUBLIC KEY-----
    4.     EOF;
    Sobald ich diesen Teil jedoch weg lasse (auch wenn er vermutlich nötig ist, aber ich kenne mich mit php absolut nicht aus), komme ich zum zweiten Szenario.

    Zweites Szenario:
    Die erwähnten vier Zeilen des Codes wurden entfernt und der php-Teil funktioniert einwandfrei, ich bekomme eine Nachricht ausgegeben und der Vote wird an den Server gesendet, hier tritt jedoch folgender Error auf:
    Code (Text):
    1. 2013-03-15 22:24:52 [WARNING] [Votifier] Unable to decrypt vote record. Make sure that that your public key
    2. 2013-03-15 22:24:52 [WARNING] [Votifier] matches the one you gave the server list.
    3. javax.crypto.BadPaddingException: Blocktype mismatch: 0
    4.     at sun.security.rsa.RSAPadding.unpadV15(RSAPadding.java:328)
    5.     at sun.security.rsa.RSAPadding.unpad(RSAPadding.java:272)
    6.     at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:356)
    7.     at com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:382)
    8.     at javax.crypto.Cipher.doFinal(Cipher.java:1922)
    9.     at com.vexsoftware.votifier.crypto.RSA.decrypt(RSA.java:65)
    10.     at com.vexsoftware.votifier.net.VoteReceiver.run(VoteReceiver.java:130)
    Wie ich oben bereits gesagt habe, habe ich den String aus der public.key des Plugins korrekt in das Script eingebaut und bereits überprüft, ob diese übereinstimmen, indem ich ihn mir habe ausgeben lassen. Ich kann mir diesen Fehler also nicht wirklich erklären, auch ein neues Generieren des Keys (und Verwenden dieses im php-Skript) haben nicht zu einer Lösung geführt.

    Über jegliche Hilfe würde ich mich sehr freuen, sollte niemand eine Lösung finden muss ich mir halt anders zu helfen wissen, aber ich dachte mir dies wäre der schönste Weg.

    Postkutsche / PostCrafter
     
    #1
  2. Cabraca
    Online

    Cabraca

    #2
  3. Hecke29
    Online

    Hecke29

    Code (Text):
    1. $public_key = <<<EOF
    2. -----BEGIN PUBLIC KEY-----
    3. blabla
    4. -----END PUBLIC KEY-----
    5. EOF;
    Hinter <<<EOF darf kein Leerzeichen mehr kommen und blabla ist natürlich zu ersetzen. Dann funktioniert's ;)

    Edit: Also der PHP-Code funktioniert dann, vom Rest hab ich keine Ahnung :D
     
    #3
  4. Postkutsche
    Offline

    Postkutsche

    Registriert seit:
    8. Januar 2012
    Beiträge:
    2
    Die Seite kenne ich auch schon, da ich aber leider absolut keine Ahnung von php habe bringt mir das leider nichts, trotzdem danke für die Antwort.

    Danke, ich werde das morgen mal probieren, sobald ich wieder am PC bin. ;)

    EDIT: Ich konnte nicht widerstehen und habe den PC doch nochmal gestartet. Alles klappt, danke für die schnelle (und zufriedenstellende) Antwort.
     
    #4