# php script in java aufrufen



## fleckdalm (11. Apr 2011)

<intro>
Ich schreibe an einer Art Hangman-Quiz, welches als Java-Applikation arbeiten soll.
Die Fragen bezieht das Programm aus dem Internet von meiner Quiz-Homepage.
</intro>

Weil das in den alten thread irgendwie nicht mehr passt(vom thema her und vom bereich her) mache ich hier mal einen neuen.

Ich habe ein php script das ich im browser folgendermaßen aufrufe: www.serveradresse.de/frage.php?=hier ist die frage

Wie kann ich das nun in java aufrufen, so das eine frage aus einer variable an das php script übergebn wird?

Und auch wenn es hier nicht so ganz hinpasst wie kann ich dem php script sagen, dass es nach der frage einen zeilenumbruch einfügen soll?

Schonmal Danke, mfg Fleckdalm


----------



## Gelöschtes Mitglied 5909 (11. Apr 2011)

1. ungefähr so


```
String variable = "Welche form hat eine Brezel?"
InputStream in = new URL("http://deineserveradresse/frage.php?frage=" + frage).openStream();
```

2. was meinst du mit zeilenumbruch?

<br> ?


----------



## fleckdalm (11. Apr 2011)

Danke ich probiere das später gleich mal aus!
Wie ist eigentlich das mit dem intro in meinen startpost gekommen? Kann ein admin fremde posts bearbeiten oder so? Naja jedenfalls danke!

Ach und mit zeilenumbruch ist gemeint: ich übergebe dem php script die frage, und dieses schreibt sie dann in eine txt datei am server. Wie kann. Ich das php script jetzt so erweitern, dass es nachdem es die frage in die txt datei geschrieben hat es noch einen zeilenumbruch einfügt? 
\r\n wie in java geht leider nicht. Ich weiß das das hier nicht so ganz dazupasst, aber vielleicht kann mir ja trotzdem jemand antworten.
Danke, mfg Fleckdalm


----------



## Gelöschtes Mitglied 5909 (11. Apr 2011)

Steht doch drunter



> Geändert von L-ectron-X (Heute um 11:53 Uhr) Grund: kurze Einleitung verfasst, weil man sonst nicht weiß, worum es geht.


----------



## L-ectron-X (11. Apr 2011)

Häng mal als Letztes ein 
	
	
	
	





```
."\r\n"
```
 an, bevor du deine PHP-Methodenklammer schließt.


----------



## fleckdalm (12. Apr 2011)

Danke lectron und rail, beides hat funktioniert! Wahrscheinlich wird das Quiz noch heute Abend wieder verfügbar sein. Natürlich würde ich mich sehr freuen wenn ihr es euch einml anschauen würdet;-)
Mfg Fleckdalm


----------



## despikyxd (12. Apr 2011)

ich weis : doofe frage , aber : es würde echt helfen wenn du mal n bissl source deines projects zeigen würdest damit wir dir mal wirklich anhand deiner codes helfen können

es reicht nunmal nicht alles nur zu umschreiben und sich über falsche lösungsansätze aufzuregen ...
wenn du nicht bereit bist wenigstens pseudo-mäßig deine probleme zu posten dann können wir dir einfach nicht mehr helfen

klar solltest du dann danach auch einiges ändern um sicherheitslücken durch offenen source zu schließen ...

aber mal meine erliche meinung : es scheint als das du grade erst mit programmieren angefangen hast ... und da ist sowas ... ein 24/7 erreichbares projekt einfach noch zu fehleranfällig und im höchsten maße sicherheitsgefährdet das du erstmal etwas kürzer treten und dir die grundlagen zu dem was du für dein projekt brauchst anzueignen ...

dessweiteren ist es extrem riskant sich gleich n server zu holen und darauf ein noch nicht mal vom konzept fertiges TEST-system laufen zu lassen ... sowas sollte man mit n paar freunden und ner v-lan software wie hamachi erstmal langsam antesten und erst wenn es dann halbwegs funktioniert veröffentlichen ...

die aktion mit : fragen per FTP uploaden fand ich am besten

kleiner tipp am rande : sowas sollte man nicht mal eben mit nem free-hoster und den begrenzten mitteln machen ...
da muss man halt mal etwas geld investieren und sich n server mieten ... *n V-server reicht ja für n anfang* ...
wichtig dabei naürlich : SICHERN ! ... ansonsten wird das ding ganz schnell gefährlich *grade was mailing angeht am besten erstmal dichtmachen und abschalten bis man es richtig configuriert hat*
auch kann man dann hierbei eigene server-software verwenden ... also auch eigene protocolle ... verschlüsselung ... und und und ...

