我制作了一个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上,它不起作用。
答案 0 :(得分:0)
您的表单可能会错误地提交,具体取决于隐藏输入中$bn
的内容。您需要在htmlentities()
中包装变量的内容以对其进行编码。
<input type="hidden" name="bandnamn" value="<?php echo htmlentities($bn, ENT_QUOTES); ?>" />