# Datenbank mit html und Javascript verbinden



## Sonic51 (22. November 2010)

hallo zusammen.

Ich muss als Projekt einen Eventmanager programmieren.
Dabei benutze ich Tomcat 7 als server und phpmyadmin als Datenbank.
Ich habe bis jetzt die ganze View fertig und die Datenbank.
Die Seiten kann ich schon über den localhost ausführen.
Jedoch sind die ganzen "Funktionen" noch ohne Funktion^^ ...sprich wenn ich auf einen knopf drücke( zB "Event hinzufügen") passier nichts.

Als erstes würde ich gerne die Registrierung erstellen. Die Startseite dafür ist schon fertig samt eingabefelder etc. Ein Regisrtieren-button ist auch schon vorhanden.
Nun soll er mir den Benutzernamen kontrollieren, ob dieser schon vorhanden ist und die 2 eingegeben PWs auf gleichheit kontrollieren.
Ist der Name noch nicht vorhanden und die Passwörter gleich, soll er diese in die Datenbank schreiben und mich zur nächsten Seite weiter leiten.

Im I-Net hab ich leider nix gefunden, was mir wirklich weiter hilft. Hab mich in den GANZEN themen(html, phpmyadmin) erst neu eingelesen, weil ich bis jetzt NULL erfahrung mit hab...also kann mir vllt hier jmd helfen???
Was ich bis jetzt weiß, ist, dass ich es mit Java-script machen muss?!

DANKE schon mal an alle die mir weiter helfen!!!


----------



## kühlprofi (22. November 2010)

Du musst das mit php machen. Mit javascript kannst du das glaube ich vergessen.

Wenn du ein registrierformular machen willst dann mach dies in html und php. mit dem html Formular kannst du die daten per php in deine mysqldatenbank schreiben. das Pw würde ich md5 verschlüsseln. für einen Bereich auf der Webseite welcher nur für registrierte und eingeloggte Benutzer sichtbar ist solltest du dir mal ein paar tutorials anschauen wie das mit den sessions funktioniert. Bin auch nur ein Laie, wüsste aber in etwa wie ich diese Aufgabe angehen würde.. 

Schau dir einmal ein paar scripts und tutorials an un lese dich ein unter folgenden Suchergebnissen, bin mir sicher da findest du alles was du brauchst und das erst noch recht gut beschrieben! 
PHP/MySQL:

Google


Login script mit Sessions php: Google


PHP Md5 verschlüsseln:
Google


Hoffe konnte dich ein bisschen in die richtige Richtung lenken...


Gruss Kühlprofi


----------



## bingo88 (22. November 2010)

Tomcat ist ein Java Application Server - hierbei geht es um das echte Java, nicht JavaScript. JavaScript hat nichts mit Java zu tun!

Wenn du den Java-Ansatz weiter verfolgen willst und nicht auf PHP umsteigen möchstest, musst du dich ein wenig über Java-Servlets, JSP und Konsorten informieren. Ebenso über Mysql + Java / Servlets.


----------



## Jared566 (22. November 2010)

Also:

Ich denke es wird mit Javascript alleine nicht Funktionieren und wäre auch zu unsicher. Ich bin mir nicht zu 100% sicher, aber ich meine Javascript ist eine Sprache, die die direkt im Browser ausgeführt wird. Sprich, deine ganzen funktionen werden erst an den Client PC gesendet und dort dann ausgeführt. So kann man sich auch die MySQL Verbindungsdaten anschauen, die du ja eintragen musst um eine Verbindung zum Server zu bekommen. Somit hätte jeder dein Passwort zu der Datenbank 

Les dich mal in PHP ein. PHP ist eine Serverseitige Sprache, die also nicht im Browser, sondern auf dem Server direkt ausgeführt wird.

Ein einfaches Tut ist hierfür PHP-Einfach.de - PHP lernen leicht gemacht dort steht auch wie du zu einer Datenbank eine Verbindung aufbaust, Daten hineinschreibst und Daten ausliest.

Zudem noch: Tomcat ist nicht der passende Server für deine Zwecke, da dieser für JAVA entwicklung gedacht ist. Apache2 wäre die besser Wahl.
Phpmyadmin ist auch keine Datenbank, sondern nur eine Verwaltungsoberfläche. Die Datenbank nennt sich MySQL.

Das ganze gibt es schon im Packet (Apache2 Webserver mit PHP + MySQL Datenbank). Google mal nach "xampp". Dort hast du auch eine schöne oberfläche mit der du den Apache + Mysql Server starten und stoppen kannst. Produktiv sollte xampp jedoch NICHT eingesetzt werden, da es nur für die entwicklung gedacht ist.

HTML ist auch nur eine "Formatierungssprache" mit der du Texte formatieren kannst. 

Hier nochmal eine kleine Liste mit dingen die du dafür können solltest:
- PHP
- MySQL Abfragen
- HTML
(- Javascript)

Ich habe Javascript bewusst in Klammern geschrieben, da du es nicht zwingent brauchst.

Ich hoffe ich konnte dir ein wenig weiterhelfen 

Mit freundlichen Grüßen

Jared


----------



## Sonic51 (22. November 2010)

Also erst mal danke schon mal für die schnellen Antworten( hab mir aber noch net die Links angeguckt)

Es sieht in dem Porjekt wie folgt aus:

