Webseitenbau
Home
Site/Index
 
Web Webseitenbau
Google English français  
⬆4. 13. 7 Datei k-senden1.php

4.13.7 Datei k-senden1.php

-

1 Allgemein

-

a) Herkunft der Daten

-

b) Verarbeitung der Variablen

-

c) Kontrollen und Meldungen

-

d) Senden, wenn Kontrollen positiv und E-Mail angegeben ist

-

e) Weiterleiten, auch wenn E-Mail nicht angegeben ist

<?php
...
?>

-

2 Verarbeitung der Variablen für alle Anwendungen

-

a) "Post"-Variablen in "normale" Variablen umwandeln

Prinzip

Code: $... = $_POST ['...'];

Befehl: $k_name = $_POST ['k_name'];

// Variablen umwandeln
$k_name = $_POST ['k_name'];
$k_email = $_POST ['k_email'];
$k_betreff = $_POST ['k_betreff'];
$k_mitteilung = $_POST ['k_mitteilung'];

-

b) Leerzeichen entfernen

Code: trim

Befehl: $k_name = trim($k_name);

// Leerzeichen entfernen
$k_name = trim($k_name);
$k_email = trim($k_email);
$k_betreff = trim($k_betreff);
$k_mitteilung = trim($k_mitteilung);

Grundlagen und Workshops

-

c) Backslash entfernen

Code: stripslashes("Zeichenkette")

Befehl: $k_name = stripslashes($k_name);

// Backslash entfernen
$k_name = stripslashes($k_name);
$k_email = stripslashes($k_email);
$k_betreff = stripslashes($k_betreff);
$k_mitteilung = stripslashes($k_mitteilung);

Grundlagen und Workshops

-

3 Variablen zum Senden vorbereiten

-

a) Variablen, die zum Senden verwendet werden

Zweck

// Alle Variablen zum Senden "s"
$sk_name = $k_name;
$sk_email = $k_email;
$sk_betreff = $k_betreff;
$sk_mitteilung = $k_mitteilung;

-

b) Neue Variable "Absender"

Zweck

// Neue Variable zum senden von Absender
$sk_absender = "$sk_name $sk_email";

-

4 Variablen zur Anzeige vorbereiten

-

a) Variablen, die zur Anzeige verwendet werden

Zweck

// Alle Variablem für Anzeige "a"
$ak_name = $k_name;
$ak_email = $k_email;
$ak_betreff = $k_betreff;
$ak_mitteilung = $k_mitteilung;

-

b) Sonderzeichen umwandeln

Code: htmlentities("Zeichenkette")

Konstanten:

Befehl: $ak_name = htmlentities($ak_name,ENT_QUOTES);

// Sonderzeichen umwandeln
$ak_name = htmlentities($ak_name,ENT_QUOTES);
$ak_email = htmlentities($ak_email,ENT_QUOTES);
$ak_betreff = htmlentities($ak_betreff,ENT_QUOTES);
$ak_mitteilung = htmlentities($ak_mitteilung,ENT_QUOTES);

Grundlagen und Workshops

-

c) Zeilenumbrüche richtig anzeigen

Code: nl2br("Zeichenkette")

Befehl: $ak_mitteilung = nl2br($ak_mitteilung);

// Zeilenumbrüche richtig anzeigen
$ak_mitteilung = nl2br($ak_mitteilung);

Grundlagen und Workshops

-

5 Variablen zur Weiterleitung vorbereiten

-

a) Variablen, die zur Weiterleitung verwendet werden

Zweck

// Alle Variablen zur Weiterleitung "w"
$wk_name = $k_name;
$wk_email = $k_email;
$wk_betreff = $k_betreff;
$wk_mitteilung = $k_mitteilung;

-

b) Variablen, die zur Weiterleitung verwendet werden

Code: htmlentities("Zeichenkette")

Konstanten:

Befehl: $wk_name = htmlentities($wk_name,ENT_QUOTES);

// Sonderzeichen umwandeln
$wk_name = htmlentities($wk_name,ENT_QUOTES);
$wk_email = htmlentities($wk_email,ENT_QUOTES);
$wk_betreff = htmlentities($wk_betreff,ENT_QUOTES);
$wk_mitteilung = htmlentities($wk_mitteilung,ENT_QUOTES);

