PHP in HTML-Datei

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

PHP in HTML-Datei

Postby kenbb » 19. September 2018 16:41

Ich komme mit PHP in Html-Datei nicht klar. Ich deklariere eine Variable in PHP – Block :
<?php $htmlString= 'testing1';?> .
Weiter
<script type="text/javascript">
function myFunction(){
var htmlStr = <?php echo $htmlString; ?>;
alert(htmlStr);
}
</script>
und in <block> :
<button onclick="myFunction()" style="WIDTH: 184px; HEIGHT: 24px> </BUTTON>

Html-Datei wird mit localhost/... aufgerufen.

Es passiert nichts nach dem Drücken auf Button.
Der Breakpoint in myFunction() bei Debugger in Firefox wird nicht angesprungen – also ein Fehler, nur wo, wie ?
Was mache ich falsch ?
kenbb
 
Posts: 17
Joined: 27. August 2018 09:30
XAMPP version: 7.2.8
Operating System: vista, xp

Re: PHP in HTML-Datei

Postby Altrea » 19. September 2018 18:02

HTML Dateien werden standardmäßig nicht durch den PHP Interpreter geschickt. Das ist auch gut und richtig so.

Mach einfach eine PHP Datei daraus.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: PHP in HTML-Datei

Postby kenbb » 19. September 2018 18:40

Mein eigentliches Ziel ist eine Tabelle mit Daten aus MySql zu füllen – das muss ein sehr häufiger Wunsch sein. Dann, denke ich mir, es muss auch Möglichkeiten geben zu bewerkstelligen, dass eine Html – Seite dynamisch mit Daten zu beschreiben.
Übrigens habe einige Bespiele gesehen, wo das benutzt wurde. In einem wurden zwar die Daten rausgelesen, aber nicht in eine Tabelle gepackt.
Das einfache Bespiel oben ist schon ein Schlüssel zu den allen weiteren Möglichkeiten.
In PHP-Datei funktioniert es. Nur PHP läuft nur auf dem Server. Ich brauche Html-Datei, die im Internet beim Client erscheint - so, denke mir, ist das der einzige Weg/Möglichkeit
kenbb
 
Posts: 17
Joined: 27. August 2018 09:30
XAMPP version: 7.2.8
Operating System: vista, xp

Re: PHP in HTML-Datei

Postby Nobbie » 19. September 2018 18:55

kenbb wrote: dass eine Html – Seite dynamisch mit Daten zu beschreiben.


Exakt das ist ist der Sinn von PHP Skripten. Man kann in PHP Dateien auch einfach nur reines HTML schreiben, das funktioniert genau so wie in *.html Dateien. Der Sinn der Endung *.php besteht alleine darin, Apache mitzuteilen, dass er für diese Datei den PHP Interpreter starten soll. Der läßt aber HTML einfach eins zu eins durch. Damit man die Möglichkeit hat, dass nicht IMMER und EWIG der PHP Interpreter gestartet wird, dafür hat man sich auf die Konvention geeinigt, für *.html Dateien den Interpreter NICHT zu starten.

Aber prinzipiell könnte man auch in einer *.php nur HTML und sonst nichts schreiben. Oder (wie Du es brauchst) eine Mischung davon. Die Dateiendung ist nur der Auslöser, ob der Interpreter gestartet wird. Also nenne Deine Dateien *.php und schreibe genau das rein, was Du in die HTML Datei schreiben wolltest. So einfach ist das.

kenbb wrote:Nur PHP läuft nur auf dem Server.


Richtig. PHP läuft nur auf dem Server, so oder so, egal wie die Dateien heißen.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: PHP in HTML-Datei

Postby Altrea » 19. September 2018 19:10

Egal wie man es dreht und wendet. Selbst wenn die Datei HTML als Dateiendung haben würde... Wenn die Datei PHP Code enthält muss sie zwingend durch einen PHP Interpreter laufen, und der ist auf dem Server.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: PHP in HTML-Datei

Postby kenbb » 19. September 2018 21:20

Also wenn’s um Theorie des Zwecks von PHP für Html geht, haben wie die gleiche Meinung. Nur ich weiß leider weiter nicht, wie ich bewerkstellige, dass meine Daten aus MySql in einer Tabelle der Html-Datei erscheinen, was nur mit PHP geht.
Kennt jemand eine Lösung ? Html/PHP Code wäre da das beste.
kenbb
 
Posts: 17
Joined: 27. August 2018 09:30
XAMPP version: 7.2.8
Operating System: vista, xp

Re: PHP in HTML-Datei

