HTML/CSS/JavaScript auf den Linux-Server laufen lassen!

thor_norsk

Bekanntes Mitglied
Guten Abend, ich habe Apache, MYSQL, PHP auf alten Rechner installiert, es soll als Server dienen!
Wenn ich mein Online-Shop zum lernen in HTML/CSS/JavaScript programmiere und in dem Verzeichnis /var/www/html ablege funktioniert der Online-Shop ?
Also: Ich habe folgendes Problem: Ich möchte, nach der Bestellung einsehen wer bestellt hat, Zahlungsinformation, usw. Wenn jemand erklären könnte wäre super. Ich möchte meine Webseiten auf meinen Server haben. Ich habe mit HTML / CSS versucht, so ähnlich wie Blog. Tut mir leid dass ich so viel schreibe, aber möchte verstehen was ich tue! Nach dem ich Apache/Maysql/ Php installiert habe, laut Internet Recherchen haben die in dem /var/www/ index.php angelegt.
Ich denke man muss z.B. style.css & main.js in index.php einbinden und später die Daten in Mysql(grafische Oberfläche) aus dem Datenbank ablesen ???

Ich würde mich über einfache Lösung bzw. einfache Erklärung sehr freuen! Vielen Dank!
 

KonradN

Super-Moderator
Mitarbeiter
Hier ist die Frage doch einfach: Was genau willst Du erreichen? Was hast Du da überhaupt gebaut?

Eine ganz triviale Webseite kann rein aus PHP Code bestehen. Du hast z.B. eine index.php und wenn der Client diese aufruft, dann arbeitet der Server den PHP Code ab und schickt an den Client den HTML Code um die Seite aufzubauen.
Das HTML kann dann noch etwas ergänzt werden mit CSS oder JavaScript. Dabei ist egal, ob dies im HTML durch die PHP Seite mit ausgeliefert wird, oder ob es eigenständige Dateien sind.

Wenn man es ganz einfach gestaltet, dann sind Aktionen Seitenwechsel. Der Nutzer drückt einen Knopf oder so und schon geht wieder ein Request an den Server und es wird - ähnlich wie bei dem index.php - wieder eine ganz neue Seite aufgebaut. Das ist dann eine ganz triviale Sache aber du hast halt immer komplette Seitenaufbauten ... es muss immer alles geladen werden ...

Daher wird oft nur ein Teil geladen. Per JavaScript kannst Du Web-Aufrufe machen und das Ergebnis direkt verarbeiten. Das kann dann z.B. ein Seitenteil sein, der komplett ersetzt wird. Spricht statt einer Seite kommen nur paar Daten und das JavaScript schreibt diese dann in den vorhandenen Seitenaufbau im Browser.

Oder - was noch einen Schritt weiter geht: Es werden nur noch Daten übermittelt, die dann erst von der Webanwendung im Client ausgewertet werden. Hier hat man dann Webservices. REST Webservices sind heutzutage weit verbreitet. Du hast dann auf der Seite z.B. nur eine Tabelle und die Info: Die Daten beziehst Du von der und der URL. (Da gibt es dann auch oft fertige Frameworks, die das machen. Ich habe da mal eine Tabelle lizensiert für wenige Euro, die Daten per REST geholt hat und viel Funktionen hatte wie diverse Sortierungen und Filterungen ... (Das war aber vor meinem Umstieg auf React / MUI)

Das geht dann so weit, dass Du am Ende nur eine einzige Seite hast, welche dann den Inhalt ganz dynamisch erzeugt und anzeigt. Das wäre dann auch das, was man so bei Angular oder React Anwendungen findet.

Generell ist aber der Zugriff auf der Datenbank im Server-Code. Sprich: Du lädst Daten in dem php code und bereitest diese dann so auf, wie Du diese brauchst. Also z.B. baust Du eine ganze Seite, einen Seitenteil oder übermittelst die reinen Daten in einem Format, wie es der Webbrowser gerade erwartet (also z.B. als JSON).

Das wäre so eine allgemeine Übersicht. Konkrete Hilfe kann man Dir geben, wenn du uns mehr Details mitteilst. Was willst Du wie bauen?
 

M.L.

Top Contributor
Neben programmiertechnischen Aspekten sollte man auch Sicherheitsaspekte, Backups, Zugriffsrechte,... beachten. Z.B. könnte (und sollte) man die Zugriffsdaten für die DB in eine separate Datei auslagern // genauer definieren, wer wann wie (ändernd) auf die DB zugreifen darf // Backups ausserhalb des (alten) Servers lagern (und dabei die (DB-)Zugriffsrechte nicht im Klartext offerieren) ...
 

Dukel

Top Contributor
Besteht dein Online Shop jetzt aus HTML/JS und CSS oder ist dieser in PHP geschrieben?

Fange Schritt für Schritt an.
  • Linux mit installiertem Webserver -> wird die Standardseite von einem anderen Rechner angezeigt oder gibt es hier schon Fehler?
  • Lege eine eigene Testseite (HTML) ins richtige Verzeichnis (/var/www/html/ ist es bei RedHat, andere Distributionen haben evtl. andere Standardpfade). Wird diese Testseite angezeigt?
  • Dann Php. Installiere und konfiguriere Php. Lege eine Test Php Seite (z.B. mit Funktion phpinfo()) an. Wird dies korrekt angezeigt?
  • Dann die DB. Installiere diese. Kannst du mit einem Client (auf dem Server selbst oder evtl. Remote (Achtung! für die Produktion möchte man dies nicht so haben)) auf die Datenbank zugreifen?

Erst dann (!) kannst du dir Gedanken über dein Online Shop machen.
 

Oneixee5

Top Contributor
Der Ordner /var/www/html ist der Standard-Speicherort für Webseiten, wenn du Apache verwendest. Allerdings ist dieser Ordner in der Regel nur mit privilegierten Benutzerrechten zugänglich, da er eine zentrale Rolle im System einnimmt. Ein Systemadministrator kann die Dateiberechtigungen jedoch so anpassen, dass dein Entwickler-Benutzer oder deine Gruppe Schreibrechte erhält.

Wenn du mehrere Webseiten hosten möchtest, ist der Einsatz von Virtual Hosts die gängige Methode. Ein Virtual Host ermöglicht es dir, für jede Webseite einen eigenen DocumentRoot festzulegen, der nicht auf den Standardpfad /var/www/html zeigen muss. Detaillierte Informationen und Konfigurationsbeispiele findest du in der offiziellen Apache-Dokumentation.

Das Internet bietet unzählige einfache Tutorials und Beispiele für den Einstieg. Achte dabei aber darauf, dass die Quellen nicht zu alt sind. Das heutige PHP unterscheidet sich stark von früheren Versionen. In modernen Entwicklungsumgebungen wird fast ausschließlich mit Frameworks gearbeitet. Diese beschleunigen die Entwicklung und machen sie sicherer, erfordern aber auch eine steilere Lernkurve, da sie eine bestimmte Struktur und Herangehensweise vorgeben.
 

Oneixee5

Top Contributor
style.css & main.js in index.php
Das geht so: Erstelle alle 3 Dateien in /var/www/html
Bash:
/var/www/html/
├── index.php
├── style.css
├── script.js


PHP:
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Einfaches PHP-Beispiel</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>

    <h1>Hallo Welt!</h1>

    <?php
        // Ein einfaches PHP-Statement
        echo "<p>Dies ist ein Absatz, der von PHP generiert wurde.</p>";
    ?>

    <p id="meinAbsatz">Dieser Text wird später mit JavaScript geändert.</p>

    <script src="script.js"></script>

</body>
</html>

CSS:
body {
    font-family: Arial, sans-serif;
    background-color: #f0f0f0;
    color: #333;
    text-align: center;
    padding-top: 50px;
}

h1 {
    color: #007bff;
}

p {
    font-size: 18px;
    margin: 10px 0;
}

Javascript:
// Warte, bis das gesamte HTML-Dokument geladen ist
document.addEventListener('DOMContentLoaded', (event) => {
    // Finde das HTML-Element mit der ID "meinAbsatz"
    const absatz = document.getElementById('meinAbsatz');

    // Ändere den Textinhalt dieses Elements
    if (absatz) {
        absatz.textContent = "Der Text wurde erfolgreich mit JavaScript geändert!";
        absatz.style.color = "green";
    }
});
 

Oneixee5

Top Contributor
Also: Ich habe folgendes Problem: Ich möchte, nach der Bestellung einsehen wer bestellt hat, Zahlungsinformation, usw. Wenn jemand erklären könnte wäre super.
Dazu auch ein kleines Beispiel - aber beachte - das ist nur ein kleines Übungsbeispiel. Das ist weder sehr sicher, noch ist es sinnvoll große Anwendungen so zu bauen:

SQL:
CREATE TABLE benutzer (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL
);

PHP:
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>PHP & MySQL Beispiel</title>
</head>
<body>

    <?php
    // Datenbankverbindungsparameter
    $servername = "localhost";
    $username = "dein_benutzername";
    $password = "dein_passwort";
    $dbname = "deine_datenbank";

    // Datenbankverbindung herstellen
    $conn = new mysqli($servername, $username, $password, $dbname);

    // Verbindung prüfen
    if ($conn->connect_error) {
        die("Verbindung fehlgeschlagen: " . $conn->connect_error);
    }
    ?>

    <h1>Benutzerverwaltung</h1>

    <form action="index.php" method="post">
        <label for="name">Neuer Benutzer:</label>
        <input type="text" id="name" name="name" required>
        <button type="submit">Hinzufügen</button>
    </form>

    <?php
    // Verarbeitung des POST-Requests
    if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['name'])) {
        $name = $_POST['name'];
        $sql = "INSERT INTO benutzer (name) VALUES (?)";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("s", $name);

        if ($stmt->execute()) {
            echo "<p style='color:green;'>Benutzer '{$name}' erfolgreich hinzugefügt!</p>";
        } else {
            echo "<p style='color:red;'>Fehler: " . $stmt->error . "</p>";
        }
        $stmt->close();
    }
    ?>

    <hr>

    <h2>Liste der Benutzer:</h2>
    <ul>
        <?php
        $sql = "SELECT id, name FROM benutzer ORDER BY id DESC";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                echo "<li>ID: " . htmlspecialchars($row["id"]) . " - Name: " . htmlspecialchars($row["name"]) . "</li>";
            }
        } else {
            echo "<li>Keine Benutzer gefunden.</li>";
        }
        $conn->close();
        ?>
    </ul>