Grundlagen und Workshops

-

6 Kontrolle der Einträge

-

a) Kontrolle des Feldes "Name"

// Kontrolle ob Name angegeben
if  ($k_name != "" ) {
    $xk_name = true;} else {$xk_name = false;}

// Meldung bei fehlendem Namen
if ( !$xk_name) { 

echo '<h4 style="margin-top:3em">
Ihr Name fehlt</h4>

<p> <span class="sprache">
please indicate your name 
/ donnez votre nom s.v.p. </span></p>

<p>→ Drücken Sie bitte "Zurück"
und geben Sie im Eingabeformuar Ihren Namen an.</p>';

echo '<input type="button" 
value="Zurück / back / retour" 
onClick="history.back()">';
}

-

b) Plausibilität der E-Mail Adresse

// Kontrolle ob E-Mail falsch ist
$leng = strlen($k_email );
$posa = strrpos($k_email, "@");
$posp = strrpos($k_email, ".");

if ( $posp > 4 && $posa > 0 
  && substr_count($k_email,"@")==1 
  && $leng-$posp < 6 && $leng-$posp > 2 
  && $posp-$posa > 2 ) {
	$xk_email = true;}
else { if ( $leng == 0 || $Email=='optional') {
  $xk_email = true;} else { $xk_email = false; } }

// Meldung bei fehlerhafter E-Mail Adresse
// aber mit Checkwort
if ( !$xk_email) { 

echo ' <h4 style="margin-top:3em">
Fehler in der E-Mail Adresse</h4>

<p> <span class="sprache">
error in your e-mail address 
/ erreur dans votre adresse mél</span></p>

<p>→ Drücken Sie bitte "Zurück" 
und kontrollieren Sie im Eingabeformular 
Ihre E-Mail Adresse.</p>';

echo '<input type="button"
  value="Zurück / back / retour" 
  onClick="history.back()">';
}

-

c) Kontrolle des Feldes "Betreff"

// Kontrolle ob der Betreff angegeben wurde
if  ($k_betreff != "" ) {
  $xk_betreff = true;} else {$xk_betreff = false;}

// Meldung bei fehlendem Betreff
if ( !$xk_betreff) { 

echo '<h4 style="margin-top:3em">
Der Betreff fehlt</h4>

<p> <span class="sprache">
the reference is missing 
/ la référence manque</span></p>

<p>→ Drücken Sie bitte "Zurück" 
und ergänzen Sie das Eingabeformular.</p>';

echo '<input type="button" 
value="Zurück / back / retour" 
onClick="history.back()">';
}

-

d) Kontrolle des Feldes "Mitteilung"


// Kontrolle ob eine Mitteilung gemacht wurde
if  ($k_mitteilung != "") {
    $xk_mitteilung = true;} else {$xk_mitteilung = false;}

// Meldung bei fehlender Mitteilung
if ( !$xk_mitteilung) { 

echo '<h4 style="margin-top:3em">
Die Mitteilung fehlt</h4>

<p> <span class="sprache">there is no message 
/ il n′y a pas de message</span></p>

<p>→ Drücken Sie bitte "Zurück" 
und ergänzen Sie das Eingabeformular.</p>';

echo '<input type="button" 
value="Zurück / back / retour" 
onClick="history.back()">';
}

-

e) Kontrolle Kontrolle ob im Feld "E-Mail" ein Eintrag ist


// Kontrolle ob im E-Mail Feld etwas steht
if  ($k_email != "") {
  $yk_email = true;} else {$yk_email = false;}

// Meldung bei leerem E-Mail Feld
if (!$yk_email) { 

echo ' <h4 style="margin-top:3em">
Ihre E-Mail Adresse ist nicht angegeben (fakultativ)</h4>

<p>Ihr Eintrag kann aber auch aufgenommen werden, 
wenn Ihre E-Mail Adresse nicht angeben ist.</p>

<p> <span class="sprache">
your e-mail address is not indicated (optional) 
/ votre adresse mél n′est pas 
indiquée (en option)</span></p>
';

echo ' <input type="button" 
value="Zurück zum Eingabeformular / back to the form 
/ retour au formulaire" onClick="history.back()">
';
}