Postby Nobbie » 19. September 2018 21:37

Natürlich "kenne" ich Lösungen, aber ich denke, das eigentliche Problem ist, dass Du keine Erfahrung mit Programmierung hast. Da hilft nichts anderes, als sich mit Büchern und Tutorials langsam und Stück für Stück weiter zu entwickeln, es ist noch nie ein Meister vom Himmel gefallen und Du musst, wie jeder andere auch, Dich durch die Materie einarbeiten und fortbilden, das wird schon eine ordentliche Weile dauern, anders geht es nicht.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: PHP in HTML-Datei

Postby kenbb » 20. September 2018 08:57

Nobbie : achacha. Also du schlägst vor das Forum zu schließen und schickst du alle zu den Büchern. Na da wird der Moderator traurig.
Mit Programmieren habe ich jahrelange Erfahrung, nur das ist c++, vb u.a. Also wenn ich was weiß und das Ausdrücken mir keine Schwierigkeiten bereitet, mache ich das auch. Daraus kann man schliessen, dass du dieses Wissen nicht hast. Du machst dich wichtig auf billige Art.
kenbb
 
Posts: 17
Joined: 27. August 2018 09:30
XAMPP version: 7.2.8
Operating System: vista, xp

Re: PHP in HTML-Datei

Postby Altrea » 20. September 2018 09:21

Du musst mit PHP die Datenbankverbindung aufbauen, über ein SQL Statement die anzuzeigenden Datensätze auswählen, das Resultset in einen HTML String umwandeln und dann kannst du den String im HTML per PHP echo ausgeben.
Das wäre eine Möglichkeit.
Das ist aber absolutes Basiswissen welches dir jedes PHP+MySQL Tutorial vermitteln kann.
Ich kann dir hier zum Beispiel die Tutorialreihe von Peter Kropff empfehlen. Schau dir hier mal die MySQLi und PDO Tutorials an: https://www.peterkropff.de/site/php/php.htm

kenbb wrote:Nobbie : achacha. Also du schlägst vor das Forum zu schließen und schickst du alle zu den Büchern. Na da wird der Moderator traurig.

Nein, Nobbie hält sich nur an die Forenregeln. Wir leisten hier eine bestimmte Form der Hilfestellung (Hilfe zur Selbsthilfe), vorallem wenn es sich nicht um irgendeine Entstörung von XAMPP Komponenten handelt sondern Vermittlung von Programmierkenntnissen.
Lies dir bitte mal durch, was für Hilfe du hier erwarten kannst und was auch wir von den Hilfesuchenden erwarten: [INFO] Forenregeln - Wie man erfolgreich Hilfe erhält
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: PHP in HTML-Datei

Postby Nobbie » 20. September 2018 09:30

kenbb wrote:Nobbie : achacha. Also du schlägst vor das Forum zu schließen und schickst du alle zu den Büchern. Na da wird der Moderator traurig.


Der einzige Moderator hier, Altrea, ist da ganz sicher nicht traurig. Warum sollte man das Forum schliessen, nur weil Du keine Doku lesen willst? Das Forum betreut Probleme im Umfeld der Xampp Installation, aber es ersetzt nicht die Notwendigkeit, PHP zu lernen. Im Gegenteil, mit Xampp bekommst Du die Infrastruktur geliefert, um dann lokal Deine eigenen Scripts zu installieren und zu testen, mithin also eine elementare Grundlage, um damit Webprogrammierung zu erlernen.

Und wenn Du Erfahrung mit anderen Programmiersprachen hast, dann ist das ja umso besser. Dann wird Dir die Syntax sicherlich keine Probleme bereiten. Dann muss man noch Übung in transaktionierender Programmierung erlangen, das ist für viele Programmierer Neuland und ist begründet im sog. zustandsfreien Protokoll HTTP. Generell geht es dabei um die Lebensdauer von Variablen die Sicherung und Wiederherstellung. Stichworte Cookies und Sessions, das wird u.a. benötigt für Logins, für mehrseitige Inhalte, für Blätterfunktionen usw. Und natürlich wirst Du auch SQL lernen müssen, wahrscheinlich auch Neuland.

Deine ohnehin unlogische Folgerung, ich könnte diese Dinge alle nicht, ist definiv völlig wild und falsch. Ich programmiere aktiv schon seit 1980, damals noch Fortran, COBOL und Pascal, habe danach auf VAX/VMS und Unix Rechnern mit C angefangen, habe später unter Windows ebenfalls C++ und VisualBasic programmiert und seit ca. 20 Jahren habe ich mich mit Perl, PHP, Sql sowie allgemein der Konfiguration von Webservern befasst. Du kannst ganz beruhigt davon ausgehen, dass ich sehr genau weiss, wovon wir hier reden.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: PHP in HTML-Datei

