我在表格中有以下复选框:
<td><span id='checkbox'><input type='checkbox' name='secret' value='true'> Share Anomolously? </span></td>
我已根据this上一个问题更改了我的PHP代码。我有以下代码,根据是否选中该复选框执行两个不同的查询:
$post_msg = @$_POST['msg'];
if (isset($_POST['secret'])=='true' && $post_msg != "" ) {
// Checkbox is selected
$posted_info = date('l jS \of F Y h:i:s A');
//$date_of_msg = date("Y-m-d");
//$time_of_msg = date("H:i");
$msg_sent_by = $username;
$insert_query = "INSERT INTO user_thoughts VALUES ('','$post_msg','','' ,'$attach_name','$msg_sent_by','')";
$run_query = mysqli_query($connect, $insert_query) or die(mysqli_error());
} else if (isset($_POST['secret'])!=='true' && $post_msg != "" ) {
// Alternate code
$posted_info = date('l jS \of F Y h:i:s A');
//$date_of_msg = date("Y-m-d");
//$time_of_msg = date("H:i");
$msg_sent_by = $username;
$insert_query2 = "INSERT INTO user_thoughts VALUES ('','$post_msg','','' ,'$attach_name','$msg_sent_by','no')";
$run_query2 = mysqli_query($connect, $insert_query2) ;
}
使用此当前代码,当用户点击按钮发布消息$post_msg
并且未选中复选框时,它会在数据库中插入no
,而不应该。只是解释,插入查询''
中的最后INSERTS
数据到名为shared
的列,并且定义值为yes
。
因此,如果用户发布了一条消息,并且未选中该复选框,则应执行第一个if语句。如果用户在选中复选框的情况下共享帖子,则应执行INSERTS
列shared
中的no
号的第二个if语句。
目前,即使未选中该复选框,也会始终在shared
列中插入ArgumentNullException
。
答案 0 :(得分:0)
这是因为:
isset($_POST['secret'])=='true'
只检查它是否有值。它没有检查它们的价值是什么。