außerdem sollte es extrem viel speicher fressen wenn du alles in dateien schreibst ... eine datenbank wäre hier eindeutig besser *und auch flexibler wenn man z.b. kategorien hat dann z.b. nach diesen zu sortieren oder sowas*


von mir also als : stell das projekt erstmal komplett ein und eigne dir grundlagen an ... einfach immer nur bei problemen um lösungen zu fragen hilft nicht viel wenn man es nicht versteht sondern nur stumpf übernimmt

ich sitze mit ein paar freunden auch schon seit 3 jahren an einem projekt und wir sind grade mal im 3ten stadium
bei uns sieht der entwicklungsbaum so aus



Alpha - war so ziemlich die gesamte phase in der alles konzipiert und entwickelt worden ist ...
Beta - umfangreiche Test-Phase im LAN und über V-LAN
AKTUELL-> Gamma - abschluss der arbeit an der logik des projektes , entwicklung der graphischen oberfläche und weiteres testen der logik

noch folgen werden

Delta - phase nach abschluss der entwicklung der graphischen oberfläche , wird sehr viel testen und rumpobieren enthalten
RC - wird erst eintreten wenn eine stabile , SICHERE end-phase erreicht ist ... wird sozusagen die PublicBeta bei der wir dann endlich die öffentlichkeit ranlassen wollen ... wird sicher viel arbeit mit sich bringen da es bei einigen sicher gar nicht laufen wird ... bei anderen nur fehler auftreten werden ... und es wird hoffentlich KONSTRUKTIVE kritik geben ... also nach dem motto : das hier ist totaler mist ... dafür ist das andere dort gut gelungen ... und sowas hier könntet ihr noch ein bauen ...
FINAL - nach abschluss der RC-phase ... geplanter umzug auf einen root-server

und daran sitzen wir schon 3 jahre ... und sind n team von 7 leuten *von anfang an* ... und sind grade mal bei den anfängen der GUI ... wir gehen davon aus das diese die meiste zeit in anspruch nehmen wird ...
das grundgerüst der GUI ... also die daten aus denen diese dann letztendlich erst erstellt wird ... und deren verarbeitung sind schon so gut wie fertig .... hier und da immer wieder bugs oder andere probleme ...


du siehst also : man kann nich mal eben sich was ausdenken ... daran n paar tage sitzen und es dann publishen ... das geht so nicht ...
und wie wir hier ja alle sehen : zum beispiel der punkt mit dem fragen-uploaden ... dafür scheinst du noch nich mal n konzept zu haben wie du es überhaupt realisieren willst ...

ich will dich ja nicht entmutigen ... und auch alle anderen können jetzt denken was sie wollen ...
ich will dir nur zeigen das sowas seine zeit braucht ... du bist halt atm schon ganz schön voreilig ...
wie du ja selbst gesagt hast : es ist ein risiko deine FTP-daten in die clienten zu schreiben ... dagegen musst du natürlich was tun ...
und so solltest du über ALLE bestandteile deines projektes denken : könnte es ein risiko sein , funktioniert das so überhaupt , welche möglichkeiten gibt es ...

natürlich sind wir gewillt dir zu helfen ... aber dafür brauchen wir auch gewissen informationen ... und dazu zählen halt auch mal n paar zeilen code ...


----------



## fleckdalm (12. Apr 2011)

Ich habe es ja schon im vorigen post geschrieben: Es hat funktioniert!
Momentan scheint alles halbwegs zu laufen!
Es war aber auch nie geplant das zu einem wirklich großen projekt werden zu lassen. Ich kann nämlich wirklich erst seit einem halben Jahr programmieren, und dieses Quiz ist eigentlich nur für Verwandte, Bekannte und interessierte leute gedacht!
Mir ist klar das es auch wenn es jetzt halbwegs funktioniert sicher noch unzähligeBugs enthält, sicher nicht wirklich gut Programmiert ist!
Es ging mir aber Hauptsächlich auch nur darum ein bisschen besser im Programmieren zu werden, die möglichkeiten von Java kennenzulernen...

Jedenfalls ist es jetzt auf meiner Website verfügbar, es würde mich freuen wenn ihr es euch anschaut (siehe Signatur)! Auf Anfrage schicke ich auch gerne interessierten Personen den Programmcode, als Netbeans Projekt (natürlich unter der Vorraussetzung, dass derjenige nichts blödes damit anstellt)!