Postby kenbb » 20. September 2018 11:00

Ihr redet wie ein Wasserfall aber aus dem kommt nicht mal ein Tröpfchen Code ran. Da kann man nur verdursten.
Ich schrieb doch, PHP funktioniert, d.h. die Umgebung läuft, also die Ratschläge waren grundsätzlich daneben.
Zu Altea: das, was Du im ersten Satz deines vorigen Eintrags geschrieben hast., steht in meinem ersten und dem nächsten Eintrag: ich kann die in PHP gesetzte Werte auslesen, nur das Packen in die Tabelle klappt nicht. In dem Beispiel war eine Funktion, die das gerade machen sollte, was Du in Deinem ersten Satz bei vorigem Eintrag geschrieben hast und was Du meinst. Mach aber nicht.
Html sollte so präpariert werden, dass wenn der Client sie abruft, ist nur das Ergebnis der PHP-Abfrage sichtbar.
Natürlich ist da noch die unelegante Lösung : ab und zu starte ich PHP-Datei, die eine Html – Datei aus der Vorlage erstellt, was ich, wenn es geht, vermeiden möchte.
Wenn ihr nett seid, könnt Ihr mir dabei helfen.
kenbb
 
Posts: 17
Joined: 27. August 2018 09:30
XAMPP version: 7.2.8
Operating System: vista, xp

Re: PHP in HTML-Datei

Postby Nobbie » 20. September 2018 13:45

kenbb wrote:Mach aber nicht.


Weil Du sie falsch benannt hast. Statt test.html nenne sie test.php und schon tut sie es.

Um es auch noch mal ausführlicher darzustellen, anscheinend hast Du ein Problem mit den Namensgebungen resp. mit der Erweiterung. Anscheinend glaubst Du, dass für den Browser der Dateiname (resp. die Extension) über den Inhalt entscheidet und dass PHP eben Skripts sind, die ein Browser nicht versteht. Das ist ein Irrtum.

Bei einem HTTP Request teilt der Server dem Browser über den sog. HTTP Header mit, von welchem Typ die Datei ist, die er vom Server bekommt. Der Name ist dabei für den Browser vollkommen irrelevant, die Information über den Dateityp bekommt der Browser aus dem Wert des sog. "CONTENT-TYPE", ein Bestandteil des Protokolls HTTP. Auf dem Server(!) wird in der Apache Konfiguration seinerseits die Beziehung von Dateierweiterung und dem sog. MIME-Type (Dateityp) festgelegt (über die Anweisung AddType; Bestandteil der Apache Konfiguration). Und da ist sowohl für *.html als auch für *.php festgelegt, dass sie beide vom Type "text/html". D.h. der Browser bekommt IMMER eine Datei vom Typ text/html, egal ob sie *.php oder *.html heißt.

Die Endung *.php sorgt darüber hinaus dafür, dass die Datei, bevor sie an den Browser ausgeliefert wird, durch einen PHP Interpreter geschickt wird und anstelle der PHP Datei selbst wird die Ausgabe der Datei an den Browser geschickt, unter Beibehaltung des Namens, aber gekennzeichnet als HTML Datei (text/html). Der Unterschied zwischen einer *.html und einer *.php ist mithin also nur der, dass die *.php auch PHP Anweisungen enthalten kann (aber selbstverständlich auch HTML Code). Wenn eine Datei auch nur ein einziges PHP Statement enthält, muss man sie *.php nennen. Reine HTML Dateien dagegen nennt man *.html, um nicht unnötig den PHP Interpreter laufen zu lassen (das könnte man zwar, aber es ist nur Ressourcenverschwendung).

Und deswegen ist es vollkommen richtig und in Ordnung, die "vorbereiteten" HTML Dateien *.php zu nennen, damit der eingebettete PHP Code auch interpretiert wird. In *.html wird er als Kommentar ignoriert.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: PHP in HTML-Datei

Postby kenbb » 20. September 2018 15:39

Zuerst Danke für den Vortrag.
Du meinst, wenn vom Client auf die Seite geklickt wird (durch z.B. ein Link) und darunter eine PHP – Datei ist, präpariert der Server die Datei (z.B. zieht die Daten aus DB) und den Client erreicht eine schon gefüllte Datei, die eine PHP – Datei ist (oder wird sie in Html umbenannt) ?
kenbb
 
