registratie plugin (run php script)

Status
Niet open voor verdere reacties.

NielsEulink

Gebruiker
Lid geworden
7 sep 2013
Berichten
82
hallo helpmij leden en lezers van deze vraag,
ik heb een vraag over java (bukkit om precies te zijn)
ik heb een plugin gemaakt die een gebruiker registreert op het forum van onze website. (phpbb)
omdat phpbb een lastig begrijpbare password hash heeft heb ik besloten het met php te doen.
ik heb dus op onze site een php file aangemaakt en die ziet er als volgt uit:

PHP:
<?php
define('IN_PHPBB', true); 
$phpbb_root_path = './gg/';  // Your path here 
$phpEx = substr(strrchr(__FILE__, '.'), 1); 
include($phpbb_root_path . 'common.' . $phpEx); 

// Start session management 
$user->session_begin(); 
$auth->acl($user->data); 
$user->setup(); 

require($phpbb_root_path .'includes/functions_user.php'); 

$username = $_GET['u'];
$password = $_GET['p'];
$email  = $_GET['e'];

$user_row = array( 
'username' => $username, 
'user_password' => md5($password), 'user_email' => $email, 
'group_id' => 2,
'user_timezone' => '1.00', 
'user_dst' => 0, 
'user_lang' => 'en', 
'user_type' => '0', 
'user_actkey' => '', 
'user_dateformat' => 'd M Y H:i', 
'user_style' => 1, 
'user_regdate' => time(), 
); 

$phpbb_user_id = user_add($user_row);
//de echo's hieronder zijn om te testen!!
echo "script by Niels1910<br><br>";
echo "user id= " . $phpbb_user_id . "<br>";
echo "username= " . $username . "<br>";
echo "password= " . $password . "<br>";
echo "email= " . $email . "<br>";
?>


dit script werkt perfect als ik hem gebruikt in me browser.
alleen nu wil ik hem gebruiken vanuit me plugin. ik heb het geprobeerd met:
Code:
URL url = new URL("http://mijnsite.nl/register_user.php?u=" + playerName + "&p=" + password + "&e=" + email);
URLConnection con = url.openConnection();
con.connect();
sender.sendMessage(ChatColor.GREEN + "Your registration has been sucessful.");

nadat ik /register <email> <ww> <ww again> heb gedaan registreerde hij de gebruiker niet in de database.
dus er is iets fout. maar ik ben nog beginnend java dev en ik kom er maar niet uit dus daarom post in de vraag hier.
hopelijk snappen jullie dat ik bedoel en kan iemand mij antwoord geven :D alvast bedankt!


het volledige script van de plugin (pastbin.com)

-Niels Eulink
 
Is het probleem met deze code nu verholpen of heb je een andere oplossing gevonden? In het geval je voor een andere oplossing gekozen heb of voor mensen die dit topic vinden via de zoekfunctie/Google:

Een handige tip voor de toekomst: raadpleeg de documentatie eens om te zien of je geen verkeerde aannames maakt (want waarschijnlijk heb je gewoon een stukje code van Google geplukt en weet je verder niet echt wat van de code af :p)

De documentatie die je in dit geval nodig hebt is te vinden op: http://docs.oracle.com/javase/6/docs/api/java/net/URL.html (al zou er in dit specifieke geval ook gebruik kunnen worden gemaakt van een http sniffer (bijvoorbeeld WireShark) aangezien je op die manier kunt kijken of en wat er precies verzonden wordt en in het geval er wel iets verzonden wordt kun je ook controleren of dit wel op dezelfde wijze wordt gedaan)

Maar hoe dan ook, in de documentatie staat de onderstaande tekst welke afhankelijk van je invoer ook de reden is waarom het fout gaat:

The URL class does not itself encode or decode any URL components according to the escaping mechanism defined in RFC2396. It is the responsibility of the caller to encode any fields, which need to be escaped prior to calling URL, and also to decode any escaped fields, that are returned from URL. Furthermore, because URL has no knowledge of URL escaping, it does not recognise equivalence between the encoded or decoded form of the same URL. For example, the two URLs:

http://foo.com/hello world/ and http://foo.com/hello world

would be considered not equal to each other.

Wanneer je namelijk een link in je browser opent dan zal deze automatisch URL encoding toepassen in het geval dat noodzakelijk is, en zoals je hierboven kunt lezen ben je hiervoor zelf verantwoordelijk bij de URL klasse.
 
ik heb voor een andere manier gekozen. het word een erg grote server en werken er met een dev team aan van ong 20 leden.
1 is er weg gegaan en ik heb die code van hem over genomen. waar hij hem vandaan heeft gehaald weet ik niet. ik heb het iig erg verandert en gebruik nu een ander forum systeem.
eentje die auto de ww verandert in een sha1 hash als hij ziet dat er 1 ww in de database niet in een sha1 hash staat. erg handig dus.
daarom maak ik geen gebruik meer van php/url maar connect de plugin gewoon direct met de database.

bedankt voor de reactie als je graag ziet dat ik de code op het forum plaats om andere mensen te helpen moet ik dat wel ff overleggen.
maar dan wil ik me best er echt wel voor doen.


- Niels Eulink
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan