Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 18.09.2012, 22:53
Hook Hook ist offline
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 14.09.2009
Beiträge: 88
Hook befindet sich auf einem aufstrebenden Ast
Standard

Hi David,

der Code steht im Seitentemplate selbst drin. Das Formular ruf sich selber auf (Affenformular):
PHP-Code:
<form action="<?php echo $_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING']; ?>" method="post" enctype="multipart/form-data" accept-charset="<?php echo CHARSET?>">
Das Seitentemplate ist eigentlich die index.php des Template, ergänzt um den Formmailer.

Hier mal der komplette Code:
PHP-Code:
<?php 
/*
Template Name: Kontakt-Template
*/
wp_get_header(); ?>
<div id="pbody">
    <div id="content">
    <?php if (have_posts()) : ?>
        <?php while (have_posts()) : the_post(); ?>
            

<div class="posttop"><div class="date"><?php the_time('j M '?></div></div>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<div class="ptitle"><h2>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2></div>
            <div class="entry">
<?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>
<?php
//****************************************************
// Hier beginnt die Auswertung des Kontaktformulares
//****************************************************
define ('MAILTO'"meine@adresse.eu"); // Empfänger hier eintragen
define ('MAILFROM'"Siebensteins Taktiken"); // ggfls. Absender hier eintragen
define ('CHARSET'"UTF8"); // Zeichenkodierung ggfls. anpassen
$Pflichtfelder = array('Name','Email','Nachricht'); // ggfls. weitere Pflichtfelder angeben

//Ab hier braucht nur etwas geändert werden, wenn das Formular angepasst werden soll   
$mail_header 'Content-Type: text/plain; charset='.CHARSET;
$mail_body "";
if(
MAILFROM$mail_body .= chr(13).chr(10).'Von: '.MAILFROM;
$mail_body .= print_r($_POST,true);
     


if(
$Formular_abgeschickt = !empty($_POST)) {
  
$Formular_leer true
  
set_magic_quotes_runtime(0);
  
$_POST array_map('Formular_Daten'$_POST);
}
function 
Formular_Daten($val) {
  global 
$Formular_leer;
  if(
is_array($val)) return array_map('Formular_Daten'$val);
  if(
get_magic_quotes_gpc()) $val stripslashes($val);
  if(
$val trim($val)) $Formular_leer false;
  return 
$val;
}

function 
Formular_Pflichtfelder() {
  global 
$Pflichtfelder;
       
$Fehler '';
       foreach (
$Pflichtfelder as $Feld) {
         
$key str_replace(' ','_',$Feld);
         if(!(isset(
$_POST[$key]) && trim($_POST[$key]))) {
           if(
$Fehler$Fehler .= '<br />';
           
$Fehler .= 'Pflichtfeld "' $Feld '" nicht ausgefüllt.';
         }
       }
  return 
$Fehler;
}

function 
Formular_neu($log='.htPOSTdata.txt') {
  if(
file_exists($log) && is_readable($log)
   && 
file_get_contents($log) == print_r($_POST,true))
  return 
false;
  if(
$handle=@fopen($log'w')) {
    
fwrite($handleprint_r($_POST,true)); fclose($handle);
  }
  return 
true;
}

function 
checkEmail($adr) {
  
$regEx '^([^\s@,:"<>]+)@([^\s@,:"<>]+\.[^\s@,:"<>.\d]{2,}|(\d{1,3}\.){3}\d{1,3})$';
  return (
preg_match("/$regEx/",$adr,$part)) ? $part false;
}

function 
Formular_Check() {
  global 
$Formular_leer;
  if(
$Formular_leer$Fehler 'Keine Daten eingetragen.';
  elseif(!empty(
$_POST['Mail'])) $Fehler 'Die Spam-Falle wurde ausgefüllt!';  //Fehlerausgabe wenn das Feld "Mail" (Bot-Falle) ausgefüllt ist
  
elseif($_FILES['anhang']['size'] > 1024000$Fehler 'Der Dateianhang ist zu groß!'//Fehlerausgabe wenn der Dateianhang größer als 1MB ist
  
elseif(!$Fehler Formular_Pflichtfelder()) {
    if(!
checkEmail($_POST['eMail'])) $Fehler 'E-Mail fehlerhaft.';
    elseif(!
Formular_neu()) $Fehler 'Nachricht war bereits verschickt.';
  }
  return 
$Fehler;
}

function 
Formular_Eingabe($Feldname$def='') {
  if(!empty(
$_POST[$Feldname])) echo htmlspecialchars($_POST[$Feldname]);
  else echo 
$def;
}
?>
<!-- Ab hier kommt er HTML-Code -->
<form action="<?php echo $_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING']; ?>" method="post" enctype="multipart/form-data" accept-charset="<?php echo CHARSET?>">
<fieldset>
<legend>Kontaktformular</legend>
<div class="left">
<p><label for="Name">Ihr Name <span>*</span>:</label><br /><input name="Name" id="Name" size="66" value="<?php Formular_Eingabe('Name'); ?>" /></p>
<p><label for="eMail">Ihre Emailadresse <span>*</span>:</label><br /><input name="eMail" id="eMail" size="66" value="<?php Formular_Eingabe('eMail'); ?>" /></p>
</div>    
<p><label for="Nachricht">Nachricht <span>*</span>:</label><br /><textarea name="Nachricht" id="Nachricht" rows="8" cols="50"><?php Formular_Eingabe('Nachricht'); ?></textarea></p>
<p id="bot">   <!-- Spam-Bot-Falle -->
<label for="Mail" style="display: none;">Mail*:</label><input name="Mail" id="Mail" size="66" value="" style="display: none;" /></p>
<h3>Bitte beachten!</h3>
<p class="bemerkung">Alle mit einem  "<span>*</span>"  versehenen Felder sind Pflichtfelder und müssen ausgefüllt werden.</p>            
<?php 
if($Formular_abgeschickt) { ?>
<div id="status">
<p>Formularstatus:</p>
<?php                   
if($Formular_abgeschickt) {
if(
$Formular_Fehler Formular_Check())
echo 
'<p class="Meldung" id="Fehler">',$Formular_Fehler,'</p>';
else {
if(@
mail(MAILTO"Nachricht von meiner Website"$mail_body$mail_header))
echo 
'<p class="Meldung" id="OK">Nachricht verschickt.</p>';
else echo 
'<p class="Meldung" id="Fehler">Server-Fehler !</p>';
}
}               
?>
</div>
<?php ?>
<p id="senden"><input type="submit"  id="submit" value="abschicken" style="width: 80px;"/></p>
</fieldset>
</form>
<!-- Ende des Kontaktformulares -->

</div>
<p class="postmetadata">Posted in <?php the_category(', '?> </p><div class="compost"><?php comments_popup_link('0''1''%'); ?></div>

</div>
        <?php endwhile; ?>
        <div class="navigation">

<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } 
            else { 
?>

            <div class="alignleft"><?php next_posts_link('&laquo; Older Entries'?></div>
            <div class="alignright"><?php previous_posts_link('Newer Entries &raquo;'?></div>
                <?php ?>

        </div>
    <?php else : ?>
        <?php include(TEMPLATEPATH."/404.php");?>
          <?php endif; ?>
        
</div>
 <?php include(TEMPLATEPATH."/s2.php");?>
 <?php include(TEMPLATEPATH."/s1.php");?>
</div>
<?php wp_get_footer(); ?>
Es stehen noch einige Sachen drin, die ich bisher nur mit CSS ausblende und im Formmailer-Code sind auch noch Sachen drin, die ich hier nicht brauche, die aber auch nicht stören sollten.

Mein Problem ist, dass ich noch nie etwas speziell für WP programmiert habe und keine OoP behersche.
Ich hatte einfach nach einer Möglichkeit eigenen PHP-Code in WP einzubinden bei Google gesucht und den Hinweis zum Seitentemplate gefunden und versucht umzusetzten.

Peter
Mit Zitat antworten