-

7 Senden, wenn E-Mail angegeben ist

a) Voraussetzungen

if  ( $xk_name && $xk_email && $yk_email 
&& $xk_betreff && $xk_mitteilung ){

b) Das Mail wird dem Empfänger zugestellt

// Mail senden
mail("alfred@brandenberger.eu", "$sk_betreff", 
"$sk_mitteilung", "$sk_absender");

-

8 Anzeige der Mitteilung

// Mitteilung anzeigen
echo " <h3 style='margin-top:3em'>
Sie haben dem Autor folgendes Mail geschickt:</h3>

<table border='1px' cellspacing='1' cellpadding='3'>
<tr>
  <th>Absender</th>
  <td width='350'>$ak_name</td>
</tr>
<tr>
  <th>Ihre E-Mail Adresse</th>
  <td>$ak_email</td>
</tr>
<tr>
  <th>Betreff</th>
  <td>$ak_betreff</td>
</tr>
<tr>
  <th>Mitteilung</th>
  <td>$zak_mitteilung</td>
</tr>
</table>
<h4> - Besten Dank! - </h4> 
";
}
?>

-

9 Kopie an Absender senden

Zweck

Manuelle und nicht automatische Zustellung:

<!-- Kopie senden -->

<?php

if  ( $xk_name && $xk_email && $yk_email 
&& $xk_betreff && $xk_mitteilung && $k_kopie ){

// Mail senden
mail("alfred@brandenberger.eu", 
"Kopie senden an $sk_name betreffend $sk_betreff", 
"$sk_mitteilung", "$sk_absender");

// Mitteilung anzeigen
echo " <h4 style='margin-top:3em'>
Sie werden eine Kopie dieses Mails an Ihre E-Mail 
Adresse erhalten.</h4>
<p>(Die Weiterleitung erfolgt manuell, da mit 
dieser Vorrichtung sonst Spam verschickt werden 
könnte. 
Die Kopie wird also nicht umgehend zugestellt.)
";
}
?>

-

10 Weiterleiten, wenn das Feld "E-Mail" leer ist

-

a) Einlesen der Variablen in ein verstecktes Formular

Beginn des Formulars mit den eingebetteten PHP-Befehlen:

<!-- Variablen in verstecktes Formular einlesen -->

<form action="../kontakt/k-senden2.php" 
method="post">

<input type="hidden" name="wk_name" 
value="<? echo $wk_name ?>">

<input type="hidden" name="wk_email" 
value="<? echo $wk_email ?>">

<input type="hidden" name="wk_betreff" 
value="<? echo $wk_betreff ?>">

<input type="hidden" name="wk_mitteilung" 
value="<? echo $wk_mitteilung ?>">

-

b) Voraussetzungen für die Weiterleitung

<?php
if  ( $xk_name && $xk_email && !$yk_email 
&& $xk_betreff && $xk_mitteilung ){
...

-

c) Anzeige einer "Senden"-Taste

....
echo ' <h2>  Zum Senden</h2>
<h3>  Drücken Sie "Senden":</h3>

<p> <span class="sprache">push the submit button 
/ appuyez sur la touche envoyer</span></p>

<input type="submit" value="Senden / submit / envoyer">';
}

Ende des Formulars mit den eigebetteten PHP-Befehlen:

?>
</form>

-

11 Ganzer Quelltext der Datei k-senden1.php

-

a) Pfad der Datei

Pfad: /kontakt/k-senden1.php

-

b) Quelltext

<?php
/* Allgemeine Variablen Verarbeiten */

// Variablen umwandeln
$k_name = $_POST ['k_name'];
$k_email = $_POST ['k_email'];
$k_betreff = $_POST ['k_betreff'];
$k_mitteilung = $_POST ['k_mitteilung'];
$k_kopie = $_POST ['k_kopie'];

// Leerzeichen entfernen
$k_name = trim($k_name);
$k_email = trim($k_email);
$k_betreff = trim($k_betreff);
$k_mitteilung = trim($k_mitteilung);