</body>
</html>
 

Oneixee5

Top Contributor
Ach - und ja - ich hatte nur ein paar Ideen dazu und habe das eine KI schreiben lassen. So geht das schneller - es sind ja auch ganz schön viele Fragen/Themen auf einmal.
 

thor_norsk

Bekanntes Mitglied
Hier ist die Frage doch einfach: Was genau willst Du erreichen? Was hast Du da überhaupt gebaut?

Eine ganz triviale Webseite kann rein aus PHP Code bestehen. Du hast z.B. eine index.php und wenn der Client diese aufruft, dann arbeitet der Server den PHP Code ab und schickt an den Client den HTML Code um die Seite aufzubauen.
Das HTML kann dann noch etwas ergänzt werden mit CSS oder JavaScript. Dabei ist egal, ob dies im HTML durch die PHP Seite mit ausgeliefert wird, oder ob es eigenständige Dateien sind.

Wenn man es ganz einfach gestaltet, dann sind Aktionen Seitenwechsel. Der Nutzer drückt einen Knopf oder so und schon geht wieder ein Request an den Server und es wird - ähnlich wie bei dem index.php - wieder eine ganz neue Seite aufgebaut. Das ist dann eine ganz triviale Sache aber du hast halt immer komplette Seitenaufbauten ... es muss immer alles geladen werden ...

Daher wird oft nur ein Teil geladen. Per JavaScript kannst Du Web-Aufrufe machen und das Ergebnis direkt verarbeiten. Das kann dann z.B. ein Seitenteil sein, der komplett ersetzt wird. Spricht statt einer Seite kommen nur paar Daten und das JavaScript schreibt diese dann in den vorhandenen Seitenaufbau im Browser.

Oder - was noch einen Schritt weiter geht: Es werden nur noch Daten übermittelt, die dann erst von der Webanwendung im Client ausgewertet werden. Hier hat man dann Webservices. REST Webservices sind heutzutage weit verbreitet. Du hast dann auf der Seite z.B. nur eine Tabelle und die Info: Die Daten beziehst Du von der und der URL. (Da gibt es dann auch oft fertige Frameworks, die das machen. Ich habe da mal eine Tabelle lizensiert für wenige Euro, die Daten per REST geholt hat und viel Funktionen hatte wie diverse Sortierungen und Filterungen ... (Das war aber vor meinem Umstieg auf React / MUI)

Das geht dann so weit, dass Du am Ende nur eine einzige Seite hast, welche dann den Inhalt ganz dynamisch erzeugt und anzeigt. Das wäre dann auch das, was man so bei Angular oder React Anwendungen findet.

Generell ist aber der Zugriff auf der Datenbank im Server-Code. Sprich: Du lädst Daten in dem php code und bereitest diese dann so auf, wie Du diese brauchst. Also z.B. baust Du eine ganze Seite, einen Seitenteil oder übermittelst die reinen Daten in einem Format, wie es der Webbrowser gerade erwartet (also z.B. als JSON).

Das wäre so eine allgemeine Übersicht. Konkrete Hilfe kann man Dir geben, wenn du uns mehr Details mitteilst. Was willst Du wie bauen?
Mit HTML und CSS habe ich eine einfache Seite mit Apache-Server getestet und funktioniert! JavaScript lerne ich noch und PHP muss auch lernen wenn ich dich richtig verstanden habe? Danke. Ich melde mich, sobald die Seite fertig ist.
 

thor_norsk

Bekanntes Mitglied
Besteht dein Online Shop jetzt aus HTML/JS und CSS oder ist dieser in PHP geschrieben?

Fange Schritt für Schritt an.
  • Linux mit installiertem Webserver -> wird die Standardseite von einem anderen Rechner angezeigt oder gibt es hier schon Fehler?
  • Lege eine eigene Testseite (HTML) ins richtige Verzeichnis (/var/www/html/ ist es bei RedHat, andere Distributionen haben evtl. andere Standardpfade). Wird diese Testseite angezeigt?
  • Dann Php. Installiere und konfiguriere Php. Lege eine Test Php Seite (z.B. mit Funktion phpinfo()) an. Wird dies korrekt angezeigt?
  • Dann die DB. Installiere diese. Kannst du mit einem Client (auf dem Server selbst oder evtl. Remote (Achtung! für die Produktion möchte man dies nicht so haben)) auf die Datenbank zugreifen?

Erst dann (!) kannst du dir Gedanken über dein Online Shop machen.
Besteht dein Online Shop jetzt aus HTML/JS und CSS oder ist dieser in PHP geschrieben?

Fange Schritt für Schritt an.
  • Linux mit installiertem Webserver -> wird die Standardseite von einem anderen Rechner angezeigt oder gibt es hier schon Fehler?
  • Lege eine eigene Testseite (HTML) ins richtige Verzeichnis (/var/www/html/ ist es bei RedHat, andere Distributionen haben evtl. andere Standardpfade). Wird diese Testseite angezeigt?
  • Dann Php. Installiere und konfiguriere Php. Lege eine Test Php Seite (z.B. mit Funktion phpinfo()) an. Wird dies korrekt angezeigt?
  • Dann die DB. Installiere diese. Kannst du mit einem Client (auf dem Server selbst oder evtl. Remote (Achtung! für die Produktion möchte man dies nicht so haben)) auf die Datenbank zugreifen?

Erst dann (!) kannst du dir Gedanken über dein Online Shop machen.
Apache funktioniert! PhpMyAdmin klappt auch ! localhost bzw IP-Adresse!
 

thor_norsk

Bekanntes Mitglied
Der Ordner /var/www/html ist der Standard-Speicherort für Webseiten, wenn du Apache verwendest. Allerdings ist dieser Ordner in der Regel nur mit privilegierten Benutzerrechten zugänglich, da er eine zentrale Rolle im System einnimmt. Ein Systemadministrator kann die Dateiberechtigungen jedoch so anpassen, dass dein Entwickler-Benutzer oder deine Gruppe Schreibrechte erhält.

Wenn du mehrere Webseiten hosten möchtest, ist der Einsatz von Virtual Hosts die gängige Methode. Ein Virtual Host ermöglicht es dir, für jede Webseite einen eigenen DocumentRoot festzulegen, der nicht auf den Standardpfad /var/www/html zeigen muss. Detaillierte Informationen und Konfigurationsbeispiele findest du in der offiziellen Apache-Dokumentation.

Das Internet bietet unzählige einfache Tutorials und Beispiele für den Einstieg. Achte dabei aber darauf, dass die Quellen nicht zu alt sind. Das heutige PHP unterscheidet sich stark von früheren Versionen. In modernen Entwicklungsumgebungen wird fast ausschließlich mit Frameworks gearbeitet. Diese beschleunigen die Entwicklung und machen sie sicherer, erfordern aber auch eine steilere Lernkurve, da sie eine bestimmte Struktur und Herangehensweise vorgeben.
Ich meine wenn man index.php verwendet muss der code in /var/www oder ? Bei HTML/CSS kann man in /var/www/html/ xyz.html ablegen!
Webseiten mit HTML/CSS funktioniert
 

thor_norsk

Bekanntes Mitglied
Dazu auch ein kleines Beispiel - aber beachte - das ist nur ein kleines Übungsbeispiel. Das ist weder sehr sicher, noch ist es sinnvoll große Anwendungen so zu bauen:

SQL:
CREATE TABLE benutzer (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL
);

PHP:
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>PHP & MySQL Beispiel</title>
</head>
<body>

    <?php
    // Datenbankverbindungsparameter
    $servername = "localhost";
    $username = "dein_benutzername";
    $password = "dein_passwort";
    $dbname = "deine_datenbank";

    // Datenbankverbindung herstellen
    $conn = new mysqli($servername, $username, $password, $dbname);

    // Verbindung prüfen
    if ($conn->connect_error) {
        die("Verbindung fehlgeschlagen: " . $conn->connect_error);
    }
    ?>

    <h1>Benutzerverwaltung</h1>

    <form action="index.php" method="post">
        <label for="name">Neuer Benutzer:</label>
        <input type="text" id="name" name="name" required>
        <button type="submit">Hinzufügen</button>
    </form>

    <?php
    // Verarbeitung des POST-Requests
    if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['name'])) {
        $name = $_POST['name'];
        $sql = "INSERT INTO benutzer (name) VALUES (?)";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("s", $name);

        if ($stmt->execute()) {
            echo "<p style='color:green;'>Benutzer '{$name}' erfolgreich hinzugefügt!</p>";
        } else {
            echo "<p style='color:red;'>Fehler: " . $stmt->error . "</p>";
        }
        $stmt->close();
    }
    ?>

    <hr>

    <h2>Liste der Benutzer:</h2>
    <ul>
        <?php
        $sql = "SELECT id, name FROM benutzer ORDER BY id DESC";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                echo "<li>ID: " . htmlspecialchars($row["id"]) . " - Name: " . htmlspecialchars($row["name"]) . "</li>";
            }
        } else {
            echo "<li>Keine Benutzer gefunden.</li>";
        }
        $conn->close();
        ?>
    </ul>

</body>
</html>

Vielen Dank! Ich habe zu viele Fragen gestellt, aber ich muss Design und Logik mit HTML/CSS/JavaScript erstellen und Backend mit PHP , und leider kann ich ganz wenig PHP. Ich werde jetzt PHP lernen. und meine JavaScript Kenntnisse noch verbessern und werde euch mein Shop präsentieren. Dauert noch bißchen!
 

thor_norsk

Bekanntes Mitglied
Eine Frage habe ich noch. Ich habe NodeJs und npm installiert (Linux) und übersetze damit JavaScript Code. Ich könnte doch Node als Server wählen und HTML/CSS für Design ? Die Frage wäre, wie kann ich Node als Server verwenden ?
 

thor_norsk

Bekanntes Mitglied
Z.B: HTML/CSS (Design) + Node + Datenbank(MySql oder MariaDB). Allerdings weiß ich nicht, ob überhaupt Node mit MariaDB arbeitet ? Ich melde mich später, wenn ich mit JavaScript + PHP richtig fit bin.
Ich habe mir eigentlich gedacht, Node + Datenbank zu verstehen, erspare ich mir PHP zu lernen, oder denke ich komplett falsch ???
 

KonradN

Super-Moderator
Mitarbeiter
Ich habe NodeJs und npm installiert (Linux) und übersetze damit JavaScript Code.
Das bezweifle ich etwas :)

Also Du solltest Dir überlegen, was Du genau mit welcher Sprache machen willst. Wenn Du eine Anwendung schreiben willst, die in einem Webbrowser laufen soll, dann ist hier HTML, CSS und JavaScript eine übliche Wahl. Damit kannst Du dann den Client Part gut erledigen. Diese Client Software kann prinzipiell auch mit Daten umgehen - die sind dann aber auch nur lokal. Dazu brauchst du dann also auch gar keinen Server.
EIn Beispiel, wo man dies sehen kann, wäre z.B. die OpenAPI / Swagger Anwendung. Die kann man einfach herunter laden und dann mit Doppelklick auf die entsprechende Datei starten. (Sprich: Du kannst z.B. eine html Seite doppelklicken und die wird dann im Browser geöffnet. Diese lädt dann auch diverse andere Dateien nach bei Bedarf...

Wenn Du nun aber auch Daten haben willst, die zentral gespeichert werden, dann brauchst Du einen Server, auf dem dies läuft. Damit hast Du also eine andere, zusätzliche Software, die Du in einer beliebigen Sprache entwickeln kannst. So hast Du PHP genannt. Das wäre eine Script-Sprache, die sich in einen Webserver integrieren lässt.
Das kann aber auch Java sein - und da nutzt Du dann entweder einen Application Server (Das ist dann ein eigenständiger Server für spezielle Java Anwendungen) ähnlich wie der Webserver, den Du derzeit hast. Oder eben Du schreibst eine eigenständige Java Anwendung, mit der der Webbrowser dann kommunizieren kann (Das ist dann bei Frameworks wie Spring Boot oder Quarkus der Fall).
So gibt es für fast jede Programmiersprache auch die Möglichkeit, einen Server zu erstellen. So auch für JavaScript.

JavaScript ist aber eine Scriptsprache. Du brauchst also etwas, das diese Scripte lädt und dann ausführt. Das ist dann die JavaScript-Engine in dem Webbrowser. So standalone gibt es aber auch nodejs - das ist eine Laufzeitumgebung für JavaScript. Mit Node.js kannst Du also ein JavaScript Programm ausführen. Du hast auch NPM erwähnt, das ist der Node Package Manager. Für JavaScript gibt es sehr viele Pakete, die man nutzen kann. Diese kann man mit einbinden. Das kann man entweder manuell machen oder man nutzt einen Manager für die Abhängigkeiten. So ein Paket Manager ist npm und dieser verwaltet die Abhängigkeiten und lädt diese automatisch herunter und so.
Das NPM selbst kann also auch hilfreich sein für reine client seitige Software. Da nutzt Du dann ggf. nicht selbst die node Runtime aber deine Abhängigkeiten verwaltest Du per npm.

Wenn Du mit einem Server in JavaScript herum spielen willst, dann gibt es da viele Einführungen und Beispiele. Einfach einmal ein paar Links für Dich:
offizielle DOku: https://nodejs.org/docs/latest/api/

Z.B: HTML/CSS (Design) + Node + Datenbank(MySql oder MariaDB). Allerdings weiß ich nicht, ob überhaupt Node mit MariaDB arbeitet ? Ich melde mich später, wenn ich mit JavaScript + PHP richtig fit bin.
Ich habe mir eigentlich gedacht, Node + Datenbank zu verstehen, erspare ich mir PHP zu lernen, oder denke ich komplett falsch ???
Bitte unterscheide wirklich zwischen Client (Webbrowser) und Server ... Auf Clientseite hast Du weder Node noch Datenbank.

Wenn Du PHP machen willst, dann brauchst Du da keinerlei Node (ausser maximal zur Verwaltung der Abhängigkeiten. Das macht Sinn wenn Du ein Framework wir React, Angular, ... nutzen willst aber selbst einfachen Abhängigkeiten, die man ggf, einfach verlinken könnte, kann man so verwalten wenn man wollte ...

Du hast dann auf der Server Seite nur PHP und das greift dann ggf. auf eine Datenbank zu.
 

thor_norsk

Bekanntes Mitglied
Zur Zeit läuft alles auf localhost ! Wenn ich DNS-Einträge bei einem WebHoster eintrage, dann kann jeder meine Seiten anschauen!
Ich habe Online-Kurse gekauft, um zu lernen!
Ich schreibe euch was ich vor habe. Ich möchte einfach Online-Shops, Foren, Chaträume, also für mich persönlich interessant zu programmieren und auf meinen Server(Linux auf Mini-Pc) laufen lassen.
Tut mir leid. dass ich euch die ganze Zeit nerve aber ich möchte es verstehen, und meine Ideen um zu setzen, dann habe ich etwas sinnvolles gelernt. !!! Alles aus meiner Sicht!!!
Frage: Ich kann HTML/CSS und JavaScript lerne ich zur Zeit mit kleinen Projekten, werde ich Erfahrung sammeln. Java und Spring Boot kenne ich auch, aber sehr schwierig und für meine Zwecke nicht Sinnvoll, daher ist die meine Frage ? Wenn HTML/CSS/JavaScript einige Maßen gut kann, was soll ich noch lernen bzw. tun, um die Projekte die ich oben beschrieben habe, zu entwickeln und zu verwalten?

Eine Dozentin bietet Online-Kurs mit HTML, CSS, Javascript, Node, React, PostgreSQL (Full Stack), React ist eine Erweiterung der JS-Bibliotheken, daher kam ich auf die Idee mit Node! Selbst React benutz Node für Echtzeit Anwendungen!


Also: Online-shop --> Mein Server (Mini-Pc) --> Domäne buchen mit DNS_Eintrag(Damit ich meine Ip-Adresse) eintragen kann.
 

Dukel

Top Contributor
Wenn etwas Lokal in deinem Netzwerk läuft kann da erstmal keiner, der nicht in deinem Netzwerk ist, zugreifen.
Dafür bräuchtest du ein Port-Forwarding und ggf. eine Dyn Dns Adresse, da sich die Internet IP regelmäßig ändert.

Das möchtest du aber beim lernen nicht!

Du wirst Fehler machen und Sicherheitslücken aufmachen. Da möchtest du nicht, dass jemand fremdes zugreifen kann.

Ich würde etwas langsamer machen und nicht alles auf einmal lernen möchten sondern dir einmal das Grundsätzliche (Client / Server; Frontend / Backend; Netzwerk; DNS; etc.) und dann eines nach dem anderen. Am besten mit HTML / CSS beginnen. Dann kann man das erstmal mit JS erweitern und danach kann man sich mit Node oder Php oder anderen Sprachen auseinander setzen.
Ich würde auch nicht alle Möglichen (komplexen) Anwendungen beginnen. Ich z.B. habe mit einer Bildergallerie begonnen. Das ist eine überschaubare Aufgabe und man kann dies auch schon beliebig komplex machen (z.B. mit DB Backend).
 

KonradN

Super-Moderator
Mitarbeiter
Ja, ich selbst halte Sicherheit für extrem kritisch. Und dazu sollte man genau wissen und verstehen, was man macht.
Und da sehe ich mehrere Punkte, die wichtig sind:

a) Sicherheit der Verbindung - Hier kommen so alle möglichen Punkte rein, die die Verbindung zum Server betreffen. Das fängt mit rein physikalischen Dingen an (Bandbreite, IP Adresse, ...) und geht dann aber auch in Details wie Sicherstellung, dass die Konfiguration der Systeme sicher ist (also SSL aktiviert, ggf. limitieren, welche SSL Standards erlaubt werden, Blocken von unerwünschten Zugriffen, Schutz gegen DDoS, ....)

b) Schutz des Servers - hier reicht es aus meiner Sicht eben explizit nicht aus, dass man es geschafft hat, Linux zu installieren und irgendwie scheint alles zu laufen ... So ein Server braucht ein Hardening, d.h. die Angriffsfläche muss minimiert werden. Es braucht ein aktives Monitoring. Man braucht Konzepte, um Angriffe zu erkennen und zu blocken. Backups sind wichtig ... Genaues Wissen, was denn auf dem System läuft. Und dann auch sowas wie eine Unterteilung in Partitionen, so dass nicht sofort alles betroffen ist, wenn ein Angriff mal durch gegangen ist ....
(Ich hatte dazu damals dann mehrere vServer laufen um dann die Dienste getrennt voneinander anzubieten ... Ein kompromittierter Webserver hat dann nicht den Mailserver betroffen ... All sowas halt)

c) Wissen zu Security in der Softwareentwicklung. Mal eben selbst etwas zusammen zu basteln ist eben mit das Schlimmste, was Du machen kannst, wenn Du hier nicht genau weisst, was Du machst ... OWASP wäre hier das Stichwort, was ich direkt anbringen würde (und das regelmässig Thema bei uns in verpflichtenden Weiterbildungen ist). Spring Boot ist zu komplex? Und dann bastelt man irgendwas from scratch selbst? Ja, zum lernen ist es ok. Und dann mal lokal irgendwo starten zum testen: ja gerne. Aber das nach aussen geben? Ganz miese Idee, vor allem wenn es personenbezogene Daten enthält oder einen gewerblichen Hintergrund hat (Online Shop erfüllt beide Kriterien...)

Bitte verstehe mich nicht falsch: Ich finde es super, dass Du Dich mit sowas beschäftigen willst. Das solltest Du auf jeden Fall auch machen. Aber die Idee mit dem Server und dann so einen Online Shop zu betreiben halte ich für extrem gefährlich und fatal.
Und da Du ja paar Ratschläge wolltest:
  • Versuche die technologische Basis klein zu halten. Also wenn Du eh schon html/CSS?JavaScript für das Frontend nutzen willst: Dann bleib evtl. auch für den Server Part bei JavaScript. Aber schau, dass Du ein Framework findest, dass Dich hier unterstützt und Dir auch direkt eine gewisse Hilfe gibt. (Oder da Du Java Kenntnisse hast: Nutze eben doch ein Framework wir Spring Boot. Viel Komplexität braucht es gar nicht zwingend ... Es liefert direkt out of the box sehr viel und das tiefe Verständnis kommt dann ggf. später ...
  • Frameworks mögen mit einer Komplexität kommen, aber sie liefern viele sehr wichtige Bestandteile und es gibt sowas wie Best Practices. Wenn man denen folgt, dann gibt es eine gewisse Chance, dass man eben keine zu gravierenden Sicherheitsprobleme bekommt ...
 

thor_norsk

Bekanntes Mitglied
Hammer, kaum ist Node im Spiel, ist der Tod🤣
Steht im Internet, ich habe gedacht, habe euch die ganze Zeit genervt, wollt ihr mich mit Deno und Ban verbannen🤣🤣🤣SPASS
Ich kannte Deno und Ban nicht! Danke für die Information!
Also wenn ich richtig verstanden habe, werden die als Backend eingesetzt ? Dano sogar als Webserver ?
 

Oneixee5

Top Contributor
Ich bin auch kein Freund von PHP. PHP ist eben das Synonym für schlechte Webseiten mit Sicherheitslücken. Ich weiß, dass das ein Klischee ist aber oft war. Von Nextcloud etc. bin ich weg, weil mit jedem Update ein riesiger Aufwand einherging.
Ich bin von Rust und Go im Backend begeistert. Ich würde auch immer alles in Containern umsetzen, das ist einfach praktischer.
 

thor_norsk

Bekanntes Mitglied
Ja, ich selbst halte Sicherheit für extrem kritisch. Und dazu sollte man genau wissen und verstehen, was man macht.
Und da sehe ich mehrere Punkte, die wichtig sind:

a) Sicherheit der Verbindung - Hier kommen so alle möglichen Punkte rein, die die Verbindung zum Server betreffen. Das fängt mit rein physikalischen Dingen an (Bandbreite, IP Adresse, ...) und geht dann aber auch in Details wie Sicherstellung, dass die Konfiguration der Systeme sicher ist (also SSL aktiviert, ggf. limitieren, welche SSL Standards erlaubt werden, Blocken von unerwünschten Zugriffen, Schutz gegen DDoS, ....)

b) Schutz des Servers - hier reicht es aus meiner Sicht eben explizit nicht aus, dass man es geschafft hat, Linux zu installieren und irgendwie scheint alles zu laufen ... So ein Server braucht ein Hardening, d.h. die Angriffsfläche muss minimiert werden. Es braucht ein aktives Monitoring. Man braucht Konzepte, um Angriffe zu erkennen und zu blocken. Backups sind wichtig ... Genaues Wissen, was denn auf dem System läuft. Und dann auch sowas wie eine Unterteilung in Partitionen, so dass nicht sofort alles betroffen ist, wenn ein Angriff mal durch gegangen ist ....
(Ich hatte dazu damals dann mehrere vServer laufen um dann die Dienste getrennt voneinander anzubieten ... Ein kompromittierter Webserver hat dann nicht den Mailserver betroffen ... All sowas halt)

c) Wissen zu Security in der Softwareentwicklung. Mal eben selbst etwas zusammen zu basteln ist eben mit das Schlimmste, was Du machen kannst, wenn Du hier nicht genau weisst, was Du machst ... OWASP wäre hier das Stichwort, was ich direkt anbringen würde (und das regelmässig Thema bei uns in verpflichtenden Weiterbildungen ist). Spring Boot ist zu komplex? Und dann bastelt man irgendwas from scratch selbst? Ja, zum lernen ist es ok. Und dann mal lokal irgendwo starten zum testen: ja gerne. Aber das nach aussen geben? Ganz miese Idee, vor allem wenn es personenbezogene Daten enthält oder einen gewerblichen Hintergrund hat (Online Shop erfüllt beide Kriterien...)

Bitte verstehe mich nicht falsch: Ich finde es super, dass Du Dich mit sowas beschäftigen willst. Das solltest Du auf jeden Fall auch machen. Aber die Idee mit dem Server und dann so einen Online Shop zu betreiben halte ich für extrem gefährlich und fatal.
Und da Du ja paar Ratschläge wolltest:
  • Versuche die technologische Basis klein zu halten. Also wenn Du eh schon html/CSS?JavaScript für das Frontend nutzen willst: Dann bleib evtl. auch für den Server Part bei JavaScript. Aber schau, dass Du ein Framework findest, dass Dich hier unterstützt und Dir auch direkt eine gewisse Hilfe gibt. (Oder da Du Java Kenntnisse hast: Nutze eben doch ein Framework wir Spring Boot. Viel Komplexität braucht es gar nicht zwingend ... Es liefert direkt out of the box sehr viel und das tiefe Verständnis kommt dann ggf. später ...
  • Frameworks mögen mit einer Komplexität kommen, aber sie liefern viele sehr wichtige Bestandteile und es gibt sowas wie Best Practices. Wenn man denen folgt, dann gibt es eine gewisse Chance, dass man eben keine zu gravierenden Sicherheitsprobleme bekommt ...
Sicherheit bekomme ich mit eigenen VPN-Servern, Firewall! Aber ich lerne jetzt PHP und muss JavaSript fit werden, dann gucke ich weiter, ansonsten lerne ich nichts. Ist mir einfach zu viel. Wenn ich JavaScript fit bin bzw. besser werde, kann ich meine Projekte euch zeigen, um die Fehler zu beheben. Bis dahin sage ich vielen Dank für Alles!
 

thor_norsk

Bekanntes Mitglied
Aber Deno hört sich nicht schlecht an! Am besten sich auf Frontend konzentrieren (für mich).
HTML/CSS(+Bootstrap)/JavaScript/React und Backend: PHP/MySQL für mich!
Mit NPM habe ich viel Ärger gehabt, dehalb habe ich die Lust auf einen Grundkurs mit React damals verloren.
 

KonradN

Super-Moderator
Mitarbeiter
Generell solltest du dir gut überlegen, was du lernen willst / vertiefen willst.

Ich bin kein Freund davon, sich eine Sprache nach der anderen anzueignen aber dann nie wirklich tiefer einzusteigen.

Wenn Du Java kannst: dann mach weiter mit Spring Boot oder so….

Wenn du jetzt JavaScript gelernt hast für Frontends: dann schau Dir an, was es da ggf. an Server seitigen Frameworks gibt … (da gibt es ja auch sehr viel wie Express.js oder NestJS …)

Lern jetzt nicht noch eine weitere Sprache wie PHP… Du kennst sonst irgendwie 100 Sprachen aber in keiner kannst du etwas sinnvolles bauen … auch in PHP würdest du für ein Produkt wie ein online Shop ein Framework nutzen (da gibt es auch ganz viele, z.B. Laravel).

==> eine Sprache alleine hilft Dir absolut nichts! Für reale Projekte braucht es weitere Libraries aber auch gewisses Tooling bzw. saubere Arbeitsweisen (Automatische Tests, Clean Code, Dokumentation, …). Wenn Du also die Hürde einer Sprache bewältigt hast, dann bau das aus statt eine weitere Sprache anzufangen (eine Sprache kennt man eigentlich auch erst, wenn man diese etwas vertieft hat und auch praktisch diese angewendet hat …)

Nur um meinen Punkt noch einmal ganz deutlich zu machen …

Edit: Typo entfernt
 
Zuletzt bearbeitet:

thor_norsk

Bekanntes Mitglied
Generell solltest du dir gut überlegen, was du lernen willst / vertiefen willst.

Ich bin kein Freund davon, sich eine Sprache nach der anderen anzueignen aber dann nie wirklich tiefer einzusteigen.

Wenn Du Java kannst: dann mach weiter mit Spring Boot oder so….

Wenn du jetzt JavaScript gelernt hast für Frontends: dann schau Dir an, was es da ggf. an Server seitigen Frameworks gibt … (da gibt es ja auch sehr viel wie Express.js oder NestJS …)

Lern jetzt nicht noch eine weitere Sprache wie PHP… Du kennst sonst irgendwie 100 Sprachen aber in keiner kannst du etwas sinnvolles bauen … auch in PHP würdest du für ein Produkt wie ein online Shop ein Framework nutzen (da gibt es auch ganz viele, z.B. Laravel).

==> eine Sprache alleine hilft Dir absolut nichts! Für reale Projekte braucht es weitere Libraries aber auch gewisses Tooling bzw. saubere Arbeitsweisen (Automatische Tests, Clean Code, Dokumentation, …). Wenn Du also die Hürde einer Sprache bewältigt hast, dann bau das aus statt eine weitere Sprache anzufangen (eine Sprache kennt man eigentlich auch erst, wenn man diese etwas vertieft hat und auch praktisch diese angewendet hat …)

Nur um meinen Punkt noch einmal ganz deutlich zu machen …

Edit: Typo entfernt
Hast vollkommen recht! Ich werde mein Wissen in HTML/CSS/JavaScript vertiefen und Backend überlege ich mir noch.
Z.B. Node läuft unter VS-Code aber NPM mit in VS-Code ist deaktiviert, und da fängt das Problem ab!
Also: node -v OK
npm -v , sagt muss aktiviert werden! kann mir jemand helfen ?
 

thor_norsk

Bekanntes Mitglied
Meine Entscheidung steht fest! Der Konrad hat mich motiviert! 🤣
HTML/CSS/JavaScript vertiefen und PHP/MySQl lernen und vertiefen und später ein Framework wie Laravel oder Symphony dazu verwenden!
 

mihe7

Top Contributor
Wenn ich mal kurz einhaken darf. Ich würde noch einen Schritt weiter als @KonradN gehen und mich erst einmal um ein Verständnis für die grundlegende Arbeitsweise von Web-Anwendungen kümmern.

Ich glaube, Du hast das gleiche Problem, wie die Leute, die das Programmieren lernen wollen und sich ein Buch für die Java-Programmierung kaufen. Mit dem Buch lernen sie dann die Programmiersprache Java, aber sobald sie etwas eigenes machen wollen, müssen sie feststellen, dass sie nicht programmieren können. Warum? Weil sie eben die Sprache und nicht das Programmieren gelernt haben.

Bei der Web-Programmierung ist das nicht anders. Wenn ich "HTML/CSS/JavaScript auf den Linux-Server laufen lassen!" lese, dann würde ich sagen, Dein Problem ist vorrangig nicht Java oder PHP, HTML, CSS oder JavaScript, sondern Dein Problem ist erst einmal, dass Dir Grundlagenwissen fehlt.

Man muss das nicht bis ins letzte Detail vertiefen, aber so ganz grundlegende Dinge, die für das Verständnis einfach ungemein helfen, sollte man schon kennen. Dazu gehört, dass man weiß, dass HTTP ein zustandsloses Protokoll ist, dem "Sitzungen" fremd sind, wie Sitzungen darüber realisiert werden können usw. Dazu gehört das Bewusstsein dafür, dass das UI und die dazugehörigen Skripte gerade nicht auf dem Server laufen (von dem höchstens "gerendert" wird), sondern im Browser. Außerdem sollte man sich auch ein wenig mit Sicherheit beschäftigen. Dazu gehören dann Dinge auch Dinge wie HttpOnly- und Secure-Cookies, natürlich im Zusammenhang mit TLS. Und wenn man selbst den Server aufsetzt, dann geht das natürlich noch wesentlich weiter (Firewall, IPS, aber auch Dinge wie: keine Anmeldungen per Passwort, keine root-Logins usw., Container, etc. etc.)

Das alles sind Dinge, die haben rein gar nichts mit den Programmiersprachen zu tun, die Du für Dein Projekt einsetzt, sondern gelten für jede Art von Web-Anwendung. Und nein, es geht nicht darum, blanke Theorie zu lernen, sondern das lernt man schon richtig unter Anwendung einer Programmiersprache. Der Fokus sollte am Anfang aber darauf liegen, zu verstehen, wie die Dinge funktionieren und nicht auf dem Projekt. Naja, vielleicht ist das auch nur mein Problem, aber ich muss verstehen, wie die Dinge funktionieren.
 

thor_norsk

Bekanntes Mitglied
Al
Wenn ich mal kurz einhaken darf. Ich würde noch einen Schritt weiter als @KonradN gehen und mich erst einmal um ein Verständnis für die grundlegende Arbeitsweise von Web-Anwendungen kümmern.

Ich glaube, Du hast das gleiche Problem, wie die Leute, die das Programmieren lernen wollen und sich ein Buch für die Java-Programmierung kaufen. Mit dem Buch lernen sie dann die Programmiersprache Java, aber sobald sie etwas eigenes machen wollen, müssen sie feststellen, dass sie nicht programmieren können. Warum? Weil sie eben die Sprache und nicht das Programmieren gelernt haben.

Bei der Web-Programmierung ist das nicht anders. Wenn ich "HTML/CSS/JavaScript auf den Linux-Server laufen lassen!" lese, dann würde ich sagen, Dein Problem ist vorrangig nicht Java oder PHP, HTML, CSS oder JavaScript, sondern Dein Problem ist erst einmal, dass Dir Grundlagenwissen fehlt.

Man muss das nicht bis ins letzte Detail vertiefen, aber so ganz grundlegende Dinge, die für das Verständnis einfach ungemein helfen, sollte man schon kennen. Dazu gehört, dass man weiß, dass HTTP ein zustandsloses Protokoll ist, dem "Sitzungen" fremd sind, wie Sitzungen darüber realisiert werden können usw. Dazu gehört das Bewusstsein dafür, dass das UI und die dazugehörigen Skripte gerade nicht auf dem Server laufen (von dem höchstens "gerendert" wird), sondern im Browser. Außerdem sollte man sich auch ein wenig mit Sicherheit beschäftigen. Dazu gehören dann Dinge auch Dinge wie HttpOnly- und Secure-Cookies, natürlich im Zusammenhang mit TLS. Und wenn man selbst den Server aufsetzt, dann geht das natürlich noch wesentlich weiter (Firewall, IPS, aber auch Dinge wie: keine Anmeldungen per Passwort, keine root-Logins usw., Container, etc. etc.)

Das alles sind Dinge, die haben rein gar nichts mit den Programmiersprachen zu tun, die Du für Dein Projekt einsetzt, sondern gelten für jede Art von Web-Anwendung. Und nein, es geht nicht darum, blanke Theorie zu lernen, sondern das lernt man schon richtig unter Anwendung einer Programmiersprache. Der Fokus sollte am Anfang aber darauf liegen, zu verstehen, wie die Dinge funktionieren und nicht auf dem Projekt. Naja, vielleicht ist das auch nur mein Problem, aber ich muss verstehen, wie die Dinge funktionieren.
 

thor_norsk

Bekanntes Mitglied
Stimmt nicht ganz! Mit HTML/CSS habe ich viele Seiten programmiert und gehostet! Alles funktioniert! JavaScript bin ich noch noch ganz fit, jedoch arbeite ich an kleinen Projekten. Backend ist sehr wichtig sonst kann ich keine Daten speichern und nicht mit Frontend kommunizieren! Ich lese keine Bücher mehr, ich kaufe mir Online-Videos und setzte Schritt für Schritt die Projekte um! Z.B. Anonyme Funktionen, was JSON ist, wie man auf die API zugreift, DOM-Manipulation, usw. Online Kurse finde ich viel besser! Vor Allem die Projekte teste ich im Browser und kann die Resultate sofort sehen!
 

mihe7

Top Contributor
Es spielt keine Rolle, womit Du Dir das Wissen aneignest. Dem einen gefallen Bücher besser, andere lernen lieber mit Videos, manche belegen Kurse, wieder andere lassen sich das eben von einer KI erklären. Die Frage ist immer, ob die Inhalte den persönlichen Voraussetzungen entsprechen. Man braucht aber die Grundlagen, um das überhaupt bewerten zu können (und natürlich auch im beruflichen Alltag um Entscheidungen treffen und das (Fehl-)Verhalten einer Anwendung einschätzen zu können). Und ja, learning by doing ist essentiell.

Vielleicht mal ein Beispiel: DB-Abfragen. Da kennt jemand SQL vielleicht schon von phpMyAdmin oder einem DBMS. Jetzt sucht er sich noch raus, wie er in seiner Programmiersprache mit der DB kommunizieren kann und schon kann es losgehen. Der Anwender soll z. B. Bestellungen nach bestimmten Kriterien filtern können. Kein Problem, wie String-Konkatenation funktioniert, ist klar, vielleicht hat er noch ein paar Beispiele dazu gefunden. Also baut er sich einfach den SELECT zusammen, am Schluss hat er dann etwas wie "WHERE productName LIKE '%" + productName + "%'". Sehr schön. Funktioniert und trotzdem hat er schon alles falsch gemacht, der SQL-Injection Tür und Tor geöffnet.

Wo liegt das Problem? Fehlendes Grundwissen. Hätte er gewusst, dass man Parameterwerte in DB-Abfragen niemals per String-Konkatenation einbaut, dann hätte er das einfach auf seine Programmiersprache übertragen können, nach entsprechenden Funktionen suchen können und die Sache von vornherein korrekt umgesetzt.

Das Beispiel zeigt auch, dass Grundlagen weder schwierig sind, noch bis ins letzte Detail verstanden werden müssen. Ich muss die Regel kennen, und damit auch wissen, dass es spezielle Herangehensweisen gibt, die SQL-Injection verhindern. Wie genau das technisch umgesetzt ist, muss mich aber nicht interessieren (es schadet natürlich nicht, wenn man auch das in etwa weiß 😉).

Das ist nur meine persönliche Meinung, letztlich muss jeder selber wissen, was er tun möchte. Ich kann mir natürlich auch alles von ChatGPT schreiben lassen und darauf hoffen, dass das Ding schon weiß, was es tut.
 

thor_norsk

Bekanntes Mitglied
Es spielt keine Rolle, womit Du Dir das Wissen aneignest. Dem einen gefallen Bücher besser, andere lernen lieber mit Videos, manche belegen Kurse, wieder andere lassen sich das eben von einer KI erklären. Die Frage ist immer, ob die Inhalte den persönlichen Voraussetzungen entsprechen. Man braucht aber die Grundlagen, um das überhaupt bewerten zu können (und natürlich auch im beruflichen Alltag um Entscheidungen treffen und das (Fehl-)Verhalten einer Anwendung einschätzen zu können). Und ja, learning by doing ist essentiell.

Vielleicht mal ein Beispiel: DB-Abfragen. Da kennt jemand SQL vielleicht schon von phpMyAdmin oder einem DBMS. Jetzt sucht er sich noch raus, wie er in seiner Programmiersprache mit der DB kommunizieren kann und schon kann es losgehen. Der Anwender soll z. B. Bestellungen nach bestimmten Kriterien filtern können. Kein Problem, wie String-Konkatenation funktioniert, ist klar, vielleicht hat er noch ein paar Beispiele dazu gefunden. Also baut er sich einfach den SELECT zusammen, am Schluss hat er dann etwas wie "WHERE productName LIKE '%" + productName + "%'". Sehr schön. Funktioniert und trotzdem hat er schon alles falsch gemacht, der SQL-Injection Tür und Tor geöffnet.

Wo liegt das Problem? Fehlendes Grundwissen. Hätte er gewusst, dass man Parameterwerte in DB-Abfragen niemals per String-Konkatenation einbaut, dann hätte er das einfach auf seine Programmiersprache übertragen können, nach entsprechenden Funktionen suchen können und die Sache von vornherein korrekt umgesetzt.

Das Beispiel zeigt auch, dass Grundlagen weder schwierig sind, noch bis ins letzte Detail verstanden werden müssen. Ich muss die Regel kennen, und damit auch wissen, dass es spezielle Herangehensweisen gibt, die SQL-Injection verhindern. Wie genau das technisch umgesetzt ist, muss mich aber nicht interessieren (es schadet natürlich nicht, wenn man auch das in etwa weiß 😉).

Das ist nur meine persönliche Meinung, letztlich muss jeder selber wissen, was er tun möchte. Ich kann mir natürlich auch alles von ChatGPT schreiben lassen und darauf hoffen, dass das Ding schon weiß, was es tut.
Danke! Z.B. SQL_Injection teste ich mit Kali_Linux! Ehrlich gesagt ich müsste über einem Jahr aus familiengründen aufhören! Jetzt fange ich wieder an. Mit Sql lautete der Grundsatz programmieren nach CRUD. Daher möchte ich nur erst Mal das notwendige lernen, die für mich sinn macht.
1) Frontend: HTML/CSS/JavaScript find ich OK, vielleicht später mit React verfeinern!
2) Backend: PHP/MySQL
Wenn zu viel wird werde ich nichts richtig lernen!
Also: Erst Mal Frontend fit werden, 2) bißchen lernen und mich langsam vorbreiten auf Backend.
 

