# String an PHP Script aus Java übergeben



## MBD (1. Jul 2011)

Hallo!!

Ich hoffe mir kann jetzt irgendwer weiterhelfen.... Also:

Ich habe ein Java Projekt von dem aus ich per Http Connection ein PHP-Script auf einem Webserver anspreche. Von dort aus frage ich eine MySQL-Datenbank ab. Das klappt auch alles wunderbar. Jetzt wollte ich aber ein bisschen umstellen. Und zwar will ich komplette SQL-Queries vom Java-Code an PHP übergeben. Das funktioniert auch wunderbar bis ich ein Query mit Hochkommata hab.
z.B.
"select * from db.tabelle"
"select * from db.tabelle where id=1"
diese beiden klappen einwandfrei

"select * from db.tabelle where username='name'"
klappt nicht, weil es ein problem mit den hochkommata gibt. Ich weiß auch nicht, ob der string überhaupt komplett beim PHP ankommt oder ob nicht.

Wäre echt nett, wenn jemand helfen könnte 

Grüßles


----------



## Gast2 (1. Jul 2011)

Wie übergibst du den String? per GET?
Dann musst du den zuerst encoden. Auf PHP Seite dann nen 
	
	
	
	





```
urldecode
```
 und dann sollte das auch mit dem hochkomma klappen.


----------



## Empire Phoenix (1. Jul 2011)

Ist auch wenn die php öffentlich zugängig ist super gefährlich sicherheitstechnisch.

Ansonsten kommt dann schon die frage auf wenn da php script die querys nur durchreicht, warum nciht gleich von ajva uafe db connecten?


----------



## MBD (1. Jul 2011)

blöde frage: wie codiere ich den in java??


----------



## Gast2 (1. Jul 2011)

java urlencode - Google-Suche
Erster Link.


----------



## MBD (1. Jul 2011)

Sicherheit ist mir im Moment egal. Notfalls wäre auch meine erste Lösung in Ordnung. Aber wenn ich die Queries erst im PHP zusammenfüge, muss man später, ggfalls es wird weiter an dem Projekt entwickelt, an zwei Dingen herumschreiben. Übergebe ich das Query im Javateil brauche ich nur ein ganz kurzes PHP-Skript.... zu meiner Verteidigung: mein Prof hat danach gefragt 

Danke!!!


----------



## r.w. (1. Jul 2011)

MBD hat gesagt.:


> Sicherheit ist mir im Moment egal. Notfalls wäre auch meine erste Lösung in Ordnung. Aber wenn ich die Queries erst im PHP zusammenfüge, muss man später, ggfalls es wird weiter an dem Projekt entwickelt, an zwei Dingen herumschreiben. Übergebe ich das Query im Javateil brauche ich nur ein ganz kurzes PHP-Skript.... zu meiner Verteidigung: mein Prof hat danach gefragt
> 
> Danke!!!



Ich würde im PHP-Teil mit PreparedStatements arbeiten und diese vom Java-Teil aus nur mit
den Parametern füttern. So hättest Du gleich den Sicherheitsaspekt verbessert. 

Für unterschiedliche Abfragen müsstest Du halt mehrere PreparedStatements vorhalten. 
Mit einem separaten Parameter könntest Du dann vom Java-Teil aus vorgeben, welches
Statement Verwendung finden soll.

VG ROlf


----------



## MBD (1. Jul 2011)

Hat sich erledigt. einfach ganz normal den string in java zusammensetzen und im PHP was einfügen. Und zwar:

$query = ($_POST['query']);
$query = nl2br($query);
$query = stripslashes($query);

also das übergebene query noch n bisschen umformen.... dann läufts.

Grüße...




Ps.: eig. hats mal wieder mein freund gelöst.... meint er


----------



## Empire Phoenix (2. Jul 2011)

Trotzdem warum connectest du von java aus nicht direkt auf die db? Das sparrt sowohl den php krams der ja eh nur noch datendurchreicht als auch zwei baustellen.


----------



## Gast2 (2. Jul 2011)

Wenn das Javaprogramm nen Client ist, der auf ne DB Connecten soll die sich mehrere Clients teilen dann sollte das Programm keinen direkten Zugriff auf die DB haben.


----------



## Empire Phoenix (2. Jul 2011)

Hat es letztendlich bei seiner Lösung aber sowieso schon nur mit einem Stück php dazwischen wovon ich den nutzen nicht so richtig erkenne.


----------



## Gast2 (2. Jul 2011)

Ja klar, wenn er das komplette Query übergibt dann ist die Lösung genauso wenig gut, aber das wurd ja schon geschrieben.


----------



## MBD (3. Jul 2011)

Ich verbinde nicht per JDBC mit der Datenbank, weil ich eine Android App entwickle, und da der Zugriff über JDBC nicht möglich ist.


----------

