2016-04-05 22 views
0

私は、ユーザーが特定のポイントに達したときに特定の報酬を選択できるようにするPHPスクリプトを用意しています。彼らは、selectドロップダウンメニューを使用して、彼らが望む報酬を選択します。しかし、彼らは「ノー報酬としてその報酬オプションを離れるときif文でPHP/Apacheエラー500問題

<select name="reward" id="reward"> 
    <option value="null">No Reward, save my points.</option> 
    <option value="1" data-type="percent" data-value="10">Option 1: 10% off [10 points]</option> 
    <option value="2" data-type="money" data-value="500">Option 2: £5.00 off [15 points]</option> 
    <option value="4" data-type="money" data-value="1500">Option 3: £15.00 off [45 points]</option> 
    <option value="5" data-type="percent" data-value="98">Option 4: 98% off [500 points]</option> 
</select> 

ユーザーが(すなわち。選択の値が数値である)の報酬を選択するコードがないように、このドロップダウンは、正常に動作し、私を保存 "問題が出始めます。

PHPコードの場合、条件$_POST['reward'] != 'null'とif文ANは、ブラウザとエラーログに次のエラーでエラー500で私を残して、それが終了させる、PHPを中断します:

(104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server 
Premature end of script headers: index.php 

しかし、if文の条件を$_POST['reward'] == 'null'に変更すると、エラーが発生することなく、コードが正常に実行されているようです。

アイデア?

+2

を問題を再現しています。 – ash

+0

エラーが発生する前にスクリプトが60秒以上実行されていますか? –

+3

'' null ''を含む文字列は 'null'自体と混同しています。私は ' 'コードの明瞭さを助けるために。 – Egg

答えて

1

選択の値の1つとして「null」を使用すると、混乱が生じます。ヌル値よりも値が 'null'の文字列(「Lorem Ipsum ...」または「John Doe」の値を持つ可能性があります)と同じではありません。

代わりに他の値を使用すれば、簡単にわかりやすくなります。

<select name="reward" id="reward"> 
    <option value="0">No Reward, save my points.</option> 
    <option value="1" data-type="percent" data-value="10">Option 1: 10% off [10 points]</option> 
    <option value="2" data-type="money" data-value="500">Option 2: £5.00 off [15 points]</option> 
    <option value="4" data-type="money" data-value="1500">Option 3: £15.00 off [45 points]</option> 
    <option value="5" data-type="percent" data-value="98">Option 4: 98% off [500 points]</option> 
</select> 

そして、PHPからあなたが値をチェックすることができます:たとえば私たちは、あなたが「は、好ましくは、実際のP​​HPコード、あなたを助けるために多くのコードを参照する必要があるとしている

if ($_POST['reward'] != '0') 
{ 
    // your code here 
} 
-1

「null」の代わりに別の値を使用してみましたか?例えば:

<option value="0">No Reward, save my points.</option> 
+0

この回答はコメントでなければなりませんあなたの担当者のためにコメントすることはできません) –

+0

ええ、私が知っている、もし私ができるかどうかコメントしたでしょう:) – D14n4