JavaScript Javascript + mysql OHNE php

Osiris1

Lt. Junior Grade
Registriert
Feb. 2008
Beiträge
351
Hi

Folgendes Problem: Ich habe eine Funktion in javascript geschrieben und die liefert einen String.
Diesen String will ich in eine Datenbank schreiben. Javascript ist Client-seitig, also geht es damit schon einmal nicht. php wäre eine Lösung, kommt für mich aber nicht in Frage da sich php nicht mit tomcat verträgt.

Gibt es noch andere Varianten von Javascript auf eine Datenbank zuzugreifen als über php?

Danke
 
Mit Jquery und Corsside scripting :

HTML:
<script type="text/javascript" charset="utf-8">



var a1 = a;


var b1 = b;

var c1 = c;


var d1 = d;

var e1 = e;

jQuery.support.cors = true;

jQuery.ajax({
type: "GET",
url: "www.test.de/test.php?1="+a1+"&2="+b1+"&3="+c1+"&4="+d1+"&5="+e1+"",
success: function(transport) {
jQuery('#div_ergebnis_aus_php').html(transport);
},
error: function (XMLHttpRequest, textStatus, errorThrown) { 
alert(textStatus + " " + errorThrown);}
});

</script>

Den Transport kannst du weglassen.
Und nein ich wüsste nicht wie es anders geht.
 
Zuletzt bearbeitet:
Oh thx für die schnelle Antwort. Ich bin mir grad nicht sicher was das script tut. Greifst du da nicht wieder auf ein php file zu und übergibst die Parameter?
Wo ist die eigentliche SQL Query?
 
HTML:
var a1 = a;
 
 
var b1 = b;
 
var c1 = c;
 
 
var d1 = d;
 
var e1 = e;

Das sind die Variablen die an die URL weitergegeben werden.

In der PHP Datei werden dann diese aus der URL gelesen und können weiter verarbeitet werden:

test.php:

PHP:
<?php

$con = mysql_connect('localhost', 'jhkgh', 'kghkgh');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

$a=	mysql_real_escape_string ($_GET['1']);                                 
$b=   mysql_real_escape_string ($_GET['2']);
$c=   mysql_real_escape_string ($_GET['3']);
$d=   mysql_real_escape_string ($_GET['4']);
$e=   mysql_real_escape_string ($_GET['5']);

mysql_close($con);
die;
?>



so könntest du sie aus dem localStorage holen.

HTML:
var a1 = localStorage.getItem("a");


var b1 = localStorage.getItem("b");

var c1 = localStorage.getItem("c");


var d1 = localStorage.getItem("d");

var e1 = localStorage.getItem("e");

vorher muss du natürlich die gesetzt haben


HTML:
localStorage.setItem("a", ""DEIN INHALT"");
localStorage.setItem("b", ""DEIN INHALT"");
localStorage.setItem("c", ""DEIN INHALT"");
localStorage.setItem("d", ""DEIN INHALT"");
 
Zuletzt bearbeitet:
Hm ok. So etwas in der Art habe ich schon. Das Problem ist das ich auf dem Tomcat server kein php benutzen kann.
Oder wird diese Einschränkung mit der Ajax Konstruktion irgendwie umgangen?

EDIT: Ich könnte natürlich das php file auf einen anderen Server legen... Aber das würde ich gerne vermeiden.
 
Ohne php wirds leider nicht gehen.
Müsste eigendlich kein problem sein MYSQL/PHP auf einen Server zu bekommen.
 
Sollte es wirklich nicht gehen muss ich wohl kreativ werden was den Tomcat Server betrifft.
Thx jedenfalls.
 
Wenn du nur Tomcat nutzen kannst, dann machst du das ganze eben mit Java als Servlet. Wo ist das Problem?
 
Das Problem ist, dass ich eigentlich keine Ahnung von Webdesign habe, aber einen Online Javascript Mapeditor programmieren muss.
Das Java Servlet verwende ich nur für die Datenbankverbindung? Sollange ich damit eine variable aus dem Javascript speichern kann, werd ich mich wohl einmal damit auseinander setzen.
 
