PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten zwischen PHP und Java-Applet austauschen?



LogicalLimit
09.03.2006, 20:07
Heyho!
Ich habe nun schon einige Zeit gesucht, auch hier im Forum, aber bin leider nicht zu einer kompletten Lösung meines Problems gekommen
Also, ich habe ein Java-Applet, das beim Starten einen Datensatz einlesen und beim Beenden speichern muss.
Nun ist es löblicher Weise nicht möglich von einem Applett auf irgendwelche Festplatten zu zugreifen - das macht ja auch durchaus Sinn! Allerdings brauch ich die Speicher- und Ladefunktionen definitiv.
Darum dachte ich mir man könnte vielleicht in Java ein selbst geschriebenes PHP-script aufrufen, das einem die notwendigen Daten übergibt, da PHP ja zumindest auf den Serverspeicher bzw. auf MySQL-Datenbanken zugreifen kann.
Könnt ihr mir helfen eine kleine Funktion zu schrieben, die die Daten ausliest, die das php-script ausgibt und die zu speichernden Daten an ein anderes script, einfach über POST, übergibt?

Wär wirklich klasse, weil ich so langsam verzweifle :|

Vielen Dank im Vorraus für alle Denkanstöße und Vorschläge, Gruß,
Alex

chrisnolde
09.03.2006, 20:20
naja du könntest ja ne seite auf dem server einrichten und per applet die daten per post oder get an dieses skript schicken.

abholen genauso.

LogicalLimit
09.03.2006, 20:29
Hi!
Danke für die Antwort.
Ja, die Idee hatte ich ja auch schon, nur leider weiß ich nicht so ganz wie das dann im Applet auszusehen hat, sorry, wenn das im Post nicht klar geworden ist :brav:

Also das php-script wär für mich kein Problem, da wüsst ich wie das aussehen müsste, nur das Applet macht mir halt probleme :(

Gruß,
Alex

VuuRWerK
09.03.2006, 20:42
Java kann auch auf mysql Datenbanken zugreifen, nur muss ich grad passen wie genau das ging. Ich kann mich ja mal schlau machen und werd es hier mal posten.

Gut Schuß
VuuRWerK ;)

LogicalLimit
09.03.2006, 20:45
Ja, das geht wohl, aber da gibts ein Problem... da das Applet lokal beim User ausgeführt wird, kann jeder die class-dateien benutzen und manche schaffen es sogar an den Quelltext und somit auch an die Zugangsdaten für die Datenbank zu kommen.
Das wäre dann wieder nicht so vorteilhaft oder bin ich da falsch informiert?

Gruß,
Alex

chrisnolde
10.03.2006, 09:25
kannst ja nen extra benutzer erstellen der nur die benötigten rechte hat.

ansonsten eben doch mit der php kombo. wie man mit java ne url aufruft weist du?

VuuRWerK
10.03.2006, 09:41
Hmmm, die Zugangsdaten für die Datenbank im Applet speichern ist dann natürlich unvorteilhaft. Was gehen würde, wäre die Zugangsdaten auf Deiner Seite in einer extra config.inc zu speichern und dann mit dem Applet auf Deine Seite zuzugreifen und dann via Session Login auf Daten aus der Datenbank zugreifen lassen. Quasi das Applet fungiert dann nur noch als GUI für die Arbeit an der Datenbank. Der Nutzer müsste sich dann allerdings einloggen. Was aber aufgrund der Sicherheit sicherlich kein Beinbruch wäre.

Oder man ruft eben nur mit dem Applet eine URL auf über die Du dann Deine Daten mit PHP ausliest. Wäre die einfachste und schnellste Lösung :)

Gut Schuß
VuuRWerK ;)

LogicalLimit
10.03.2006, 12:52
wie man mit java ne url aufruft weist du?

Ne, eben nicht, das ist ja das Problem :D
Also bei einer extrem unschönen Programmiersprache, deren Namen ich hier lieber nicht in den Mund nehme ;), konnte man ganz einfach durch


variable = inet.openURL("www.seite.de")

den Quelltext der angegeben Seite in die variable einlesen und durch


inet.openURL("www.seite.de/?daten=blabla")

die Seite unbemerkt aufrufen, sodass der php-preprozessor die überlieferten daten einfach speichern konnte.

Genau soetwas bräuchte ich halt für Java.
Die Idee mit dem Login oder dem extra-benutzer nur für dieses Projekt halte ich zwar für möglich und sicher aber viel zu umständlich und aufwändig für das Projekt.


Gruß, Alex

chrisnolde
11.03.2006, 18:52
import java.net.*;
import java.io.*;
/**
*
* @author christian
*/
public class Quelltext {

private String quelltext;

/** Creates a new instance of Webseite */
public Quelltext(String str) {
try
{
URL url = new URL( str );

BufferedReader in = new BufferedReader( new InputStreamReader( url.openStream() ) );

String s;
String v ="";

while ( ( s = in.readLine() ) != null ) {
v += "\r\n"+ s;
}

in.close();
this.quelltext = v;
}
catch ( MalformedURLException e ) {
System.out.println( "MalformedURLException: " + e );
}
catch ( IOException e ) {
System.out.println( "IOException: " + e );
}
}

public String get_quelltext() {
return this.quelltext;
}
}


so ist zwar pädagogisch nicht toll, aber was solls.