[英]PHP form will not submit value=“0”
通過大量的幫助,我創建了一個腳本來編輯我的VPS上的文件。 它一直運作良好,但我有一個問題,讓我完全難過。 當我需要將文件中的值調整為0時,它將無法工作。 幾乎任何其他值都可以工作(即value="3"
),除了0( value="0"
)。 我很困惑。 我需要讓腳本將color = value更改為color=0
我不知道為什么0不起作用,但任何其他數字或字母都會起作用。 這是我的代碼:
<?php
//Color
$color = explode("=", trim($contents[1]));
if(isset($_REQUEST['difficulty_choice'])){
exec('sed -i '.escapeshellarg('s/color=.*/color='.$_REQUEST['color_choice'].'/g')." /home/user/color.props");
echo 'Color choice has been updated';
}
?>
<?php echo $contents[1]; //Color ?>
<form method="get" action="update.php">
<select name="color_choice">;
<option value="0" <?php if($color[1] == '0'){?>selected="selected"<?php }?>>Red</option>;
<option value="1" <?php if($color[1] == '1'){?>selected="selected"<?php }?>>Blue</option>;
<option value="2" <?php if($color[1] == '2'){?>selected="selected"<?php }?>>Black</option>;
<option value="3" <?php if($color[1] == '3'){?>selected="selected"<?php }?>>Yellow</option>;
</select>
<input type="submit" name="Submit" value="Submit" />
</form>
文件內容:
# The color file
color=1
更新:我切換了!用isset清空,它有效!
在php中,當$val = "0"
, empty($val)
計算結果為true
。 這是出乎意料的,但這就是php的方式。 用於empty()
的php文檔為您提供了“返回值”部分下被視為空的值列表 。 這是一個小測試腳本來證明它:
<?php
$val = "0";
if (empty($val)) {
echo $val . " is empty!\n";
} else {
echo $val . " is not empty.\n";
}
$val = "1";
if (empty($val)) {
echo $val . " is empty!\n";
} else {
echo $val . " is not empty.\n";
}
?>
輸出是:
0 is empty!
1 is not empty.
考慮使用其他類型的檢查,例如===
運算符而不是empty()
。
如果要檢查整數,則在比較整數時不應使用引號。 做這樣的事情。
<?php
$cmpColor = intval($color[1]); //Make sure to compare with an integer. This way you can use === to compare (because $cmpColor and 0,1,2 or 3 are of the same type as well)
?>
<select name="color_choice">;
<option value="0" <?php if($cmpColor === 0){?>selected="selected"<?php }?>>Red</option>;
<option value="1" <?php if($cmpColor === 1){?>selected="selected"<?php }?>>Blue</option>;
<option value="2" <?php if($cmpColor === 2){?>selected="selected"<?php }?>>Black</option>;
<option value="3" <?php if($cmpColor === 3){?>selected="selected"<?php }?>>Yellow</option>;
</select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.