Ich starte XAMPP.
Mit notepad++ hab ich die ganzen Websites geschrieben(Layout etc) und diese als .jsp-Dateien gespeichert. Diese sind in dem dafür gedachten Tomcat7-Ordner (müssen tomcat benutzen).
Die Datenbank ist in MySQL und aufgerufen wird sie über 
"http://localhost:8080/phpmyadmin/..."
Dort finde ich den "Aufbau" meiner Datenbank zB;
User:
 -UserName
 -UserPasswort
 -UserID

Event:
 -Period
 -StartTime
 -EndTime
und und und...

Java-Script und AJAX sollen dabei verwendet werden.

Also wenn ich im Browser meine Seite zB "Registrieren" offen habe und mich Registrieren will, soll er die eingegebenen Daten in der Datenbank prüfen und falls noch nicht Vorhanden(UserName) neu reinschreiben und das dazu gehörige PW.
Beim Login soll er den eingegebenen Usernamen kontrollieren und das dazugehörige PW.
Ist der User vorhanden und das PW korrekt soll er mich auf eine andere Seite weiterleiten.
Ist User vorhanden, aber PW falsch soll eine Meldung ausgegeben werden.
Das selbe, wenn der User nicht vorhanden ist.

Muss ich die Funktionen dafür in die .jsp-Datei schreiben oder in das Java-Script?

PS: mit eclipse wird auch noch gearbeitet!


----------



## bingo88 (22. November 2010)

Wenn jsp vorkommen soll, dann ist das schon mal kein PHP mehr. Da musst du mit echtem Java Code ran. Die Zauberworte für Google lauten da etwa JSP, MySQL und JDBC.


----------



## Sonic51 (22. November 2010)

JDBC? davon wurde uns gar nix gesagt...
EDIT: ok hab jetzt ma nachgeguckt was JDBC ist...ist der treiber den wir ohne hin schon benutzt haben...


warum ich dachte, dass php benutzt werden soll, ist wegen dem phpmyadmin. Wie gesagt bin total neu in diesem bereich der IT-Welt.

@Kühlprofi: danke für die Links, wären bestimmt sehr nützlich, wenn ich doch mit php programmieren müsste.

@All: bin jetzt schon so weit, dass er den eingegebenen namen im Benutzerfeld einließt und mir wieder auf dem bildschirm ausgibt(zu testzwecken). Jetzt muss ich den Namen nur noch mit der DB abgleichen ob dieser schon vorhanden ist und wenn nicht, dann soll er ihn neu anlegen samt PW. 
Wo schreib ich diese Funktion rein? In die jsp-datei mit ajax oder in eine servlet mit java-script?


----------



## Sonic51 (23. November 2010)

sry für doppelpost aber habe jetzt folgende sache:

```
// Events in die Datenbank hinzufügen
    public boolean addEvent(String StartEvent, String EndEvent, String Title,
            String Description, String Location, String Period, String Person) {
        ConnectDB();
        String command = "INSERT INTO event VALUES (0,'" + StartEvent + "', '"
                + EndEvent + "', '" + Title + "', '" + Description + "', '"
                + Location + "', " + getPersonID(Person) + ", "
                + getPeriodID(Period) + ")";
        try {
            stmt.executeUpdate(command);
            CloseConnectionDB();
            return true;
        } catch (SQLException e) { 
            e.printStackTrace();
            CloseConnectionDB();
            return false;
        }
    }
```
und mein servlet ist folgender:


```
public class Connector extends HttpServlet {

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        getServletContext().getRequestDispatcher(
                "/WEB-INF/pages/Startseite.jsp").forward(request, response);
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        String username = null;
        PrintWriter out = response.getWriter();
        username = request.getParameter("username");
        out.println("Neuer User angelegt: " + username);
    
    EventList event = new EventList();
    event.ConnectDB();
                                               //was muss hier jetzt folgen, damit er
                                               mir was aus der seite in die Datnbank
                                               schreibt?
    }
}
```
Hier ein Screenshot von der Seite. Vllt hilft sie ein wenig...

*bild zu breit*


----------



## King_Sony (26. November 2010)

Gar nix.
Das ist murx. Was du machen kannst ist mit JS die Daten an Php übergeben, wobei das in deinem Fall auch nichts wäre. Und über die Sicherheit brauchen wir dann gar nicht reden.

LG Sony


----------



## zcei (26. November 2010)

Mit JavaScript und MySql zu arbeiten ist schwachsinn meiner Meinung nach.
Solange du kein Ajax nutzt reichen einfachstes PHP gepaart mit HTML...

JS ist mMn auch viel zu "komplex" für DB Querys. PHP erledigt das viel einfacher.


----------



## Sonic51 (26. November 2010)

also habe das jetzt hinbekommen, dass er mir sachen in die datenbank rein schreibt und auch ausließt...habe in die jsp-datei eine ajax-function die durch ein servlet aufgerufen wird und das servlet macht den rest...funktioniert bis jetzt ganz gut.
...und zum thmea sicherheit:
die muss es noch nicht geben, da dies nur zu "übungszwecken" ist, um und in die jeweiligen thmen einzuarbeiten!


----------



## zcei (27. November 2010)

wenn du dich in das Thema "Datenbank" einarbeiten willst, dann nimm trotzdem PHP/Perl/Python und MySQL/PostgreSql...
Es bringt dir ja ncihts dich mit Funktionen zu beschäftigen die nicht benötigt werden später


----------



## Sonic51 (29. November 2010)

...wie gesagt, müssen uns in Java-skript, ajax, html und css einlesen...
Bin ja schon so weit, dass ich neue user registrieren kann, sammt pw abfrage und User-ID generierung...
Jetzt muss ich nur noch den Login vernünftig hinbekommen, dann hab ich schon den größten teil fertig...


----------