Posts: 17
Joined: 27. August 2018 09:30
XAMPP version: 7.2.8
Operating System: vista, xp

Re: PHP in HTML-Datei

Postby Altrea » 20. September 2018 15:58

Der Client Browser schickt eine Anfrage für eine Ressource an einen Webserver über das HTTP Protokoll.
Der Server holt sich diese Ressource, sofern verfügbar und erlaubt, und verarbeitet diese (ggf. durch Drittmodule wie PHP).
Daraus resultiert ein Ergebnis. Dieses Ergebnis ist im Falle von einer PHP Ressource ein HTML Inhalt. Das ist meist keine physische Datei, nur die reinen HTML Daten.
Diese Daten werden an den Browser zurückgeschickt und der Browser modelliert das HTML zu etwas sichtbaren.

btw: Wenn du in der Wüste eine Oase findest, dann aber erwartest dass dir ein Knecht das Wasser bis zum Munde reichen möge, ist niemand anders daran schuld dass du verdurstest außer du selbst.
Es gibt hier keinen vorgekauten Code. Wenn das deine Anforderung ist, bist du hier schlichtweg falsch. Dann suchst du dir besser ein Freelancer Board, dort programmiert man dir das für ein paar Euro.
PHP ist eine Sprache die sich wie kaum eine zweite dazu eignet über Selbststudium zu erlernen, denn es gibt Tonnen freier Informationen und Anleitungen im Internet.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: PHP in HTML-Datei

Postby Nobbie » 20. September 2018 16:02

Der Client weiß nichts von PHP; der Client bekommt IMMER eine HTML Datei. Ob die Datei als statische Datei auf dem Server liegt, oder ob die Datei durch PHP Script auf dem Server erzeugt wurde, das weiß der Cllient (Browser) nicht. Der bekommt grundsätzlich HTML und keinen PHP Code mehr darin (damit fängt er ja sowieso nichts an). Und damit Du nicht glaubst, wir produzieren nur heiße Luft, ich habe auf die Schnelle ein Script geschrieben, welches die ersten 20 Einträge aus einer Tabelle einer Datenbank liest und als HTML Tabelle ausgibt. Ganz schlicht, aber allgemein gehalten, man kann die Paramter "d=Datenbankname" und "t=Tabellenname" in der URL mitgeben, als Server ist "localhost" verdrahtet (kannst Du natürlich ändern) und als User "root" ohne Passwort (die Standardkonfiguration in Xampp). Kannst Du alles ändern, aber so läuft das Script mit vorhandenen Datenbanken und Tabellen. Das kannst Du als Vorlage nehmen und beliebig ausbauen.

Den (unteren) HTML Teil kann man natürlich auch in eine eigene Datei auslagern und am Ende des PHP Scripts per include() heranziehen (würde ich eigentlich so machen, aber für die Lesbarkeit habe ich eine einzige Datei gebastelt).

Code: Select all
<?php
        $host = 'localhost';
        $database = $_GET['d'];
        $user = 'root';
        $password = '';

        $table = $_GET['t'];

        $link = mysqli_connect($host, $user, $password, $database);
        if (mysqli_connect_errno())
        {
                die(mysqli_connect_error());
        }

        $res = mysqli_query($link, "SHOW COLUMNS FROM $table");
        if (!$res) {
                die("SHOW COLUMNS FROM $table ... FAILED!!");
        }

        while ($row = mysqli_fetch_row($res)) {
                $cols[] = $row[0];
        }

        $res = mysqli_query($link, "SELECT * FROM $table LIMIT 20");
        if (!$res) {
                die("SELCT * FROM $table ... FAILED!!");
        }

        while ($row = mysqli_fetch_row($res)) {
                $rows[] = $row;
        }

        mysqli_close($link);

?>
<html>
<body>
<h1>Tabelle <?=$table?></h1>
<div>
<table border=1>
<tr>
<?php foreach ($cols as $col) { ?>
<td><?=$col?></td>
<?php }; ?>
</tr>
<?php foreach ($rows as $row) { ?>
<tr>
<?php foreach ($row as $col) { ?>
<td><?=$col?></td>
<?php }; ?>
</tr>
<?php }; ?>
</table>
</div>
</body>
</html>


Mehr kann ich nicht mehr für Dich tun. Das geht schon um Lichtjahre über das hinaus, wofür das Forum eigentlich gedacht ist.

Altrea wrote:Es gibt hier keinen vorgekauten Code.


Heute ausnahmsweise einmal. Ich wollte es wissen, wie lange ich brauche. Keine 10 Minuten....
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Next

Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 48 guests