Naja, das ist eigentlich nichts was man mal so schnell nebenbei macht. Da sollte man sich schon etwas Hintergrundwissen aneignen.
Ich habe auf die Schnelle kein Tutorial gefunden mit dem ich wirklich zufrieden wäre, aber hier gibt es eins von Oracle an dem du zumindest grundsätzlich sehen kannst wie es gehen könnte.

Allerdings würde man es so nicht wirklich ernsthaft umsetzen. Um mal ein paar Beispiele zu nennen:
Die Verbindungsdaten zur Datenbank könnte man z.B. in einer Property Datei speichern anstatt im Quellcode des Servlets.
Außerdem sollte man das Query in einem Prepared Statement machen, da man sonst SQL Injection Angriffe ermöglicht.
 
Guck mal bei netbeans vorbei. Die JavaEE Variante hat auch ein paar nette Beispiele für Webservices und REST. Sogar Websockets (dann aber eher mit Glassfish statt tomcat) könnte man verwenden.

Diese REST-Schnittstellen kannst du dann mit jQuery vom client aus ansprechen.
 
Osiris1 schrieb:
Das Problem ist, dass ich eigentlich keine Ahnung von Webdesign habe, aber einen Online Javascript Mapeditor programmieren muss.
Dann soll sich die Person, die dir hier den Tomcat vorsetzt, sich darum kümmern, dass du für dein Frontend auch ein Backend hast. Nennt sich Arbeitsteilung.

Das Java Servlet verwende ich nur für die Datenbankverbindung? Sollange ich damit eine variable aus dem Javascript speichern kann, werd ich mich wohl einmal damit auseinander setzen.
Es geht doch nix über "mal schnell zusammengeschustert".
Der nächste Post geht dann über: "Hilfe, der Server meines Auftraggebers wurde gehackt...."
 
Danke. Is eine etwas längere Geschichte. Mit Arbeitsteilung wird das so einfach nix.
Ich werd mich wohl an das hier halten: https://isomorphic.atlassian.net/wiki/display/Main/DMI.call+(JavaScript)+to+Java+servlet
Mit einem modifiziertem Code im Servlet.

Wenn ichs mal schaffe den String an das Servlet zu übergeben, dann kümmere ich mich um Security. (In Java sollte ich das hinkriegen...)

Die Seite basiert insgesamt auf JavaBeans. Aber bis jetzt habe ich keine Möglichkeit gefunden Javascript und die Bean dazu zu bringen mit einander zu reden.
 
Das Prinzip ist doch in allen Sprachen dasselbe: Du sendest clientseitig einen Request (in dem Falle empfiehlt sich POST) an eine URL (evtl. noch mit GET-Parametern) und serverseitig löst dieser Request eine Kette von Ereignissen aus:
- Plausibilitätsprüfung
- Prüfen der Berechtigungen
- Ausführen der erwünschten Aktion
- Rückgabe des Antwort-Codes (also mindestens ne 200)
 
mixn_mojo schrieb:
Ich schmeiß einfach mal noch node.js in den Raum[...].

Hihi und dann node.js als Gateway nutzen, um damit auf die REST-Schnittstellen der Java-Anwendung, die auf dem Tomcat läuft, zu kommunizieren ;-)
 
Nicht wirklich. Direkte Datenbankzugriffe sind nur vom Server aus möglich, denn alles andere wäre eine Sicherheitslücke sonder Gleichen. Ob auf dem Server jetzt Node.js, PHP, n Java Servlet oder sonstwas eine Schnittstelle bereitstellt ist dabei vollkommen egal.
Und mal ehrlich: Wenn bereits n Tomcat läuft, dann fang ich doch nicht erst an mit Node.js rumzufuchteln. Vollkommen ineffizient.
 
Ok habs jetzt mit einem Servlet hingekriegt. Danke an alle ;)
 
Zurück
Oben