// Backslash entfernen
$k_name = stripslashes($k_name);
$k_email = stripslashes($k_email);
$k_betreff = stripslashes($k_betreff);
$k_mitteilung = stripslashes($k_mitteilung);

/* Variablen Zum Senden */

// Alle Variablen zum Senden "s"
$sk_name = $k_name;
$sk_email = $k_email;
$sk_betreff = $k_betreff;
$sk_mitteilung = $k_mitteilung;

// Neue Variable zum senden von Absender
$sk_absender = "$sk_name $sk_email";

/* Variablen für Anzeige */

// Alle Variablen für Anzeige
$ak_name = $k_name;
$ak_email = $k_email;
$ak_betreff = $k_betreff;
$ak_mitteilung = $k_mitteilung;

// Sonderzeichen umwandeln
$ak_name = htmlentities($ak_name,ENT_QUOTES);
$ak_email = htmlentities($ak_email,ENT_QUOTES);
$ak_betreff = htmlentities($ak_betreff,ENT_QUOTES);
$ak_mitteilung = htmlentities($ak_mitteilung,ENT_QUOTES);

// Zeilenumbrüche richtig anzeigen
$ak_mitteilung = nl2br($ak_mitteilung);

/* Variablen zum Weiterleiten */

// Alle Variablen zur Weiterleitung "w"
$wk_name = $k_name;
$wk_email = $k_email;
$wk_betreff = $k_betreff;
$wk_mitteilung = $k_mitteilung;

// Sonderzeichen umwandeln
$wk_name = htmlentities($wk_name,ENT_QUOTES);
$wk_email = htmlentities($wk_email,ENT_QUOTES);
$wk_betreff = htmlentities($wk_betreff,ENT_QUOTES);
$wk_mitteilung = htmlentities($wk_mitteilung,ENT_QUOTES);

/* Kontrollen und Meldungen */

// Kontrolle ob Name angegeben
if  ($k_name != "" ) {
    $xk_name = true;} else {$xk_name = false;}

// Meldung bei fehlendem Namen
if ( !$xk_name) { 

echo '<h4 style="margin-top:3em">
Ihr Name fehlt</h4>

<p> <span class="sprache">
please indicate your name 
/ donnez votre nom s.v.p. </span></p>

<p>→ Drücken Sie bitte "Zurück"
und geben Sie im Eingabeformuar Ihren Namen an.</p>';

echo '<input type="button" 
value="Zurück / back / retour" 
onClick="history.back()">';
}

// Kontrolle ob E-Mail falsch ist
$leng = strlen($k_email );
$posa = strrpos($k_email, "@");
$posp = strrpos($k_email, ".");

if ( $posp > 4 && $posa > 0 
  && substr_count($k_email,"@")==1 
  && $leng-$posp < 6 && $leng-$posp > 2 
  && $posp-$posa > 2 ) {
	$xk_email = true;}
else { if ( $leng == 0 || $Email=='optional') {
  $xk_email = true;} else { $xk_email = false; } }

// Meldung bei fehlerhafter E-Mail Adresse
// aber mit Checkwort
if ( !$xk_email) { 

echo ' <h4 style="margin-top:3em">
Fehler in der E-Mail Adresse</h4>

<p> <span class="sprache">
error in your e-mail address 
/ erreur dans votre adresse mél</span></p>

<p>→ Drücken Sie bitte "Zurück" 
und kontrollieren Sie im Eingabeformular 
Ihre E-Mail Adresse.</p>';

echo '<input type="button"
  value="Zurück / back / retour" 
  onClick="history.back()">';
}

// Kontrolle ob der Betreff angegeben wurde
if  ($k_betreff != "" ) {
  $xk_betreff = true;} else {$xk_betreff = false;}

// Meldung bei fehlendem Betreff
if ( !$xk_betreff) { 

echo '<h4 style="margin-top:3em">
Der Betreff fehlt</h4>

<p> <span class="sprache">
the reference is missing 
/ la référence manque</span></p>

<p>→ Drücken Sie bitte "Zurück" 
und ergänzen Sie das Eingabeformular.</p>';

echo '<input type="button" 
value="Zurück / back / retour" 
onClick="history.back()">';
}

