当有撇号时,我尝试在表单输入中显示的文本被截断。这是我用来在数据库中插入数据的代码(在数据库内正确插入文本,见下图)。只有当有撇号时我才有这种行为。还有另一个图像,你可以在浏览器上看到输出,实际上输出很奇怪..
$text = $_POST['text']; // MEMORIZZO LA VARIABILE
$data = date("Y-m-d"); // PREPARO LA DATA
$id = ''; // VARIABILE ID
$rows = array(); // PREPARO ARRAY
$stmt = mysqli_stmt_init($con); // INIZIALIZZO LA CONNESSIONE
mysqli_stmt_prepare($stmt, 'INSERT INTO autovetture(name,data)
VALUES(?,?)') or die(mysqli_error($con)); // QUERY INSERIMENTO DATI
mysqli_stmt_bind_param($stmt,'ss',$text,$data); // PREPARO I PARAMETRI
mysqli_stmt_execute($stmt); // ESEGUO LA QUERY
这是我用来打印页面的代码:
$html .= "<form method='post'>";
$html .= "<div class='form-group'>";
$html .= "<label>Nome autovettura</label>";
$html .= "<input type='text' class='form-control' placeholder='Inserisci il nome della Casa automobilistica' id='txt_auto_mod' value='{$rows1[name]}' />";
$html .= "</div>";
在这里你可以看到3抓: 一个数据插入到数据库中没有错误,一个在没有撇号的情况下在浏览器中有更正的输出,在有撇号时在浏览器上有问题。在这里使用firebug调试页面,你可以看到代码在某种程度上被误解了..
答案 0 :(得分:1)
在将值放入表单时对HTML实体进行编码:
$html .= "<input type='text' class='form-control' placeholder='Inserisci il nome della Casa automobilistica' id='txt_auto_mod' value='" . htmlentities($rows1[name], ENT_QUOTES) . "' />";