Oneixee5

Top Contributor
Mir ist gar nicht klar, warum du das Lernen von HTML/CSS/JS immer so heraushebst. Möglicherweise, weil ich das schon so lange mache. Ein umfangreiches JS-Buch/Tutorial dauert 3 Tage. Verfestigen wird sich das erst bei kontinuierlicher Nutzung. Bibliotheken sind ein eigenes Thema. Grundlagen HTML dauert ein Tag. Hier gilt das Gleiche, mit der Zeit muss man immer weniger nachschlagen. CSS ist eine unendliche Geschichte. Für die Grundlagen braucht man auch etwa 3 Tage. Das gesamte CSS-Wissen wird man vermutlich nur als professioneller Webdesigner erlangen, dann wird man aber auch 10 Jahre brauchen - und dann ist alles schon wieder anders. Bei CSS muss man also nur wissen wo es eine gute Doku gibt, auswendig lernen ist sinnlos.
Also eine Woche in Vollzeit sollte für die Grundlagen ausreichen. Der nächste Punkt wäre eine Toolchain für die Entwicklung. Das ist schon schwieriger, besonders wenn man ganz neu einsteigt. Ich denke hier beginnt man mit einer IDE oder NPM etc.. Man lässt sich die Projekte erst einmal generieren und arbeitet sich dann ein. Da es auf dem Gebiet auch ständig Änderungen gibt, ist das meistens in jedem Projekt anders. Hier kann man nur über die Doku oder Entwickler-Blogs o.ä. gehen. Immer darauf achten, dass man bei der Google-Suche den Zeitraum unter ein Jahr einschränkt.
Von deinem Backend-Stack kann ich dir nur abraten. MySQL ist Oracle, das will keiner mehr in seinen Projekten. Wenn du es ernst meinst, dann in Richtung PostgreSQL. Auch Apache verwenden nur noch wenige Entwickler, eher als Proxy oder zu Auslieferung von statischen Inhalten. Damit ist PHP so gut wie raus. Meiner Meinung nach dauert die Entwicklung mit PHP auch einfach zu lange.
 

