2012-03-26 14 views
2

これはここで私の最初の時間ですので、私と一緒に負担してください。.. これは私のHTMLフォームです:PHPコード

<form method="post" action="contactformprocess.php"> 
    <input id="name" name="name" type="text" value="" /> 
    <br /> 
    <input id="phone" name="phone" type="text" value=" /><br /> 
    <input id=" email " name="email " type="text " value=" " /><br /> 
    <textarea rows="5 " id="message " name="message " cols="20 "></textarea><br /> 
    <input id="submit " name="submit " value="שלחו " type="submit " ><br /> 
    <input id="checkbox " type="checkbox " checked="yes " value="i want 
    to recive weekly updates from you "/> i want to recive weekly updates from you <br /> 
</form> 

これは使用してPHPコードのイムです:

<?php 
    $emailSubject = '.....'; 
    $webMaster = '[email protected]'; 

    $name = $_POST['name']; 
    $phone = $_POST['phone']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 

    $body = <<<EOD 
    <br><hr><br> 
    Subject: $option<br> 
    Name: $name <br> 
    Phone: $phone<br> 
    Email: $email <br> 
    Message: $message <br> 
    EOD; 
    $headers = "From: $email\r\n"; 
    $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; 
    $success = mail($webMaster, $emailSubject, $body, 
    $headers); 
?> 

私が欠けているのは、チェックボックスがチェックされていない(チェックされている)か、チェックされて他のフィールドと共に情報が送信されたかどうかを検証するPHPスクリプトです。 チェックされている場合は「YES」を、チェックしない場合は「NO」を送信します。 感謝:)

+0

をあなたがしますprint_r($ _ POST)を使用する場合は、すぐに – Pete

+0

@Peteをそれを把握します'print_r'の代わりに' var_dump'を使います。同様にタイプを見たいと思っています。そして彼がチェックボックスの 'name'属性を欠いているので、' $ _POST'を見ることは彼を助けません。 ;-) – Basti

答えて

0

HTML:

<input type="checkbox" checked="checked" name="receive_updates" /> 

PHP:

$receive_updates = isset($_POST['receive_updates']) ? "YES" : "NO"; 

ユーザーがチェックボックスをオンにした場合、フォームに値​​が含まれます。ユーザーがチェックボックスをチェックしなかった場合、要求には$_POST["receive_updates"]がまったく含まれません。したがって、issetでチェックボックスがユーザによってチェックされているかどうかを簡単に確認することができます。

2

あなたのチェックボックスには名前が定義されていないため、あなたはその投稿には入りません。あなたはそれがより多くのように見えることになるでしょう:

<input id="checkbox" type="checkbox" name="updates" checked="checked" value="yes"/> i want to recive weekly updates from you <br /> 

チェックボックスがチェックされていない場合は、あなたのPHPは可能性がありので、それは、ポストには含まれません。

$updates = isset($_POST['updates']) ? 'Yes' : 'No'; 
1

OKここにリスト私が見つけたのミス:

1)あなたは、チェックボックス

2用name属性を持っていけない)checked属性値が "確認" されます。これは間違っている=>checked="yes"

3)あなたは、チェックボックス入力

0

チェックボックスがチェックされていない場合、変数は単純に設定されていないため検証を一切持っていけません。 また、チェックボックスに「名前」属性がありません。

So: $checked = (isset($_POST['checkboxname']))? 'yes' : 'no'; となります。 さらに、value='value'をチェックボックスに追加し、ifステートメント&& $_POST['checkboxname'] == 'value'に追加することができます。このように見えるように、フォームで

if(isset($_POST["updates"]) and $_POST["updates"]=="on") $body.="Updates: Yes <br>\n"; 
0

にHTMLを変更

<input id="weekly_updates" name="weekly_updates" type="checkbox" checked="yes" value="yes" />I want to recive weekly updates from you!<br /> 

PHPコードで、次のように追加します。

$weekly_updates = (strtolower($_POST['weekly_updates']) === 'yes') ? 'Yes' : 'No'; 

このPHPコードは混乱に見える場合は、三項演算子のためのPHPのドキュメントをざっと見てみましょうが、ここで見つける:ベター:http://php.net/manual/en/language.operators.comparison.php

1

あなたのチェックボックスのコードを変更:あなたのPHPにこのコードを追加します

<input id="checkbox" type="checkbox" checked="yes" name="updates">