30.05.2015, 19:14
Hallo Markus,
Du kannst in PHP-Dateien auch HTML verwenden. Das HTML wird dann, so wie es ist, vom Server an den Browser weitergeleitet.
Das PHP im Dokument, also das was zwischen „<?php“ und „?>“ steht wird vom PHP-Parser des Servers in HTML (und oder Javascript, CSS usw.) übersetzt un dann an den Browser weitergeleitet. Im Browser kommt also nur HTML an, und der formt dann daraus die Seite.
PHP-Gestaltungsbefehle sind mir nicht bekannt. Das wäre aber auch doppelt gemoppelt denn zum Gestalten gibt es ja schon CSS.
Der Inhalt der PHP-Datei, die ich in den IFrame geladen habe sieht so aus:
[HTML]
<?php header('Content-Type: text/html; charset=utf-8'); /* AN OBERSTER STELLE BELASSEN, WENN DU KEIN UTF-8 NUTZT, LÖSCHEN! */ ?>
<!-- Hier kann der Inhalt deiner Seite vor das Kontaktformular platziert werden -->
<html>
<head>
<style type="text/css">
body{
font-family:Arial, Helvetica, sans-serif;
}
textarea{
font-family:Arial, Helvetica, sans-serif;
height: 220px;
width: 250px;
}
input {
font-family: Arial, Helvetica, sans-serif;
height: 22px; width: 250px;
padding: 3px;
}
#Sendeknopf{
font-family: Arial, Helvetica, sans-serif;
height: 32px; width: 50px;
padding: 3px;
}
#Formularrahmen{
width: 360px;
border:1px solid black;
background-color:cornsilk;
margin-left:auto;
margin-right:auto;
padding:10px;
}
</style>
</head>
<body>
<div id="Formularrahmen">
<?php
/* http://www-coding.de/individuelles-k...aptcha-in-php/ (MEHR INFORMATIONEN UND ANLEITUNG)
*
* [VERSION OHNE CAPTCHA]
*
* Dieser 1. Teil kann angepasst werden, um die Formularfelder zu beeinflussen ($fields)
* Außerdem solltest Du in $adminMail deine E-Mail-Adresse speichern
* $formTitle beinhaltet die Überschrift des Formulars
* In $msgInfo ist der Hinweistext gespeichert, der angezeigt werden soll
* $msgError wird angezeigt, wenn nicht alle Pflichtfelder ausgefüllt wurden
* $msgSent hingegen beinhaltet eine Erfolgsmeldung, wenn die Anfrage verschickt wurde
*/
$adminMail = 'markus@xyz.de';
$formTitle = '';
$msgInfo = '';
$msgError = 'Sorry, something went wrong. Please try again!';
$msgSent = 'Message successfully send!';
$fields = array (
// 'Feldname' => Typ, Pflichtfeld?, Ergänzungen (z.B. bei select-Feld)
'Name' => array('text', true),
'E-Mail' => array('text', true),
'About' => array('text', false),
'Message' => array('textarea', true),
);
/* Funktion um aus den Feldnamen eine URL-Form zu erstellen (AB HIER BITTE NUR NOCH EVENTUELLE TEXTE ANPASSEN) */
function field2url($fieldname) {
return "f_".preg_replace('/([^a-z0-9-_]+)/', '', strtolower($fieldname));
}
/* Ausgabe des Formulars */
if (isset($_POST['send'])) {
// 2. Eingaben prüfen //
$mailSubject = 'Nachricht über das Kontaktformular';
$mailText = "Das Kontaktformular deiner Website wurde dazu verwendet, Dir diese Nachricht zukommen zulassen.\r\n\r\n";
$mailHeader = "From: kontaktformular@".$_SERVER['HTTP_HOST']."\r\n"."Content-type: text/plain; charset=utf-8"."\r\n";
// Einzelne Felder auslesen //
foreach ($fields AS $name => $settings) {
if ( !( !$settings[1] || ( $settings[1] && isset($_POST[field2url($name)]) && $_POST[field2url($name)] != '' ) ) ) {
// Pflichtfeld nicht ausgefüllt => Abbruch //
$sent = false;
break;
} else if ($_POST[field2url($name)] != '') {
// Inhalt (wenn nicht leer) in die E-Mail schreiben //
$mailText .= $name.": ".$_POST[field2url($name)]."\r\n";
}
}
// Kurzer Spam-Check //
if (isset($_POST['email']) && $_POST['email'] != '') {
// Bot => Abbruch //
$sent = false;
}
if (!isset($sent)) {
// Nach erfolgreicher Überprüfung E-Mail verschicken //
mail($adminMail, $mailSubject, $mailText, $mailHeader);
echo "<h1>".$formTitle."</h1>" .
"<p>".$msgSent."</p>";
$sent = true;
}
} else
$sent = false;
if (!$sent) {
// 3. Formular ausgeben (Beginn des Formulars) //
echo "<h1>".$formTitle."</h1>" .
"<p>".$msgInfo."</p>" .
((isset($_POST['send'])) ? $msgError : '') .
"<form action=\"?".$_SERVER['QUERY_STRING']."\" method=\"POST\">" .
'<table>';
// Felder auslesen //
foreach ($fields AS $name => $settings) {
// Ausgabe je nach Typ //
switch ($settings[0]) {
case 'select':
// Select-Feld //
echo "<tr><td>".$name.":".(($settings[1]) ? ' (*)' : '')."</td><td><select name=\"".field2url($name)."\">";
// Select-Felder auslesen //
foreach ($settings[2] AS $f) {
echo "<option".((isset($_POST[field2url($name)]) && $_POST[field2url($name)] == $f) ? ' selected' : '').">".$f."</option>";
}
// Ende des Select-Feldes //
echo '</select></td></tr>';
break;
case 'text':
// Einfaches Text-Feld //
echo "<tr><td>".$name.":".(($settings[1]) ? ' (*)' : '')."</td><td><input type=\"text\" name=\"".field2url($name)."\" value=\"".((isset($_POST[field2url($name)])) ? htmlspecialchars($_POST[field2url($name)]) : '')."\" /></td></tr>";
break;
case 'textarea':
// Mehrzeiliges Textfeld //
echo "<tr><td>".$name.":".(($settings[1]) ? ' (*)' : '')."</td><td><textarea rows='6' cols='40' name=\"".field2url($name)."\">".((isset($_POST[field2url($name)])) ? htmlspecialchars($_POST[field2url($name)]) : '')."</textarea></td></tr>";
break;
case 'checkbox':
// Checkbox //
echo "<tr><td>".$name.":".(($settings[1]) ? ' (*)' : '')."</td><td><label><input type=\"checkbox\" name=\"".field2url($name)."\" value=\"gesetzt\" ".((isset($_POST[field2url($name)]) || $setttings[1]) ? 'checked ' : '')."/> ".((isset($settings[2])) ? $settings[2] : '')."</td></label></tr>";
break;
}
}
// Formular-Ausgabe abschließen //
echo '</table>' .
'<input type="text" name="email" style="display:none;" />' .
'<input type="hidden" name="send" value=1 />' .
'<input id="Sendeknopf" type="submit" value="Send" />'.
'</form>';
}
?>
</div>
</body>
</html>
[/HTML]
Das ist genau der Code den Du hier eingestellt hast, nur durch ein paar HTML- und CSS-Zeilen erweitert.
Auf Deine anderen Fragen werde ich morgen antworten. Jetzt muss ich leider weg.
Gruß
Koter
MarSch schrieb:Ich habe mir das jetzt mal genauer angesehen, der CSS Code muss ja in ein HTML Dokument, der wirkt dann ja nicht auf die Textzeilen des PHP Dokumentes das über das HTML Dokument in einen iframe geladen wird...
Du kannst in PHP-Dateien auch HTML verwenden. Das HTML wird dann, so wie es ist, vom Server an den Browser weitergeleitet.
Das PHP im Dokument, also das was zwischen „<?php“ und „?>“ steht wird vom PHP-Parser des Servers in HTML (und oder Javascript, CSS usw.) übersetzt un dann an den Browser weitergeleitet. Im Browser kommt also nur HTML an, und der formt dann daraus die Seite.
MarSch schrieb:Der PHP Code läuft auch nicht wenn ich ihn direkt im HTML Dokument ausführe, habe ich probieret, du sagtest ja auch das da bestimmte Funktionen vom Server/Anbieter her zugelassen sein müssen...
Ich müßte jetzt PHP-Gestaltungsbefehle im PHP Dokument verwenden, oder?
PHP-Gestaltungsbefehle sind mir nicht bekannt. Das wäre aber auch doppelt gemoppelt denn zum Gestalten gibt es ja schon CSS.
Der Inhalt der PHP-Datei, die ich in den IFrame geladen habe sieht so aus:
[HTML]
<?php header('Content-Type: text/html; charset=utf-8'); /* AN OBERSTER STELLE BELASSEN, WENN DU KEIN UTF-8 NUTZT, LÖSCHEN! */ ?>
<!-- Hier kann der Inhalt deiner Seite vor das Kontaktformular platziert werden -->
<html>
<head>
<style type="text/css">
body{
font-family:Arial, Helvetica, sans-serif;
}
textarea{
font-family:Arial, Helvetica, sans-serif;
height: 220px;
width: 250px;
}
input {
font-family: Arial, Helvetica, sans-serif;
height: 22px; width: 250px;
padding: 3px;
}
#Sendeknopf{
font-family: Arial, Helvetica, sans-serif;
height: 32px; width: 50px;
padding: 3px;
}
#Formularrahmen{
width: 360px;
border:1px solid black;
background-color:cornsilk;
margin-left:auto;
margin-right:auto;
padding:10px;
}
</style>
</head>
<body>
<div id="Formularrahmen">
<?php
/* http://www-coding.de/individuelles-k...aptcha-in-php/ (MEHR INFORMATIONEN UND ANLEITUNG)
*
* [VERSION OHNE CAPTCHA]
*
* Dieser 1. Teil kann angepasst werden, um die Formularfelder zu beeinflussen ($fields)
* Außerdem solltest Du in $adminMail deine E-Mail-Adresse speichern
* $formTitle beinhaltet die Überschrift des Formulars
* In $msgInfo ist der Hinweistext gespeichert, der angezeigt werden soll
* $msgError wird angezeigt, wenn nicht alle Pflichtfelder ausgefüllt wurden
* $msgSent hingegen beinhaltet eine Erfolgsmeldung, wenn die Anfrage verschickt wurde
*/
$adminMail = 'markus@xyz.de';
$formTitle = '';
$msgInfo = '';
$msgError = 'Sorry, something went wrong. Please try again!';
$msgSent = 'Message successfully send!';
$fields = array (
// 'Feldname' => Typ, Pflichtfeld?, Ergänzungen (z.B. bei select-Feld)
'Name' => array('text', true),
'E-Mail' => array('text', true),
'About' => array('text', false),
'Message' => array('textarea', true),
);
/* Funktion um aus den Feldnamen eine URL-Form zu erstellen (AB HIER BITTE NUR NOCH EVENTUELLE TEXTE ANPASSEN) */
function field2url($fieldname) {
return "f_".preg_replace('/([^a-z0-9-_]+)/', '', strtolower($fieldname));
}
/* Ausgabe des Formulars */
if (isset($_POST['send'])) {
// 2. Eingaben prüfen //
$mailSubject = 'Nachricht über das Kontaktformular';
$mailText = "Das Kontaktformular deiner Website wurde dazu verwendet, Dir diese Nachricht zukommen zulassen.\r\n\r\n";
$mailHeader = "From: kontaktformular@".$_SERVER['HTTP_HOST']."\r\n"."Content-type: text/plain; charset=utf-8"."\r\n";
// Einzelne Felder auslesen //
foreach ($fields AS $name => $settings) {
if ( !( !$settings[1] || ( $settings[1] && isset($_POST[field2url($name)]) && $_POST[field2url($name)] != '' ) ) ) {
// Pflichtfeld nicht ausgefüllt => Abbruch //
$sent = false;
break;
} else if ($_POST[field2url($name)] != '') {
// Inhalt (wenn nicht leer) in die E-Mail schreiben //
$mailText .= $name.": ".$_POST[field2url($name)]."\r\n";
}
}
// Kurzer Spam-Check //
if (isset($_POST['email']) && $_POST['email'] != '') {
// Bot => Abbruch //
$sent = false;
}
if (!isset($sent)) {
// Nach erfolgreicher Überprüfung E-Mail verschicken //
mail($adminMail, $mailSubject, $mailText, $mailHeader);
echo "<h1>".$formTitle."</h1>" .
"<p>".$msgSent."</p>";
$sent = true;
}
} else
$sent = false;
if (!$sent) {
// 3. Formular ausgeben (Beginn des Formulars) //
echo "<h1>".$formTitle."</h1>" .
"<p>".$msgInfo."</p>" .
((isset($_POST['send'])) ? $msgError : '') .
"<form action=\"?".$_SERVER['QUERY_STRING']."\" method=\"POST\">" .
'<table>';
// Felder auslesen //
foreach ($fields AS $name => $settings) {
// Ausgabe je nach Typ //
switch ($settings[0]) {
case 'select':
// Select-Feld //
echo "<tr><td>".$name.":".(($settings[1]) ? ' (*)' : '')."</td><td><select name=\"".field2url($name)."\">";
// Select-Felder auslesen //
foreach ($settings[2] AS $f) {
echo "<option".((isset($_POST[field2url($name)]) && $_POST[field2url($name)] == $f) ? ' selected' : '').">".$f."</option>";
}
// Ende des Select-Feldes //
echo '</select></td></tr>';
break;
case 'text':
// Einfaches Text-Feld //
echo "<tr><td>".$name.":".(($settings[1]) ? ' (*)' : '')."</td><td><input type=\"text\" name=\"".field2url($name)."\" value=\"".((isset($_POST[field2url($name)])) ? htmlspecialchars($_POST[field2url($name)]) : '')."\" /></td></tr>";
break;
case 'textarea':
// Mehrzeiliges Textfeld //
echo "<tr><td>".$name.":".(($settings[1]) ? ' (*)' : '')."</td><td><textarea rows='6' cols='40' name=\"".field2url($name)."\">".((isset($_POST[field2url($name)])) ? htmlspecialchars($_POST[field2url($name)]) : '')."</textarea></td></tr>";
break;
case 'checkbox':
// Checkbox //
echo "<tr><td>".$name.":".(($settings[1]) ? ' (*)' : '')."</td><td><label><input type=\"checkbox\" name=\"".field2url($name)."\" value=\"gesetzt\" ".((isset($_POST[field2url($name)]) || $setttings[1]) ? 'checked ' : '')."/> ".((isset($settings[2])) ? $settings[2] : '')."</td></label></tr>";
break;
}
}
// Formular-Ausgabe abschließen //
echo '</table>' .
'<input type="text" name="email" style="display:none;" />' .
'<input type="hidden" name="send" value=1 />' .
'<input id="Sendeknopf" type="submit" value="Send" />'.
'</form>';
}
?>
</div>
</body>
</html>
[/HTML]
Das ist genau der Code den Du hier eingestellt hast, nur durch ein paar HTML- und CSS-Zeilen erweitert.
Auf Deine anderen Fragen werde ich morgen antworten. Jetzt muss ich leider weg.
Gruß
Koter