发布包含撇号的php变量
我无法将php变量发布到另一个页面。变量是从用户选择的下拉列表中检索的,如果它包含撇号,我只会得到撇号之前的部分。也就是说,如果我想发布“库珀之鹰”,我只会收到“库珀”。如何正确地转义它,以便发布整个字符串 这就是我所拥有的:发布包含撇号的php变量,php,post,escaping,apostrophe,Php,Post,Escaping,Apostrophe,我无法将php变量发布到另一个页面。变量是从用户选择的下拉列表中检索的,如果它包含撇号,我只会得到撇号之前的部分。也就是说,如果我想发布“库珀之鹰”,我只会收到“库珀”。如何正确地转义它,以便发布整个字符串 这就是我所拥有的: echo '<form method="POST" action="advanced_search2.php">'; $dropdown_english_name = "<select class = 'dropdown' name='english
echo '<form method="POST" action="advanced_search2.php">';
$dropdown_english_name = "<select class = 'dropdown' name='english_name'> <option>ALL</option>";
$query = "SELECT DISTINCT english_name FROM moth_sightings WHERE user_id ='$username'ORDER BY english_name asc";
$result = mysql_query($query) or die(mysql_error());
echo "<tr><td>English Name:</td>";
while($row = mysql_fetch_assoc($result))
{
$dropdown_english_name .= "\r\n<option class = 'dropdown_active' value='{$row['english_name']}'>{$row['english_name']}</option>";
}
$dropdown_english_name .= '\r\n</select>';
echo '<td>' . $dropdown_english_name .'</td></tr>';
因此,从上面的代码中可以看出,发布的字符串是“cooper's hawk”,但回显的输出是“cooper”。
提前感谢您提供的任何提示。您可能因为将表单生成为而破坏了表单
<select ...><option value='cooper's hawk'>...</option></select>
^---
这两种方法都有效。请注意不同的引用样式。您可能已经破坏了表单,将其生成为
<select ...><option value='cooper's hawk'>...</option></select>
^---
这两种方法都有效。请注意不同的引用样式。您可以使用php函数
addslashes($variable)
您可以使用php函数addslashes($variable)
很可能您使用单引号来包装选项的值属性,而不是在重复php中的值属性之前对其进行转义。没有“库珀之鹰”选择框中的选项。告诉我们这是如何产生的$过账价值;死吧不是完全有效的语法…好的,我已经添加了选项的详细信息,以便您可以看到它是如何生成的@马克B,回声;在我的帖子中是一个错误,但在原始代码中。感谢您的关注。很可能您正在使用单引号来包装选项的value属性,而不是在php中对其进行转义。选择框中没有“Cooper's Hawk”选项。告诉我们这是如何产生的$过账价值;死吧不是完全有效的语法…好的,我已经添加了选项的详细信息,以便您可以看到它是如何生成的@马克B,回声;在我的帖子中是一个错误,但在原始代码中。感谢您的发现。为了安全起见,请始终使用转义特殊字符。我认为这可能是问题所在,但我不确定如何修复它。任何提示。注意,我现在已经在上面的代码中包含了选项值的源。@user1658170:您得到了提示:使用htmlspecialchars转义特殊字符。为了安全起见,请始终使用转义特殊字符。我认为这可能是问题所在,但我不确定如何修复它。任何提示。注意,我现在已经在上面的代码中包含了选项值的源。@user1658170:您得到了提示:使用htmlspecialchars转义特殊字符。
values="cooper's hawk"
values="cooper's hawk"