【发布时间】:2018-06-25 22:11:14
【问题描述】:
我正在尝试这样填充表单:
$email = $_SESSION["email"];
$result = $mysqli->query("SELECT * FROM patient WHERE email = '$email'");
$user = $result->fetch_assoc();
$firstName = $user["firstName"];
$lastName = $user["lastName"];
$bday = $user["bday"];
$address1 = $user["address1"];
$address2 = $user["address2"];
$city = $user["city"];
$state = $user["state"];
$zipCode = $user["zipCode"];
$phone = $user["mobilePhone"];
$contactMethod = $user["contactMethod"];
$reminders = $user["reminders"];
$updates = $user["updates"];
然后我会像这样使用 echo:
<input type="text" name="address1" <?php echo 'value=' . $address1; ?> required />
它适用于除所示字段之外的所有字段。它只获取该列的第一个单词。例如,“123 First Street”仅将输入字段填充为“123”。如果我删除空间并将列值设置为“123FirstStreet”,则整个内容都会填充。所以我猜测 mySQL 会自动使用空格分隔符来分隔列中的值。有没有办法获取整列?提前致谢。
【问题讨论】:
-
查看实际 HTML 源代码生成。问题应该很明显。关闭,因为问题是一个简单的自我发现的错误。但是,可能想搜索如何(安全地)在 PHP 中编写 HTML 属性:它不仅会“使代码工作”,而且还会防止恶意 HTML 注入。
-
另外,阅读参数化查询以避免SQL注入。
-
重复:stackoverflow.com/q/7753448(用于 HTML 注入/写入和“此问题”)另见 stackoverflow.com/questions/60174(用于 SQL 注入)
-
您的脚本对SQL Injection Attack 甚至if you are escaping inputs, its not safe! 都是开放的,在
MYSQLI_或PDOAPI 中使用prepared parameterized statements -
然后我像这样使用 echo: 只是那不是 echo