Mfg Fleckdalm


----------



## despikyxd (12. Apr 2011)

gut ... das das nun keine große kiste werden sollte war mir nicht bewusst ...
leider bin ich zur zeit in reha und wir haben hier nur über n Squid-proxy netzzugang ... wäre mir also leider immo nicht möglich dein projekt zu testen ...
ich würde allerdings ... wenn du nichts dagegen hast ... mir trotzdem mal gerne deinen source ansehen *auch den vom php-script* um mir mal deine lösung anzgucken ... würde dir natürlich tipps und hilfe geben um ihn zu verbessern oder gar sicherheitslücken z.b. im php script zu beheben ...

ich habe schon seit guten 7 jahren viele erfahrungen mit Java und PHP machen können ...
habe schon viel selbst entwickelt und mich immer wieder an neuem versucht ...
mit graphischen elementen hatte ich bis jetzt so gut wie nie was am hut ...
in php mal ne tabelle dynamisch erzeugen oder mal ne ganz einfach GUI in java ...
aber jetzt bei unserem projekt wo wir auch einige 2D oder sogar 3D elemente einbauen wollen ... da muss ich noch ne menge lernen ...
4-Gewinnt kann ich dir zwar mit pseudo-code und consolen-basiert bauen ... aber graphisch ... das hab ich einmal versucht und dann auch wieder gelassen ... da gehört dann halt doch mehr dazu

ich kann dir ja mal im gegenzug einiges an daten von mir schicken ...
bin am sonntag mal zu hause an meinem rechner wo ich das alles drauf hab ... hoffe bis dahin ist auch das neue netzteil meines lappis da damit ich die hier geschriebenen files übertragen kann ...
da ist ne ganze menge mist mitlerweile zusammen gekommen ... hauptsächlich viel netzwerk- und verschlüsselungs-kram ...
ich kann die anderen ja mal fragen ob wir dir nicht sogar einige logik-klassen zusenden und dir das schön mit kommentaren vollstopfen das du daraus vllt etwas lernen kannst ...
oder hast du sogar gezielt gebiete auf denen du dich weiterentwickeln möchtest ? ... bis auf 3D-programmierung ist eigentlich alles dabei ...
gut ... unser ... und vorallem MEIN programmier-stil sind nicht grad die besten und vllt für einen beginner nicht so geeignet ...
wir verwenden viel abstrakte konstrukte und komplizierte sprach-elemente *ganz gerne von V!Ru5 wird der ?-operator genutz ... glaube er hat mal ne halbe klasse damit zugebombt ^^*
oder auch in punkt reflections ... ist ja doch n sehr komplexes thema ... hab mich im rahmen unseres Plug-In - Systems damit mal auseinander gesetz ...

wie gesagt : ich würde mich freuen dir helfen zu können ...
auch wenn mein vorpost etwas schroff klang ... ich wollte dich wirklich nicht entmutigen ... im gegenteil ... eigentlich nur sagen : lass dir die zeit die du brauchst ...
weil erlich : ich glaube ich konnte nach nem halben jahr noch weniger als du jetzt schon drauf hast ....
wenn du interresse hättest würden wir dich sogar mit in unser projekt einbeziehen ... weil wir brauchen echt jede hilfe =)

gut soweit dann vor mir ...


kleines pseudo-beispiel wie man daten hochläd


```
StringBuilder sb=new StringBuilder();
sb.append("field1=");
sb.append(URLEncoder.encode("value1", "UTF-8"));
sb.append("&");
sb.append("field2=");
sb.append(URLEncoder.encode("value2", "UTF-8"));
//usw ... das "&" immer zwischen ein field=value-paar
String msg=sb.toString();
Socket sock=new Socket(HOST, 80); //TCP/80 ist der standard HTTP-port
PrintStream out=new PrintStream(sock.getOutputStream());
BufferedReader in=new BufferedReader(new InputStreamReader(sock.getInputStream()));
out.println("POST "+address+" HTTP/1.0);
out.println("Server: "+HOST);
out.println("Content-Type: application/x-www-form-urlencoded");
out.println("Content-Length: "+msg.length());
out.println("");
out.println(msg);
out.println("");
out.flush();
String il="";
while((il=in.readLine())!=null)
{
   System.out.println(il);
}
in.close();
out.close();
sock.close();
```

wie gesagt ... ist pseudo code ... aber funzt ...

