Cindy: Mit Onlick Daten in Mysql schreiben

Hallo,

ist es möglich, mit JS onclick einen Datensatz in eine MySql-DB zu schreiben? Bei meiner Suche werde ich nicht richtig fündig. Vielleicht hat das ja schon mal jemand gemacht oder kennt ein gutes Tutorial.

Vielen Dank!

  1. Tach!

    ist es möglich, mit JS onclick einen Datensatz in eine MySql-DB zu schreiben?

    Ob onclick oder nicht, ist nicht die Frage, sondern ob Javascript generell in der Lage ist, mit MySQL Verbindung aufzunehmen. Und da ist nicht der Fall. Javascript kann wie im Browser üblich nur Requests an Webserver absetzen. Das heißt, FTP und so'n Zeugs ist auch noch dabei, aber MySQL eben nicht, falls nicht irgendwer ein Plugin geschrieben hat. Doch dann ist noch die Frage, ob der MySQL-Server direkt über Internet erreichbar ist, was oftmals nicht der Fall und nicht nötig ist.

    Die übliche Lösung jedenfalls ist, dass auf dem Webserver ein Script wartet, das die Daten über einen ganz normalen HTTP(S)-Request entgegennimmt und mit dem MySQL-Server verhandelt.

    dedlfix.

    1. Hallo,

      vielen Dank für Eure Antworten!

      Bitte versteht mich nicht falsch und wertet meine Aussagen nicht als Kritik; für mich ist das bisherige mitunter schwierig zu verstehen.

      Dass man hier mit "Profis" zu tun hat und entsprechend qualitative Aussagen erhält, ist super. Ich persönlich mache das als Hobby und mache die von mir betriebene Seite ehrenamtlich für einen (nicht kommerziell ausgerichteten) Verein. Dementsprechend habe ich auch nur ein knappes Zeitbudget.

      Wenn dementsprechend meine Formulierung auch nicht ganz richtig war, dann ist das Unwissenheit.

      Schlussendlich würde ich mich freuen, ob Ihr mir sagen könnt, ob ich mit einem Klick auf einen Link (und dafür hielt ich JS onclick für geeignet - so meine Vermutung) einen Eintrag in eine Datenbank (MySQL ist die einzige, die ich kenne) hinzufügen kann und wenn ja, wie und womit und ob es eine Anleitung gibt.

      Ich komme gerne immer selbst zur Lösung und ich finde es recht unverschämt zu sagen "macht mal und ich kopier's mir dann", das lehne ich auch ab. Da ich aber, wie gesagt, nicht die Zeit habe, mich intensiv einzulesen, freue ich mich immer, wenn ich relativ passende und fertige Lösungen im Netz finde. Das war in diesem Fall eben nicht der Fall, sodass ich auf Tipps oder gute Links hoffe.

      Ich hoffe ich habe das möglichst gut dargestellt, um so gut wie keine Angriffsfläche zu bieten. Ich danke Euch!

      1. Tach!

        Schlussendlich würde ich mich freuen, ob Ihr mir sagen könnt, ob ich mit einem Klick auf einen Link (und dafür hielt ich JS onclick für geeignet - so meine Vermutung) einen Eintrag in eine Datenbank (MySQL ist die einzige, die ich kenne) hinzufügen kann und wenn ja, wie und womit und ob es eine Anleitung gibt.

        Beschreib doch erst mal, was du überhaupt erreichen willst, ohne irgendwelche Mittel zu nennen, die du vielleicht als brauchbar ansiehst. Mitunter gibt es für ein Vorhaben eine ganz andere und bessere Lösung, aber dazu muss man es im Ganzen betrachten und nicht nur das Ende der Sackgasse, in der der Probleminhaber vielleicht gerade steht.

        Daten, die ein Besucher in seinem Browser eingibt oder die auf andere Weise dort entstehen, müssen zunächst zu einem Werbserver gelangen. Der kann dann zum Beispiel einen Eintrag in einem MySQL-Server erstellen. Dazu ist aber ein serverseitiges Programm notwendig. Oft kommt dabei ein in PHP geschriebenes Script zur Anwendung. Die Grundlagen von PHP werden in vielen Tutorials vorgestellt, auch wie man mit einer Datenbank kommuniziert. Wenn du irgendwas anderes auf deinem Webserver laufen hast, nenn das bitte, wenn du gar keine Scripte laufen lassen kannst, fehlen für die Realisierung deines Vorhabens die Voraussetzungen.

        dedlfix.

        1. Danke - ich habe das hier gefunden: http://www.technabled.com/2009/02/reddit-style-voting-with-php-mysql-and.html, das teste ich mal aus. Das ist so ungefähr das, was ich benötige.

          Dennoch nochmals vielen Dank, vielleich treten ja Fragen auf, dann melde ich mich noch mal.

          1. Tach!

            Danke - ich habe das hier gefunden: http://www.technabled.com/2009/02/reddit-style-voting-with-php-mysql-and.html, das teste ich mal aus. Das ist so ungefähr das, was ich benötige.

            Das ist aber sicherheitstechnisch defekt. Da steht zwar oben und unten ein Hinweis "If you are looking for a more secure ... solution ...", doch den Aufwand für den Hinweis hätte der Autor ruhig in das Script stecken können, viel mehr braucht es nicht, um es sicher zu bekommen. Alle Ausgaben in Richtung HTML sollen htmlspecialchars() verwenden.

            Statt

            echo $foo;

            müsste

            echo htmlspecialchars($foo, ENT_QUOTES);

            verwendet werden. Das ENT_QUOTES könnte man sich sparen, wenn der Autor die HTML-Attributwerte in "" statt '' eingefasst hätte.

            Außerdem sollten die SQL-Statements, die auf

            "... WHERE id = $id";

            enden, besser auf

            "... WHERE id = " + intval($id);

            enden. Sonst übergibt irgendwer 0 OR 1 als ID und alle Zähler werden zurückgesetzt.

            dedlfix.

            1. Danke, nach meinem Test hat sich auch herausgestellt, dass es das nicht ist was ich brauche.

              Ich "ziehe" mir meine Daten aus der Datenbank in eine Php-Datei. Ich möchte erreichen, dass ich in dieser Php-Datei einen Link anklicke und dieser in eine separate Datenbanktabelle geschrieben wird. Wie ein Warenkorb.

              Und wenn der Link im "Warenkorb" liegt, also in der Datenbanktabelle eingefügt ist, soll dies in der Php-Datei "registriert" werden. D.h. auf deutsch für Nicht-Programmierer if { Link ist in der Datenbanktabelle } { echo 'Der Link wird in einer anderen Farbe dargestellt' };

              1. Tach!

                Ich "ziehe" mir meine Daten aus der Datenbank in eine Php-Datei. Ich möchte erreichen, dass ich in dieser Php-Datei einen Link anklicke und dieser in eine separate Datenbanktabelle geschrieben wird. Wie ein Warenkorb.

                Ein Link verlinkt irgendwohin. Das heißt, beim Klick wird irgendeine Ressource aufgerufen. Wenn allerdings nichts anderes aufgerufen werden soll, musst du entweder die Funktionalität des Linkens entfernen und stattdessen einen Ajax-Request starten, oder du nimmst ein anderes nicht linkendes Element und reagierst auf dessen onclick. Wenn der Link linken soll, kannst du ebenfalls einen Ajax-Request starten, der aber vollständig abgearbeitet werden muss, bevor du den Browser weiterziehen lässt. Oder aber, das Ziel ist eines deiner Scripts, dann kann auch da drin das Schreiben in die MySQL-Tabelle angestoßen werden.

                Was auch immer verwendet werden kann, der Ajax-Request muss einen Parameter mit der zu speichernden URL an das aufzurufende Script weitergeben, ein Script als direktes Ziel sollte selbst wissen, unter welcher URL es läuft.

                Und wenn der Link im "Warenkorb" liegt, also in der Datenbanktabelle eingefügt ist, soll dies in der Php-Datei "registriert" werden. D.h. auf deutsch für Nicht-Programmierer if { Link ist in der Datenbanktabelle } { echo 'Der Link wird in einer anderen Farbe dargestellt' };

                Diese Datenabfrage ist eine der leichtesten Übungen an der Lösung.

                dedlfix.

  2. Hi,

    Nein.
    Javascript wird clientseitig ausgeführt (mit wenigen Ausnahmen).

    Du kannst aber mit Javascript einen Ajax-Request absenden der ein Skript am Server aufruft.
    In diesem Skript kannst du dann auf die DB zugreifen.

    ~dave