php - 描述框中为 "&"时提交表单时出现问题

标签 php mysql

这个问题在我所有的表格中都出现过。如果在描述中,用户在其中包含与符号,则该页面会显示带有值的 INSERT 语句,但不会继续或发送电子邮件。

例如:

“The quick brown fox jumps over the dog & the cat”是行不通的。

“敏捷的棕色狐狸跳过狗猫”会起作用。

在其中一页插入语句:

$filename = $_GET['filename'];
$size = $_GET['filesize'];
$date = $_GET['filedate'];
$user = $loggedin_id;
$desc = mysqli_real_escape_string($dbc3, $_GET['desc']);
$type = $_GET['type'];
$ver = $_GET['ver'];
$rev = $_GET['rev'];
$sql = "SELECT lineup FROM cad_files WHERE job_num = $job_id AND file_type = '$type' ORDER BY date DESC LIMIT 1";
$result = mysqli_query($dbc3, $sql);
if(mysqli_num_rows($result) < 1){
    $prev_lineup = 0;
} else {
    $prev_file = mysqli_fetch_assoc($result);
    $prev_lineup = $prev_file['lineup'];
}
//$type = getcadtype($type);
$job_id = getjobid($job_num, $dbc3);
$sql = "INSERT INTO cad_files(job_num, user, file_name, file_type, version, revision, date, size, description) VALUES($job_id, '$user', '$filename', '$type', '$ver', '$rev', '$date', '$size', '$desc')";
// echo $sql;
mysqli_query($dbc3, $sql) or die(mysqli_error($dbc3));

$id = mysqli_insert_id($dbc3);

我该如何解决这个问题?

错误:

Warning: simplexml_load_string(): Entity: line 9: parser error : xmlParseEntityRef: no name in /home/xxxxx/public_html/main/includes/mail2.php on line 15

Warning: simplexml_load_string(): <p>Description:<br /><b>Inserts 3a & 3b modified</b></p> in /home/xxxxx/public_html/main/includes/mail2.php on line 15

Warning: simplexml_load_string(): ^ in /home/xxxxxx/public_html/main/includes/mail2.php on line 15

Catchable fatal error: Argument 1 passed to simpleXMLToArray() must be an instance of SimpleXMLElement, boolean given, called in /home/xxxxxx/public_html/main/includes/mail2.php on line 15 and defined in /home/xxxxxx/public_html/main/includes/functions.php on line 354

最佳答案

因为您是通过查询字符串 (HTTP GET) 发送所有内容,所以您应该在将变量发送到服务器之前对变量进行转义。

使用 javascript escape 函数来编码这样的字符。 您还需要在服务器端对它们进行解码

关于php - 描述框中为 "&"时提交表单时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23199464/

相关文章:

带标签的 MySQL 全文 bool 搜索

mysqldump 只为 MySQL 数据库的第一行添加插入语句

php - 如何从 XML 标签中取出元素存储到 PHP 数组中?

javascript - 如何检查用户是否有网络摄像头?

php - preg 匹配标签之间的文本,排除之间的相同标签

php - Yii 2.0 数据库迁移命令

javascript - 更新实时谷歌地图

Mysql 如果条目存在

java - MySQL JDBC 返回 0 个结果

Mysql根据日期查询三张表