2016-04-05 2 views
0

J'ai un script php qui permet aux utilisateurs de sélectionner certaines récompenses lorsqu'ils atteignent un certain nombre de points. Ils sélectionnent la récompense qu'ils aimeraient utiliser dans le menu déroulant select.PHP/Apache Erreur 500 problème avec if instruction

<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> 

Cette liste déroulante fonctionne très bien, tout comme le code lorsque l'utilisateur de sélectionner une récompense (ie. La valeur de la sélection est un nombre), mais quand ils quittent leur option de récompense comme «pas de récompense, sauvez mon "Je commence à avoir des problèmes.

Si le code PHP, une instruction if avec $_POST['reward'] != 'null' brisera PHP, l'amenant à cesser de fumer, me laissant avec une erreur 500 dans le navigateur et l'erreur suivante dans les journaux d'erreur conditionnelle:

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

Lorsque je change la condition dans l'instruction if à $_POST['reward'] == 'null', cependant, le code semble fonctionner correctement, sans me donner d'erreurs.

Des idées?

+2

Nous allons avoir besoin de voir plus de code afin de vous aider, de préférence le code PHP réel que vous » re rencontrer des problèmes avec. – ash

+0

Votre script s'exécute-t-il pendant plus de 60 secondes avant que des erreurs se produisent? –

+3

Une chaîne contenant '" null "' est confuse avec 'null' lui-même; Je suggère d'utiliser ' 'pour aider à la clarté du code. – Egg

Répondre

1

L'utilisation de 'null' comme l'une des valeurs de la sélection conduira à la confusion. N'est-ce pas la même chose qu'une chaîne avec la valeur 'null' (comme il peut avoir la valeur 'Lorem Ipsum ...' ou 'John Doe') que la valeur nulle. Au lieu d'utiliser toute autre valeur, les choses seront faciles et claires. Par exemple:

<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> 

Et puis, à partir de PHP, vous pouvez vérifier la valeur:

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

Avez-vous essayé d'utiliser une autre valeur à la place de 'null'? Par exemple:

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

Cette réponse devrait être un commentaire (mais je vous rends compte ne peux pas commenter à cause de votre représentant) –

+0

Ouais, je sais, j'aurais commenté si je pouvais :) – D14n4