0

カスタムビルドの連絡先フォームの process.php 内から wp-blog-header.php を要求しようとしています。しかし、そうすると、メッセージはもう送信されません。固定パスと相対パスで試しました。唯一の違いは、固定 URL では成功メッセージが返されるが、メッセージが届かないことです。これが process.php です。

    <?php if( isset($_POST) ){

        require('http://www.bastards-design.de/sebastian/wp-blog-header.php');

        //form validation vars
        $formok = true;
        $errors = array();

        //sumbission data
        $ipaddress = $_SERVER['REMOTE_ADDR'];
        $date = date('d.m.Y');
        $time = date('H:i');

        //form data
        $name = $_POST['name']; 
        $email = $_POST['email'];
        $website = $_POST['website'];
        $enquiry = $_POST['enquiry'];
        $message = $_POST['message'];

        $receiver = $_POST['receiver'];
        $sender = "Niemand";// get_option('admin_email');

        if(empty($name)){
            $formok = false;
            $errors[] = "Sie haben keinen Namen angegeben.";
        }

        if(empty($email)){
            $formok = false;
            $errors[] = "Sie haben keine Emailadresse angegeben.";
        //validate email address
        }elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
            $formok = false;
            $errors[] = "Sie haben keine gültige Emailadresse angegeben.";
        }

        if(empty($message)){
            $formok = false;
            $errors[] = "Das Nachrichtenfeld ist leer.";
        }
        elseif(strlen($message) < 20){
            $formok = false;
            $errors[] = "Ihre Nachricht muss mindestens 20 Zeichen enthalten.";
        }

        if($formok){
            $headers = "From: {$email}" . "\r\n";
            $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

            $emailbody = "<p><strong>Name: </strong> {$name} </p>
                          <p><strong>Website: </strong> {$website} </p>
                          <p><strong>Nachricht: </strong> {$message} </p>
                          <p>Diese Nachricht wurde am {$date} um {$time} über {$sender} gesendet.</p>";

            if($receiver){
                mail($receiver,"Anfrage ".$name,$emailbody,$headers);
            }
            else{
                mail('Sebastian.Starke1@googlemail.com',"Error",$emailbody,$headers);
            }
        }

        //what we need to return back to our form
        $returndata = array(
            'posted_form_data' => array(
                'name' => $name,
                'email' => $email,
                'website' => $website,
                'enquiry' => $enquiry,
                'message' => $message
            ),
            'form_ok' => $formok,
            'errors' => $errors
        );

        //if this is not an ajax request
        if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest'){
            //set session variables
            session_start();
            $_SESSION['cf_returndata'] = $returndata;

            //redirect back to form
            header('location: ' . $_SERVER['HTTP_REFERER']);
        }
    }
4

2 に答える 2

2

ところで、worpdressコア(+テーマ関数)を含めたい場合は、ユーザーにとってより良いです:

require('/wp-load.php');

ではない

require('/wp-blog-header.php');
于 2014-09-19T09:08:01.997 に答える