im php-script kommst du dann so wieder an die daten


```
$value1=$_POST['field1'];
$value2=$_POST['field2'];
```

und wie du jetzt mit php diese daten in eine dateischreibst ist eigentlich auch nicht weiter schwer ...
du öffnest mit fopen() eine datei ... liest sie ein ... ersetzt einen "einfüge-kommentar" ... also die datei enthält dann z.b. solch eine zeile

#INPUT

mit sowas hier

<FRAGE>\n#INPUT

<FRAGE> - ergibt sich .. ist halt die frage die du einfügen willst
\n - line-terminator unter unix ... unter win ist es glaub ich \r\n ... unter Mac nur \r ... aber \n wird von ALLEN OS's als zeilenumbruch akzeptiert
#INPUT der neue einfüge-kommentar an dessen stelle dann wieder neue fragen eingefügt werden können

ob es in PHP sowas schönes wie RandomAccessFile gibt weis ich nicht ... schon lange nichts mehr in PHP gemacht ... muss ich aber bald wieder

und closed die datei dann wieder ...
wie erwähnt : hier würde sich eine Datenbank besser eignen ... aber soweit bist du dann noch nicht ganz oder ? ^^

beim wieder einlesen dieser datei solltest du dann einen reader verwenden der automatisch auf \n reagiert und es dir ermöglicht die datei zeilenweise einzulesen ... wobei du dann darauf achtest ob die zeile halt equals("#INPUT") ist und ignorierst sie in diesem falle


----------



## fleckdalm (12. Apr 2011)

Also wegen sicherheitslücken im php script oder auch allgemein, da gibt es sicher etliche! Ich werde sie aber wahrscheinlich nicht alle schliesen, weil es eben nur ein kleines projekt ist wo so etwas mal eher egal ist.

Von Php verstehe ich sowieso im Grunde gar nichts auch mein 5 zeilen script für die Fragen hab ich nur aus dem Internet, und das ist auch schon das einzige was ich von php weiß, da ich mir das natürlich ein bisschen genauer angeschaut habe. Ich hatte nämlich eigentlich gar nie vor mich mit php zu befassen, das hat sich einfach so ergeben.

Außerdem habe ich auch nicht vor beim Quiz noch viel weiter zu machen, da es eben nur mehr so zum Spaß bzw. als übung für mich sein sollte. Da will ich mich auf die Feinheiten erst gar nicht einlassen weil das sicher zu kompliziert für mich ist.

Ich habe eigentlich keine gezielten gebiete auf denen ich mich weiter entwickeln will, mich interessiert eigentlich fast alles in zusammenhang mit Java...
Über ein paar beispielklassen würde ich mich aber wirklich sehr freuen!

An was für einem Projekt arbeitet ihr eigentlich? Muss ja etwas ganz tolles sein wenn ihr euch so lange dafür zeit nehmt!

In eurem Projekt würde ich jedoch glaube ich eher weniger anfangen, weil ich ja doch noch nicht so viel kann, außerdem habe ich in letzter Zeit auch echt wenig Zeit zum Programmieren...

Von Datenbanken habe ich noch keine Ahnung, auch wenn es mich interessiert habe ich mich aus zeitgründen, und aus mangel von einem guten Beispiel noch nicht damit beschäftigt.


Wie gesagt eine datei die ich als exe konvertiert habe(u.a. aus gründen der einfachheit da meine bekannten sich nicht so gut auskennen) gibt es auf meiner website(siehe signatur) zum download. Im großen und ganzen funktioniert alles!
Den Programmordner werde ich nicht öffentlich posten, aber wenn du dich hier anmeldest könnte ich ihn dir als pn senden, oder sonst per email...

mfg Fleckdalm


----------



## despikyxd (12. Apr 2011)

hmm das mit dem mal eben laden und testen kann ich hier grade voll knicken ... null chance
werde ich mir dann am sonntag mal die zeit nehmen und es ausprobieren

wegen zusendung der codes : am besten alles in ein großes archiv stecken *wir könnten ja mal eben JAR nehmen .. so aus witz an der tatsache* und das auf n one-klick-hoster uppen ...
e-mail würd ich dir dann per PN schicken und dir mir dann den link zum archiv ...


an was wir arbeiten :

das ganze ist eigentlich daraus entstanden das wir alle gerne browsergames spielen *also "normale" wie pennergame.de oder ogame.de* und auf die idee kamen : mensch ... lasst uns doch mal n eigenes schreiben