// Kontrolle ob eine Mitteilung gemacht wurde
if  ($k_mitteilung != "") {
    $xk_mitteilung = true;} else {$xk_mitteilung = false;}

// Meldung bei fehlender Mitteilung
if ( !$xk_mitteilung) { 

echo '<h4 style="margin-top:3em">
Die Mitteilung fehlt</h4>

<p> <span class="sprache">there is no message 
/ il n′y a pas de message</span></p>

<p>→ Drücken Sie bitte "Zurück" 
und ergänzen Sie das Eingabeformular.</p>';

echo '<input type="button" 
value="Zurück / back / retour" 
onClick="history.back()">';
}

// Kontrolle ob im E-Mail Feld etwas steht = true
if  ($k_email != "") {
  $yk_email = true;} else {$yk_email = false;}

// Meldung bei leerem E-Mail Feld = false
if (!$yk_email) { 

echo ' <h4 style="margin-top:3em">
Ihre E-Mail Adresse ist nicht angegeben (fakultativ)</h4>

<p>Das Mail kann aber auch gesendet werden, 
wenn Ihre E-Mail Adresse nicht angeben ist.</p>

<p> <span class="sprache">
your e-mail address is not indicated (optional) 
/ votre adresse mél n′est pas 
indiquée (en option)</span></p>
';

echo ' <input type="button" 
value="Zurück zum Eingabeformular 
/ back to the form 
/ retour au formulaire" onClick="history.back()">
';
}

/* Senden und anzeigen, wenn E-Mail angegeben ist */

//Bedingung
if  ( $xk_name && $xk_email && $yk_email 
&& $xk_betreff && $xk_mitteilung ){

// Mail senden
mail("alfred@brandenberger.eu", "$sk_betreff", 
"$sk_mitteilung", "$sk_absender");

// Mitteilung anzeigen
echo " <h3 style='margin-top:3em'>
Sie haben dem Autor folgendes Mail geschickt:</h3>

<table border='1px' cellspacing='1' cellpadding='3'>
<tr>
  <th>Absender</th>
  <td width='350'>$ak_name</td>
</tr>
<tr>
  <th>Ihre E-Mail Adresse</th>
  <td>$ak_email</td>
</tr>
<tr>
  <th>Betreff</th>
  <td>$ak_betreff</td>
</tr>
<tr>
  <th>Mitteilung</th>
  <td>$ak_mitteilung</td>
</tr>
</table>
<h4> - Besten Dank! - </h4> 
";
}

/* Kopie senden */

if  ( $xk_name && $xk_email && $yk_email 
&& $xk_betreff && $xk_mitteilung && $k_kopie ){

// Mail senden
mail("alfred@brandenberger.eu", 
"Kopie senden an $sk_name betreffend $sk_betreff", 
"$sk_mitteilung", "$sk_absender");

// Mitteilung anzeigen
echo " <h4 style='margin-top:3em'>
Sie werden eine Kopie dieses Mails an Ihre E-Mail 
Adresse erhalten.</h4>
<p>(Die Weiterleitung erfolgt manuell, da mit 
dieser Vorrichtung sonst Spam verschickt werden 
könnte. 
Die Kopie wird also nicht umgehend zugestellt.)
";
}
?>

<!-- Weiterleiten, wenn das E-Mail Feld leer ist  -->

<!-- Variablen in verstecktes Formular einlesen -->

<form action="../kontakt/k-senden2.php" method="post">

<input type="hidden" name="wk_name" 
value="<? echo $wk_name ?>">

<input type="hidden" name="wk_email" 
value="<? echo $wk_email ?>">

<input type="hidden" name="wk_betreff" 
value="<? echo $wk_betreff ?>">

<input type="hidden" name="wk_mitteilung" 
value="<? echo $wk_mitteilung ?>">

<!-- Wenn alles richtig ist: zum speichern senden -->

<?php

if  ( $xk_name && $xk_email && !$yk_email 
&& $xk_betreff && $xk_mitteilung ){

echo ' <h2>  Zum Senden</h2>
<h3>  Drücken Sie "Senden":</h3>

<p> <span class="sprache">push the submit button 
/ appuyez sur la touche envoyer</span></p>

<input type="submit" value="Senden / submit / envoyer">';
}
?>
</form>