我正在尝试使用带复选框的html表单。然后我有PHP来验证表单并获取复选框的值。如果复选框对应于某个文本,则会有一个fwrite语句。
以下是html复选框的代码:
<input class="choose" type="checkbox" name="check_list[]" value="Python"> Python</label>
<input class="choose" type="checkbox" name="check_list[]" value="Java"> Java And Html(opitnal)</label>
<input class="choose" type="checkbox" name="check_list[]" value="PHP"> PHP And Html(optinal)</label>
这是PHP表单验证:
if(!empty($_POST['check_list'])) {
foreach($_POST['check_list'] as $selected) {
$lan = $selected;
}
}
以下是if语句:
$fh = fopen("myfile.php", "w") or die("Error! :(");
if ($lan == "Python") {
$page1 = "Some Code For The Fwrite";
fwrite($fh, $page1);
}
fopen工作但fwrite实际上没有写入文件,它应该将if语句中的代码写入文件。
此外,表单验证似乎工作,好像我回显复选框,它返回正确的东西!
答案 0 :(得分:2)
check_list[]
是一个数组,这意味着如果用户检查它们,$lan
将不等于python
或java
,但将等于最后一个元素在您的情况下,数组是PHP
,如果选中了多个复选框,您的fwrite将无效
if(!empty($_POST['check_list'])) {
foreach($_POST['check_list'] as $selected) {
$lan = $selected; //$lan will equal to the last value of the array, if more than one checkbox is ticked
}
}
您可以在if
语句中打开文件,此代码仅在选中python时才有效
if($lan == 'Python'){
$file = fopen("myfile.php","w") or die("Error! :(");
$page1 = "Some Code For The Fwrite again";
fwrite($file,$page1);
fclose($file);
}