ja ... es gibt fertige games zum download *google > litotex* ... aber da ich der lead-programmer bin und nunmal mit java am besten kann haben wir uns dann vor gut 3 oder 3 1/2 jahren dazu entschlossen : so .. wir bauen uns jetzt unser eigenes game ... und zwar 100% in java

daraus folgten dann große pläneschmiedungen ... konzeptions-ideen ... suche nach bereits vorhandenem um von zu lernen ... wieder alles verwerfen und von vorne anfangen ... erste zeilen code ... mehr zeilen code ... dann irgendwann mal wie oben beschrieben die alpha-phase ... alles noch dierekt in der console ohne jeglichen sicherungs-maßnahmen ... noch keine speicherungen ... mehr zeilen code ... noch mehr alpha-testing ... dann mal die idee : hey lasst uns das ganze mal verschlüsseln ... noch mehr 100te zeilen code ... platten-crash des VCS ... neu-anfang bei null ... erste eigene sinnvolle protocolle ... erste graphische elemente um die kilometer-langen commandos nicht mehr von hand eingeben zu müssen ... mehr code ... erstes BETA-build > test auf ner LAN-party ... > FLOPP ... > noch mal neu anfang ... *das ganze wiederholte sich öfter* ... CODE ... irgendwann dann mal vor nem jahr ne halbwegs fertige spiel-logik ... mitlerweile feste dinge wie user und datenbank-system ... neues verschlüsselungs-system ... noch viel mehr CODE ... und dann so um silvester rum die ersten anfänge der graphic-entwicklung ...
und das ganze wird sich noch lange ziehen ... und glaub mir ... die sind nich alle so gut wie ich mitlerweile ...
unser graphicer zum bleistift kann GAR NICHT programmieren ... dafür ist er echt ein könner mit PhotoShop ... was der so in 10min zaubert ... alle achtung ...

wenns nach mir ginge würd ich dich erstmal ins planungs-team stecken ... da könnteste dir dann mal das aktuelle ankuggn ... deine eigenen ideen noch mit einbringen ... auch mal sagen was du nich so doll findest ...
dann vllt noch konzept-vorschläge und team-arbeit zur umsetzung derer ... na wir würden da schon was für dich finden =)

wie gesagt ... werd mir aber am sonntag dann erstmal dein projekt ankuggn ...


----------



## fleckdalm (12. Apr 2011)

Gut schreib mir einfach mal eine pn. Aber erwarte bitte nicht zu viel, das ist nämlich mein erstes größeres programm. Deshalb ist es extrem unübersichtlich und sicher auch unvorteilhaft pogrammirert
 Besonders da ich dabei auch sehr viel herumexperimentirt habe.  Es sind auch viele klassen usw. Enthalten die nicht mehr gebraucht werden usw. 
Aber tja jeder fängt mal klein an;-)

Es freut mich jedenfalls, das du es dir anschaust!

Um ehrlich zu sein würde mich euer projekt wirklich interessieren. Ich habe aber momentan wirklich nur sehr wenig zeit und bin eben auch noch nicht so gut im programmieren, weshalb ich wahrscheinlich keine große hilfe sein kann:-(

Mfg Fleckdalm


----------



## despikyxd (13. Apr 2011)

ach komm ... nur durch programmieren lernt man programmieren halt ... und auch die anderen haben schon zugestimmt und wollen dir helfen ...
und selbst wenn von dir nur wenig kommt ... immerhin haben wir dann ne meinung und n klugen kopf mehr ... und für dinge wie : "na das hier ist aber doof" sind wir offen da wir ja nicht einen haufen schortt publishen wollen ^^

und das klassen drin sind die nicht mehr verwendet werden ... mein gott ... kugg dir mal meinen JAVA-ordner an ... mehrere MB an datenmüll ... einiges davon wiederverwendet ... haufen code-duplizierung ... ist aber der beste fundus wenn ich mal was machen will und dann feststelle : hab ich schonmal ^^
ich hab sogar noch einige meiner ersten klassen *z.b. n TCP-sniffer* die ich immer noch verwende ... und natürlich auch immer noch dran rum bastel ...

das mit PN ... ach damn dann müsst ich mich erstmal reggn ... na mach ich schon i-wie ...


----------



## fleckdalm (18. Apr 2011)

Schreibst du mir jetzt eine pn?
Ich kann ja leider keinen Kontakt zu dir aufnehmen!
mfg Fleckdalm


----------