thor_norsk

Bekanntes Mitglied
Mir ist gar nicht klar, warum du das Lernen von HTML/CSS/JS immer so heraushebst. Möglicherweise, weil ich das schon so lange mache. Ein umfangreiches JS-Buch/Tutorial dauert 3 Tage. Verfestigen wird sich das erst bei kontinuierlicher Nutzung. Bibliotheken sind ein eigenes Thema. Grundlagen HTML dauert ein Tag. Hier gilt das Gleiche, mit der Zeit muss man immer weniger nachschlagen. CSS ist eine unendliche Geschichte. Für die Grundlagen braucht man auch etwa 3 Tage. Das gesamte CSS-Wissen wird man vermutlich nur als professioneller Webdesigner erlangen, dann wird man aber auch 10 Jahre brauchen - und dann ist alles schon wieder anders. Bei CSS muss man also nur wissen wo es eine gute Doku gibt, auswendig lernen ist sinnlos.
Also eine Woche in Vollzeit sollte für die Grundlagen ausreichen. Der nächste Punkt wäre eine Toolchain für die Entwicklung. Das ist schon schwieriger, besonders wenn man ganz neu einsteigt. Ich denke hier beginnt man mit einer IDE oder NPM etc.. Man lässt sich die Projekte erst einmal generieren und arbeitet sich dann ein. Da es auf dem Gebiet auch ständig Änderungen gibt, ist das meistens in jedem Projekt anders. Hier kann man nur über die Doku oder Entwickler-Blogs o.ä. gehen. Immer darauf achten, dass man bei der Google-Suche den Zeitraum unter ein Jahr einschränkt.
Von deinem Backend-Stack kann ich dir nur abraten. MySQL ist Oracle, das will keiner mehr in seinen Projekten. Wenn du es ernst meinst, dann in Richtung PostgreSQL. Auch Apache verwenden nur noch wenige Entwickler, eher als Proxy oder zu Auslieferung von statischen Inhalten. Damit ist PHP so gut wie raus. Meiner Meinung nach dauert die Entwicklung mit PHP auch einfach zu lange.
Ich lerne zur Zeit JavaScript, und versuche die Projekte um zu setzen, um zu lernen! PHP ist immer noch beliebt. leider ist zu langsam!
Allein Wordpress ist unter anderem in PHP programmiert! MIt HTML/CSS wollte ich euch von meinen Plänen erzählen. Ich lerne JavaScript.
Ich werde mir Bootstrap Vorlagen besorgen und ..Code anpassen, damit haben sich die Designer beschäftigt! Backend muss ich gucken! Ich denke PHP und MySQL am Anfang und PostgreSQL vielleicht danach. Frontend muss richtig sitzen sonst macht Alles keinen sinn!!! Danke!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Html Button mit JavaScript ausführen Angular, React, JQuery - Fragen zu JavaScript 5
D Java Tool um HTML und Javascript zu analysieren Angular, React, JQuery - Fragen zu JavaScript 3
T html code per javascript einfügen Angular, React, JQuery - Fragen zu JavaScript 7
Chris81T Java <> DWR <> JavaScript/HTML Angular, React, JQuery - Fragen zu JavaScript 2
N warum kann ich kein javascript und css in mein html script einbinden Angular, React, JQuery - Fragen zu JavaScript 3
Gossi Frage zu Html (evtl. auch JavaScript?) Angular, React, JQuery - Fragen zu JavaScript 10
J HTML frage mit javascript lösbar? Angular, React, JQuery - Fragen zu JavaScript 3
H0xt html übergibt an js ein wert nicht Angular, React, JQuery - Fragen zu JavaScript 18
C HTML-JAVA Angular, React, JQuery - Fragen zu JavaScript 2
FranziskaN Hilfe Los-Topf in js und html Angular, React, JQuery - Fragen zu JavaScript 18
Zeppi Webserver erweitert index.html Angular, React, JQuery - Fragen zu JavaScript 1
Aleyna_ Einbinden von js (ts) und HTML-Datei funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 16
G Variablen aus URL auslesen und in HTML darstellen Angular, React, JQuery - Fragen zu JavaScript 1
isatindersinght jquery convert html to image Angular, React, JQuery - Fragen zu JavaScript 0
T JS/HTML: User Inputs statt Predefines nehmen; onChange Events werden ignoriert Angular, React, JQuery - Fragen zu JavaScript 6
D HTML-Seite erkennt JS-File im Ordner nicht Angular, React, JQuery - Fragen zu JavaScript 4
M Mit innerHTML in eine bestimmte HTML-Datei schreiben Angular, React, JQuery - Fragen zu JavaScript 8
D Variable ohne HTML Tags ausgeben Angular, React, JQuery - Fragen zu JavaScript 14
F Schnellen Browser für HTML mit JS drin. Angular, React, JQuery - Fragen zu JavaScript 6
B HTML, CSS - Frame online aktualisieren Angular, React, JQuery - Fragen zu JavaScript 11
J Problem:Zugriff auf Ausgabefeld (HTML-Formular)) Angular, React, JQuery - Fragen zu JavaScript 3
C sort_table.js HTML-Tabelle direkt sortiert anzeigen lassen Angular, React, JQuery - Fragen zu JavaScript 5
O HTML Dropdownliste Angular, React, JQuery - Fragen zu JavaScript 3
H Kalender mit Java(Script) in HTML Angular, React, JQuery - Fragen zu JavaScript 6
T HTML Tabelle - per JS neue Zeile Angular, React, JQuery - Fragen zu JavaScript 4
N HTML-Formular mit Java Script berechnen Angular, React, JQuery - Fragen zu JavaScript 4
S User Name an Html übergeben Angular, React, JQuery - Fragen zu JavaScript 6
A Flash-oder HTML Dateien mittels Java Kalenderscript anzeigen Angular, React, JQuery - Fragen zu JavaScript 4
G html mit java auslesen Angular, React, JQuery - Fragen zu JavaScript 6
L Dauerlaufzeile mit Fotos für html Angular, React, JQuery - Fragen zu JavaScript 2
M den Browser auffordern html-seite nachzuladen Angular, React, JQuery - Fragen zu JavaScript 3
D Java Variablen in HTML/Java abrufen Angular, React, JQuery - Fragen zu JavaScript 4
S HTML Cod in einer bestimmten stelle einfügen. Angular, React, JQuery - Fragen zu JavaScript 12
M Umwandeln von Umlauten im HTML form Angular, React, JQuery - Fragen zu JavaScript 10
W Wert aus HTML-Quelltext auslesen Angular, React, JQuery - Fragen zu JavaScript 8
C Flashfilm aus einer HTML-Seite im Fullscreen öffnen Angular, React, JQuery - Fragen zu JavaScript 2
A Java-Script mit HTML ändern Angular, React, JQuery - Fragen zu JavaScript 6
T java-html navigationsproblemchen Angular, React, JQuery - Fragen zu JavaScript 4
J html befehl in JS Angular, React, JQuery - Fragen zu JavaScript 5
M fetch - API - Probleme? JavaScript Angular, React, JQuery - Fragen zu JavaScript 3
M JavaScript - Fetch Probleme Angular, React, JQuery - Fragen zu JavaScript 0
M Fetch Probleme - JavaScript? Angular, React, JQuery - Fragen zu JavaScript 1
M JavaScript Hilfe dringend (v.2) Angular, React, JQuery - Fragen zu JavaScript 1
P Cypress Test mit javascript ergibt [object Undefined] Meldung Angular, React, JQuery - Fragen zu JavaScript 0
F Javascript Problem bei mehrere ID's Angular, React, JQuery - Fragen zu JavaScript 7
B JavaScript - Array mit Objekten anhand des Object-keys sortieren Angular, React, JQuery - Fragen zu JavaScript 2
I JavaScript: Array umgekehrt von vorn auffüllen Angular, React, JQuery - Fragen zu JavaScript 7
B Kommunikation zwischen Javascript und Java? Angular, React, JQuery - Fragen zu JavaScript 7
A Problem bei Sortierung von Rechnungsnummern mit JavaScript Angular, React, JQuery - Fragen zu JavaScript 1
B Besseres Arbeitsmanagement bei Javascript Programm? Angular, React, JQuery - Fragen zu JavaScript 19
I Fehler im JavaScript? Angular, React, JQuery - Fragen zu JavaScript 2
B Rich Text Editor With Javascript Angular, React, JQuery - Fragen zu JavaScript 1
B nodeJS JavaScript Object require Angular, React, JQuery - Fragen zu JavaScript 12
Aartiyadav Annotation in Javascript and Typescript Angular, React, JQuery - Fragen zu JavaScript 2
B Javascript Tutorial für DOM Manipulationen? Angular, React, JQuery - Fragen zu JavaScript 0
Q Mit JavaScript Daten aus einer Textdatei verarbeiten Angular, React, JQuery - Fragen zu JavaScript 2
H RegExp in Javascript String Angular, React, JQuery - Fragen zu JavaScript 1
B php Datei in JavaScript öffnen Angular, React, JQuery - Fragen zu JavaScript 9
M Einkaufswagen JavaScript Angular, React, JQuery - Fragen zu JavaScript 4
Zeppi Javascript JSON in ein Array Angular, React, JQuery - Fragen zu JavaScript 1
Cellsplitter Api auslesen und in Json Datei speichen - Javascript (node js) Angular, React, JQuery - Fragen zu JavaScript 10
B DOM Baum in JavaScript document.body.childNodes[1] Angular, React, JQuery - Fragen zu JavaScript 10
Noahscript [Frage]: Wie erstelle ich eine htmlspecialchars_decode mit JavaScript? Angular, React, JQuery - Fragen zu JavaScript 1
A Javascript validateInput Angular, React, JQuery - Fragen zu JavaScript 0
Zeppi Javascript URL als Link Angular, React, JQuery - Fragen zu JavaScript 2
T Javascript x-Axis fortlaufendes Datum eintragen Angular, React, JQuery - Fragen zu JavaScript 0
P Editor- mit javascript Sonderzeichen beim schreiben vorschlagen Angular, React, JQuery - Fragen zu JavaScript 0
Jose Merchan JavaScript and SEO Angular, React, JQuery - Fragen zu JavaScript 0
B JavaScript Button hinzufügen Angular, React, JQuery - Fragen zu JavaScript 2
A Ich habe eine frage zu JavaScript adblock detector? Wenn jemand auf OK Klick soll die Sete neu geladen werden Angular, React, JQuery - Fragen zu JavaScript 1
d.lumpi in javascript input erstellen Angular, React, JQuery - Fragen zu JavaScript 4
Martob282 Belegnummerierungsstempel mit JavaScript erstellen Angular, React, JQuery - Fragen zu JavaScript 34
N Javascript: mehrere Textfelder prüfen ob es sich um eine Zahl handelt und diese zwischen 1 und 49 liegt Angular, React, JQuery - Fragen zu JavaScript 10
S Javascript Canvas RadialGradient -> SVG Gradient Angular, React, JQuery - Fragen zu JavaScript 0
C JavaScript in Siri-Shortcuts zur Webseiten Bedienung Angular, React, JQuery - Fragen zu JavaScript 8
N TypeScript zu JavaScript Angular, React, JQuery - Fragen zu JavaScript 1
M Taste mit Javascript simulieren Angular, React, JQuery - Fragen zu JavaScript 6
B Rauch per Javascript auf Bild packen? Angular, React, JQuery - Fragen zu JavaScript 4
X Ohm Rechner in JavaScript aber was bedeutet Power? Angular, React, JQuery - Fragen zu JavaScript 103
ruutaiokwu JavaScript in Angular 8-Anwendung verwenden Angular, React, JQuery - Fragen zu JavaScript 11
T Ich möchte einen Button mit JavaScript ausblenden Angular, React, JQuery - Fragen zu JavaScript 5
L [JavaScript] Mehrere Variablen für Live-Suche in MySql-DB Angular, React, JQuery - Fragen zu JavaScript 0
P Hashes in JavaScript Angular, React, JQuery - Fragen zu JavaScript 7
P Zahlen in JavaScript Angular, React, JQuery - Fragen zu JavaScript 3
M Spalte verlinken mit JavaScript Angular, React, JQuery - Fragen zu JavaScript 9
P Angular vor JavaScript lernen? Angular, React, JQuery - Fragen zu JavaScript 1
S Unterstützung in Javascript Angular, React, JQuery - Fragen zu JavaScript 2
W Javascript + couchDB Angular, React, JQuery - Fragen zu JavaScript 2
T Grafische und tabellarische Datendarstellung mit JavaScript Angular, React, JQuery - Fragen zu JavaScript 2
E Javascript wenn Variable aktualisiert wird, dann prüfe Angular, React, JQuery - Fragen zu JavaScript 0
D Javascript um eine Seite in einem PDF Formular ein-/Ausblenden zu lassen Angular, React, JQuery - Fragen zu JavaScript 3
ARadauer JavaScript und replace... Angular, React, JQuery - Fragen zu JavaScript 1
P Richtiges Auslesen von mehreren Daten im JSON Format via JavaScript Angular, React, JQuery - Fragen zu JavaScript 2
n00b4u JavaScript Daten lokal Speichern Angular, React, JQuery - Fragen zu JavaScript 7
C per Javascript auf S4 nach Sensordaten fragen? Angular, React, JQuery - Fragen zu JavaScript 2
B Fehler im JavaScript Angular, React, JQuery - Fragen zu JavaScript 3
C In Wordpress unter Custom-Js mit Javascript den ursprünglichen Code deaktivieren Angular, React, JQuery - Fragen zu JavaScript 0
K Javascript "Bild mit Pfeiltasten automatisch bewegen" HILFE Angular, React, JQuery - Fragen zu JavaScript 0
M Javascript Höhe Angular, React, JQuery - Fragen zu JavaScript 2
N Problem - Google Analytics Tracking Javascript Datei von eigenen Server laden Angular, React, JQuery - Fragen zu JavaScript 1

Ähnliche Java Themen


Oben