2016-08-10 17 views
0

私はこの問題で私の知恵の終わりです(私は思います)。私は何が間違っているのか分かりませんし、そこになければならないことはすべてありますが、これはまだ動作していません。PHPの投稿データが送信されていません

私はさまざまなフォームとPHPメールスクリプトを使用しましたが、何も動作していないようです。電子メールは送信されていますが、情報は常に空白です。 のスクリーンショットを参照してください。

This is the screenshot link

私が間違って何をしているのですか?

PLeaseヘルプ。ここで

は、フォームのコードです:

<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php"> 
        <div class="row-fluid"> 
        <div class="span5"> 
         First Name: <input type="text" name="first_name"><br> 
Last Name: <input type="text" name="last_name"><br> 
Email: <input type="text" name="email"><br> 
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br> 
        </div> 
        <div class="span7"> 
         <button type="submit" class="btn btn-primary btn-large pull-right">Send Message</button> 
        </div> 

       </div> 


      </form> 

、ここでは、全体のPHPファイル(sendemail.php)です:

<?php 
    header('Content-type: application/json'); 
    $status = array(
     'type'=>'success', 
     'message'=>'Email sent!' 
    ); 


    $name = @trim(stripslashes($_POST['first_name'])); 
    $lastname = @trim(stripslashes($_POST['last_name'])); 
    $email = @trim(stripslashes($_POST['email'])); 
    $message = @trim(stripslashes($_POST['message'])); 

    $email_from = "Website Contact Form"; 
    $email_to = '//removed real email address'; 


$Body .= "Name: "; 
$Body .= $name; 
$Body .= "\n"; 
$Body .= "Email: "; 
$Body .= $Email; 
$Body .= "\n"; 
$Body .= "Message: "; 
$Body .= $Message; 


    $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; 

    $success = mail($EmailTo, $Subject, $Body, "From: <$email_from>"); 

    $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); 


    echo json_encode($status); 
    die; 

形式のWebページ現在のコードで、あなたはここを参照してください実行:http://minha-consulting.com/contactus.html

ありがとうアドバンス。

+0

編集:私のコメントを傷つけ、どちらかといえば間違っていました。 –

答えて

0

$ Bodyの最初の行は "。"を付けずに開始します。

$Body = "Name: "; 

変数を小文字で定義した場合は、upperで呼び出すことはできません。

$test != $Test 

ただ、これをコピーして、あなたのコードを聖霊降臨祭の置き換え:

$name = @trim(stripslashes($_POST['first_name'])); 
    $lastname = @trim(stripslashes($_POST['last_name'])); 
    $email = @trim(stripslashes($_POST['email'])); 
    $message = @trim(stripslashes($_POST['message'])); 

$subject = 'Email Subject'; 
$headMail = "From: [email protected]\r\n"; 
$headMail .= "From: [email protected]\r\n"; 
$bodyMail = "Name: "; 
$bodyMail .= $name . ' ' . $lastname; 
$bodyMail .= "\n"; 
$bodyMail .= "Email: "; 
$bodyMail .= $email; 
$bodyMail .= "\n"; 
$bodyMail .= "Message: "; 
$bodyMail .= $message; 

mail($email, $subject, $bodyMail, $headMail); 
+0

回答者の問題は何ですか?私は彼に完成コードを与えた – kuchar

0

変数名は大文字と小文字が区別されます。

http://php.net/manual/en/language.variables.basics.php

$Message$message同じではありません。同様に他の変数を修正する。

+0

親愛なるdownvoter、理由はここで便利だろう。私は答えを修正することができるように。 – Jigar

+0

upvotedのためにリンクするマニュアル – lje

1

変数名を2回(大文字と小文字)使用していて、電子メールを2回送信しています。これは少しばかりです。ここではいくつかの問題があなたのコードにあります。

  • $Body
  • $Emailが定義されていない
  • $Messageが(大文字)に定義されていません(大文字)定義されていない
  • あなたがにstripslashesを使用しているのはなぜ?より良い使用Sanitize filters
  • は、適切なインデントを使用してコードをクリーンアップし、バグを見つけることがはるかに容易になり、標準

をコーディングするこの方法でPHPを使用しています。

+1

良い答え。 +1 – lje

+0

私の質問にお返事いただきありがとうございます。私はこれを試して、あなたに戻ってきます! – desupink

+0

あなたの提案はまったく機能しませんでした。 '<?ph \t header( 'Content-type:application/json'); \t $状態=配列( \t \t 'タイプ' => '成功'、 \t \t 'というメッセージ' => 'メール送信された!' \t)。 $ name =($ _POST ['first_name']); $ lastname =($ _POST ['last_name']); $ email =($ _POST ['email']); $ message =($ _POST ['message']); $ email_from = "ウェブサイトお問い合わせフォーム"; $ email_to = '[email protected]'; \ n電子メール: "。$電子メール" \ nメッセージ: "。$メッセージ;$ body ="名前: "。 $ success = @mail($ email_to、$件名、$ body、 'From:<'。$ email_from。 '>'); echo json_encode($ status); die; ' – desupink

0

上記の小文字の 'm'で定義した$ Messageの代わりに$ messageを使用します。

$Body .= "Name: "; 
$Body .= $name; 
$Body .= "\n"; 
$Body .= "Email: "; 
$Body .= $Email; 
$Body .= "\n"; 
$Body .= "Message: "; 
$Body .= $Message; 
関連する問題