Einbindung einer PHP Seite per "Include" Befehl klappt nicht

tomhome schrieb am 21.01.2019 um 12:31 Uhr

Liebe Community, ich bitte um Eure Hilfe:

Ich möchte auf meiner Website ein PHP-Kontaktformular einbauen. Die komplette Konfiguration des Formulars ist fertig erstellt und liegt auf meinem Server im Unterverzeichnis "phpcontact". Das Formular ist unter der Adresse "https://meine domain/phpcontact/index.php" aufrufbar.

Nun möchte ich dieses Formular per "PHP-Include Befehl" in meine bestehende Kontaktseite einbauen.
Dazu habe ich mit dem Web Designer 16 meine Kontaktseite gestaltet. Diese habe ich in der Seiten- und Ebenengallerie auch schon als "kontakt.php" benannt (ich hoffe das das so richtig ist).

An der Stelle, an der ich das Formular anzeigen möchte, habe ich nun eine Form (Rechteck) eingefügt. In dessen Webeigenschaften habe ich nun im Platzhaltermenü folgenden Code im Body Teil eingefügt:

<?php
include("https://meine domain/phpcontact/index.php");
?>

Nun lade ich die Seite auf meinen Server hoch. Leider wird aber das Formular nicht angezeigt. An der Stelle des Platzhaltes wird nur mein Seitenhintergrund angezeigt.

PHP wird von meinem Webserver unterstützt.

Habt Ihr eine Idee, was ich falsch mache oder vergessen habe?

Kommentare

marboe schrieb am 21.01.2019 um 14:12 Uhr

Ich persönlich mache es mir einfacher 😃

Ich arbeite nur noch mit Platzhaltern und Iframes. Der Code:

<iframe src='https://meine domain/phpcontact/index.php?sfm_from_iframe=1' frameborder='0' width='100%' height='1320' allowtransparency='true'></iframe>

Da setze deine php-Adresse rein wie oben gezeigt. Die Länge kannst du anpassen oder hier auch 100% eintragen.
Ein Umbenenne der htm-Seite auf seite.php ist damit auch nicht mehr nötig.

Das geht schneller und ist einfacher zu händeln und lässt sich problemlos mit Varianten teilen.
Gruß Marboe

marboe schrieb am 21.01.2019 um 14:22 Uhr

Wenn du es dennoch mit include machen willst, dann wäre in den Body des Platzhalters einzutragen:

<?php echo
include "./phpcontact/index.php" ;?>

Es darf keinerlei Zeichen vor dem "<" sein.

 

im Head des Platzhalters die enstprechenden Anweisungen wie zB (aus einer meiner Seiten)
 

<style>
 /* Formular Stylesheet */
 body, table {
  font-family: Verdana, Sans-Serif;
  font-size: 12px;
  color: #0c092a;
 }
 table {
  margin: Auto;
  border-spacing: 6px;
 }
 th, td {
  padding: 3px;
 }
 label {
  cursor: Pointer;
 }
 input[type="submit"], input[type="button"] {
  color: #ff00fc;
 }
 input[type="text"], textarea {
  color: #e5e5e5;
 }
input[type="email"], textarea {
  color: #e5e5e5;
 }
 .pflichtfeld {
  color: #FFfc00;
  border: 0px;
 }
 .hintergrund {
  color: #E5E5E5;
  background-color: RGBA(12, 9, 42, 0.6);
 }
 .danke, .danke a {
  color: #E5E5E5;
  padding: 10px;
  width: 440px;
  margin: Auto;
  margin-top: 100px;
 } /* Tabelleneffekt: "Transparent" */
 input, textarea, select, .hintergrund {
  background: transparent;
 }
 table {
  background-image: URL(transparentblau.gif);
  background-position: Right;
  background-repeat: No-Repeat;
 }
 </style>

 

Dann allerdings musst du die Seite in .php umbenennen.
Gruß marboe

tomhome schrieb am 21.01.2019 um 16:02 Uhr

Hallo marboe,

Vielen Dank für deine ausführliche Antwort.
Das Einbinden per iFrame funktioniert ohne Probleme. Das Kontaktformular ist allerdings im responsiven Design programmiert, soll sich also automatisch der Browserbreite anpassen. Leider bekomme ich das mit Hilfe deiner Anleitung nicht hin. Ich bin seit Tagen damit beschäftigt. Kennst du eine einfache und möglichst kostenfreie Lösung zur Erstellung eines Kontaktformulares (möglichst mit Captcha-Spamschutz und Datenschutz-Checkbox? Probiert habe ich zum Beispiel die Lösung https://kontaktformular-erstellen.googleseo.de/ bzw. das Angebot von https://www.phpcontact.net/de/

Viele Grüße
Thomas

marboe schrieb am 21.01.2019 um 16:33 Uhr

Ich selbst nutze Simfatic (leider kostenpflichtig). Dieses erzeugt ebenfalls responsiv Formulare welche als php in Iframe allerdings wunderbar funktionieren.

Vielleicht magst du es dir mal angucken? Ich finde es super weil es wirklich alles mitbringt und bezahlbar ist. Gruß marboe

marboe schrieb am 21.01.2019 um 16:38 Uhr

Und natürlich bleibt dir die Möglichkeit deine jetzigen Formulare auf zwei oder drei Breiten zu erstellen, so wie deine Seiten auch gestaltet sein werden.

Die php Formulare lassen sich mobil nach rechts und nach links schieben, falls das nicht automatisch richtig passt. Gruß marboe

tomhome schrieb am 21.01.2019 um 16:41 Uhr

Danke dir, ich werd das mal checken...👍

marboe schrieb am 22.01.2019 um 07:03 Uhr
bzw. das Angebot von https://www.phpcontact.net/de/

Viele Grüße
Thomas

Ich habe mir den Anbieter gerade mal angeguckt, weil ich ihn nicht kannte.
Leider sind die Angaben zum Einbau gut versteckt. Aber einen Hinweis habe ich gefunden:

Das heißt, du hast "nur" die scripts vergessen, die ich dir aus einem meiner Beispiele ja gezeigt hatte für den Head des Platzhalters. Irgendwo müssen sie also zu finden sein.
Du hattest also nur die Hälfte des Einbaus gemacht.
Vielleicht hilft es dir... VG Marboe

tomhome schrieb am 22.01.2019 um 12:58 Uhr

Hallo marboe,

Ich möchte dir noch mal kurz meine Vorgehensweise aufzeigen, vielleicht entdeckst du den Fehler:

Seite auf den Server geladen.

Beim Aufruf im Browser bleibt der Formular Bereich aber leer...

Wie schon erwähnt funktioniert aber das Einfügen per iFrame perfekt. Ich wollte es aber per php include realisieren, weil ich des öfteren gelesen habe, das iFrames nicht mehr sehr zeitgemäß sein sollen...

Viele Grüße

Thomas

 

tomhome schrieb am 22.01.2019 um 13:01 Uhr

Sorry, den Backslash vor der URL im Head Bereich Code habe ich natürlich entfernt...

marboe schrieb am 22.01.2019 um 13:34 Uhr

Ich würde vermuten, dass du den Style des Formulars genau hinter diesem Link findest:

<link rel="stylesheet" href="/https://www.meineDomain.de/phpcontact/templates/metis/css/style.css" type="text/css" />

 

Evtl wird dir auch ein komplettes php-Formular an die Hand gegeben; dieses müsstest du nur teilen in

- <php wie oben in den Body und
- <style in den Head

Aber dafür habe ich / haben wir hier zu wenig Einblick in die Dateien die dir zur Verfügung stehen. Gruß Marboe

BeRo schrieb am 22.01.2019 um 18:29 Uhr

[...] Rechteck als Platzhalter definiert und folgende Codes eingefügt: [...]

In der Einbauanleitung des Entwicklers finden sich Hinweise, die auf einer anderen Seite anders dargestellt werden.
Probier' mal diese Version:

Hier nochmal der "include" Teil, wie er für das von Dir gewählte Template passen sollte:

<?php
  $b4yf_va_template="metis";
  include('phpContact/index.php');
?>

Mit ein bisschen Glück klappt es so... 😎

Zuletzt geändert von BeRo am 22.01.2019, 18:30, insgesamt 1-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

tomhome schrieb am 22.01.2019 um 20:41 Uhr

Hallo BeRo, auch dir vielen Dank für deine Antwort.

Du schreibst, das der Link zur css Datei in den Header der Seite gehört, nicht in den Platzhalter. Wie muss ich diesen einbauen?
Bisher habe ich die Codes wie folgt eingebaut:

Leider wird das Formular so nicht angezeigt...😓

Zuletzt geändert von tomhome am 22.01.2019, 20:44, insgesamt 2-mal geändert.

Meine Filme werden von einer PRAKTICA DVC 10.4 HDMI aufgezeichnet und mit Magix Video deluxe MX Sonderedition bearbeitet.

tomhome schrieb am 22.01.2019 um 20:46 Uhr

...im Body richtigerweise "https"

Zuletzt geändert von tomhome am 22.01.2019, 20:47, insgesamt 1-mal geändert.

Meine Filme werden von einer PRAKTICA DVC 10.4 HDMI aufgezeichnet und mit Magix Video deluxe MX Sonderedition bearbeitet.

marboe schrieb am 22.01.2019 um 21:52 Uhr

Und du hast "meinedomain" durch die richtige Bezeichnung ersetzt?

Vll ist es an der Zeit, dass du deine URL mal mitteilst 😉

Gruß marboe

BeRo schrieb am 22.01.2019 um 22:51 Uhr

[...] Link zur css Datei in den Header der Seite [...] Wie muss ich diesen einbauen? [...]

Fast genauso, wie Du ihn in den HTML Header des Platzhalters eingebaut hast. 😊

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

tomhome schrieb am 23.01.2019 um 16:59 Uhr

Sorry marboe, ich war nicht ganz sicher ob das Veröffentlichen der richtigen Domain im Forum eventuell unerwünscht ist.

Ich habe gerade noch einmal eure Tipps, auch die von BeRo, ausprobiert. Ich habe die Codes wie in den Screenshots in meine Seite eingebaut, leider ohne Erfolg. Hier mal der Link zur Seite:

https://www.deine-werkstatt-leipzig.de/kontakt_test.php


Die "Formular-index.php" welche per php-Include geladen werden soll liegt im Unterordner /phpcontact.
Die zu ladende "style.css" Datei liegt im Unterordner /phpcontact/templates/metis/css
...so wie es ja im Code zu sehen ist.
Vielleicht könnt Ihr euch den Code meiner Seite mal anschauen..

An dieser Stelle noch mal recht vielen Dank für eure Hilfe! 😃

Zuletzt geändert von tomhome am 23.01.2019, 17:04, insgesamt 1-mal geändert.

Meine Filme werden von einer PRAKTICA DVC 10.4 HDMI aufgezeichnet und mit Magix Video deluxe MX Sonderedition bearbeitet.

BeRo schrieb am 23.01.2019 um 17:35 Uhr

[...] Vielleicht könnt Ihr euch den Code meiner Seite mal anschauen.. [...]

Kein Problem, aber PHP Code wird nur vom Webserver "gelesen" und verarbeitet; ausgeliefert wird er nicht und das ist gut so. 🤓

Aber auch ohne Quellcode Analyse lässt sich vermuten, wo das Problem liegt. Sehr wahrscheinlich bist Du ein Opfer der etwas eigenwilligen URL/Pfad Behandlung des Webservers, in Verbindung mit den PHP Scriptvorgaben.
Versuch' mal die URL/Pfadangaben von absolut- auf relativ umzustellen, dann sollte es klappen, denn prinzipiell hast Du bei der Anlage der Referenzangaben alles richtig gemacht.

Ändere die Pfadangabe zur CSS Datei mal so, wie unten gezeigt:

<link rel="stylesheet" href="../phpcontact/templates/metis/css/style.css" type="text/css"/>

Die PHP include Anweisung sollte dann so aussehen:

<?php
   $b4yf_va_template="metis";
   include("../phpcontact/index.php");
?>

Es müsste mit dem Teufel zugehen, wenn das Kontaktformular danach nicht fehlerfrei zu sehen wäre... 👹

Viel Erfolg

 

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

tomhome schrieb am 23.01.2019 um 17:48 Uhr

Hi, BeRo

Habe die Codes oben kopiert und eingebaut. Leider immer noch ohne Erfolg. 😵

Zuletzt geändert von tomhome am 23.01.2019, 17:48, insgesamt 1-mal geändert.

Meine Filme werden von einer PRAKTICA DVC 10.4 HDMI aufgezeichnet und mit Magix Video deluxe MX Sonderedition bearbeitet.

BeRo schrieb am 23.01.2019 um 18:11 Uhr

[...] Leider immer noch ohne Erfolg [...]

Ich hätte den Beelzebub nicht beschwören sollen. 😇

Das Problem wird IMHO definitiv von der für den Webserver unbrauchbaren Pfadangabe verursacht. 😠
An der Stelle kannst Du jetzt ein bisschen experimentieren. Bei der Referenz für die CSS Datei z. B. so:

<link rel="stylesheet" href="./phpcontact/templates/metis/css/style.css" type="text/css"/>

oder so:

<link rel="stylesheet" href="phpcontact/templates/metis/css/style.css" type="text/css"/>

Die include Anweisung kann dann entsprechend so aussehen:

<?php
   $b4yf_va_template="metis";
   include("./phpcontact/index.php");
?>

oder so:

<?php
   $b4yf_va_template="metis";
   include("phpcontact/index.php");
?>

Wenn das auch nicht hilft, musst Du Dir mal von FileZilla zeigen lassen, wie die korrekte Pfadangabe aussieht

Da kann dann sowas sichtbar werden:

ftp://bero@bero.bplaced.net/www/contact/phpcontact/index.php

Aus der Pfadangabe übernimmst Du den Teil nach der Domain und setzt ihn z. B. so ein:

<?php
   $b4yf_va_template="metis";
   include("../www/contact/phpcontact/index.php");
?>

Natürlich wird der Pfad bei Dir anders aussehen. Lass' Dich also nicht verwirren, von dem Beispiel. Da siehst Du noch ein zusätzliches Unterverzeichnis "contact" das so bei Dir nicht existiert...

Neuer Versuch?

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

tomhome schrieb am 23.01.2019 um 18:12 Uhr

ICH HABS!

Habe jetzt noch mal mit den Pfadangaben gespielt:

<?php
   $b4yf_va_template="metis";
   include("phpcontact/index.php");
?>
<link rel="stylesheet" href="phpcontact/templates/metis/css/style.css" type="text/css"/>

Jetzt wird das Formular angezeigt! Das war ja eine schwere Geburt! Danke für eure sehr sehr hilfreichen Tipps!
Jetzt bin ich happy...😀😀😀

BeRo schrieb am 23.01.2019 um 18:33 Uhr

Die ultimative Lösung hatte ich Dir aber auch schon hier und hier vorgeschlagen.. 😜

Aber, sei's drum, gerne eine Gratulation zum "geretteten Feierabend" 👏 👏

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

tomhome schrieb am 23.01.2019 um 18:37 Uhr

Ja richtig BeRo, nur habe ich an dieser Stelle leider immer noch mit den absoluten Pfadangaben gearbeitet, aber du weißt ja, wer lesen kann ist klar im Vorteil...😂

tomhome schrieb am 24.01.2019 um 16:35 Uhr

Hallo, ich schon wieder! Nachdem ich mich gestern riesig darüber gefreut habe, das das Formular nun endlich über php-include eingebunden werden konnte, efolgte kurz darauf die Ernüchterung 😱

Das Formular wird nun auf meiner Seite angezeigt, nun aber mit folgenden Fehlern:

Ich habe meine Kontaktseite in zwei Varianten erstellt - einmal für Desktop Monitore in der Breite 1120px und eine Variante für Smartphones in der Breite von 400 Pixeln.

In der Desktop-Version wird das Formular zwar richtig dargestellt, leider funktioniert aber Das Captcha Feld nicht. Der kleine "Reload-Button" für den Captcha Code wird nicht angezeigt und der eingegebene Code wird auch nicht beim Absenden akzeptiert.

In der schmaleren Seitenvariante wird mein Formular nun wie im folgendem Screenshot angezeigt:

Beim Einbinden per iFrame funktionierte das Formular problemlos. Ich habe das Formular auch noch einmal komplett neu auf den Server aufgesetzt. Vielleicht hat jemand von euch eine Idee, wo die Ursache zu finden ist.

Viele Grüße
Thomas

BeRo schrieb am 24.01.2019 um 22:54 Uhr

[...] leider funktioniert aber Das Captcha Feld nicht. [...]

Das basiert auf einem Programmierfehler, den die Entwickler des Anbieters gemacht haben... 😝
In der Datei "formular.tpl.htm" ist Zeile 136 ein falsches "i" Tag gelandet.

<i class="fa fa-refresh" aria-hidden="true"></i>

Richtigerweise müsste da ein "img" Tag stehen...

<img src="{url}templates/{template}/images/reload.png" alt="Logo" width="20" height="20" />

Damit der Fehler perfekt funktioniert, hat man natürlich auch "vergessen" das passende Image in das Image Verzeichnis zu legen. 👎


Die o. a. Korrektur in der Datei "formular.tpl.htm" kannst Du sicher schnell selbst vornehmen. Die Datei findest Du für das Template "metis" im Verzeichnis "c:/.../.../phpcontact/templates/metis/htmls/formular.tpl.htm".

Das fehlende Image "reload.png" kopierst Du am besten aus dem Template "Default", aus dem Verzeichnis "c:/.../.../phpcontact/templates/Default/images/reload.png" oder Du kopierst es direkt hier aus dem Kommentar. 😊
Solltest Du das Template "Default" nicht haben, kannst Du es kostenfrei von der Homepage des Anbieters herunterladen...

[...] In der schmaleren Seitenvariante wird mein Formular nun wie im folgendem Screenshot angezeigt: [...]

Das ist ein Kardinalproblem, das der WD immer dann hat, wenn Script gesteuerte Widgets zum Einsatz kommen.
Da alle Varianten im WD in einer einzigen HTML Datei angelegt werden, kommt es schnell zu Unverträglichkeiten bei der Ausführungen von z. B. JS Funktionen, weil gleiche Variable und/oder IDs nun mal nicht mehrfach in einer Anwendung zugewiesen werden können.

Abhilfe:
In Deinem "Fall" kannst Du versuchen, eine 2. Installation des Kontaktformulars in einem neuen "phpcontact" Verzeichnis auf dem PC vorzunehmen.
Im Platzhalter der mobilen Variante referenzierst Du dann ausschließlich die Dateien, die in dem neu angelegten Verzeichnis liegen.
Ich hab's nicht getestet, es sollte aber funktionieren...

Viel Erfolg 👍

Zuletzt geändert von BeRo am 24.01.2019, 23:06, insgesamt 2-mal geändert.

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