带有复选框的Php表单出错

时间:2011-12-09 19:38:52

标签: php google-chrome windows-xp

我制作了一个php页面,其中包含一个表单,复选框和方法POST。 在带有Internet Explorer的Windows 7上,它非常完美。在使用带有谷歌浏览器的Windows XP的另一台计算机上,它不起作用。表单是提交类型,操作发生在同一个php文件中的方法中。

有人知道在Chrome上的php或php上的php是否存在一些特殊问题,这些问题可能会搞砸了。

这是表格

<form name='test' method='POST' action='' accept-charset='UTF-8'>
<input type="hidden" name="bandnamn" value="<?php echo $bn; ?>" />  
Description and info about the band:<br>
<input type='text' name='bandtext' size='50'><br>

//plus 7 more inputs of type text simular to the one on top of this

Category 1:<br>
<?php 
     $query="SELECT id, kategori FROM punkkategorier"; 
$result = mysql_query ($query);
echo "<select name=kategori1 value=''></option>";                   while($nt=mysql_fetch_array($result))
{
     echo "<option value=$nt[id]>$nt[kategori]</option>";
}
echo "</select>";
?>

//and 2 more Category checkboxes

<br><br>
<input type='submit' name='Submit2' value='Submit'>
</form>

这是提交部分。

if(isset($_POST['Submit2']))
{
$host='localhost'; // Host name 
$username="myusername"; // Mysql username 
$password="mypassword"; // Mysql password 
$db_name="dbname"; // Database name 
$tbl_name="mytablename"; // Table name 



// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");
mysql_set_charset('utf8');

//A MYSQL_QUERY WITH A SELECTSTATEMENT

$result =mysql_query("select id from punkband where bandnamn = '".$_POST['bandnamn']."'");
if($result && mysql_num_rows($result) == 1)
{
    $show_form=1;
    while($row = mysql_fetch_array($result))
    {
        $hiddenbandnamn= $row['id'];
    }
}

}

$ show_form = 1表示它是正确的,并且查看的下一页将是正确的,如果$ show_form未更改为= 1,则下一页将出错。在带有IE的Windows 7上,它非常完美。在使用谷歌浏览器的Windows XP上,它不起作用。

1 个答案:

答案 0 :(得分:0)

您的表单可能会错误地提交,具体取决于隐藏输入中$bn的内容。您需要在htmlentities()中包装变量的内容以对其进行编码。

<input type="hidden" name="bandnamn" value="<?php echo htmlentities($bn, ENT_QUOTES); ?>" />