目前无法弄清楚如何在输出 HTML 页面的打印函数中正确转义 php 函数。
例如,我有一个名为 removeClient 的页面,我想在其中根据其 ID 删除客户端。下拉框应该为用户提供当前可用的客户端 ID,并且他们应该能够单击一个。
我有一个主页,根据 URL 提供的视图调用函数。
现在,我希望页面打印带有 Postgres 数据库提供的 ID 的下拉菜单,然后是一些表单来填写新的用户数据。
被调用的函数如下;
function removeClient() {
include 'dbconnect.php';
if ((isset($_POST['add']))) {
if (isset($_POST['ID']) && (isset($_POST['FirstName'])) && (isset($_POST['LastName'])) && (isset($_POST['IP'])) && (isset($_POST['Status']))) {
$clientid = $_POST['ID'];
$FirstName = $_POST['FirstName'];
$LastName = $_POST['LastName'];
$ip = $_POST['IP'];
$status = $_POST['Status'];
$result = pg_query($dbconnection, "somequery");
if (@pg_affected_rows($result) === 1) {
echo "<p> Client removed!</p>";
} else {
echo "<p> Something went horribly wrong. Contact a system adminstrator </p>";
}
}
}
echo
"<form name=\"addClient\" method=\"post\" action=\"?view=addClient\"/><br/>" .
"<select name=\"clientID\" id=\"clientID\"> " .
"<td>ID</td> <tr><input type=\"text\" maxlength=\"32\" name=\"ID\" /></tr><br/>" .
"<td>First Name</td> <tr><input type=\"text\" maxlength=\"32\" name=\"FirstName\" /></tr><br/>" .
"<td>Last Name</td> <tr><input type=\"text\" maxlength=\"32\" name=\"LastName\" /></tr><br/>" .
"<td>IP Addr.</td> <tr><input type=\"text\" maxlength=\"32\" name=\"IP\" /></tr><br/>" .
"<td>Status</td> <tr><input type=\"text\" maxlength=\"32\" name=\"Status\" /></tr><br/>" .
"<input type=\"submit\" name=\"add\" value=\"Send\" /></form><br/>";
}
现在,我要做的是更改 " " 行。
到 Postgres 通过 PHP 加载她的数据库值的行。
对于 PHP 部分,我得到了这个;
<option>Select userID</option>
<?php
$db = pg_connect("connection details") or die('Could not connect: ' . pg_last_error());
$sql = pg_query("SELECT title FROM books WHERE ownedby='$user_id'";
while ($row = pg_fetch_assoc($sql)) {
echo '<option value="'.htmlspecialchars($row['title']).'"></option>';}
pg_close($db);
?>
</select>
<input type="hidden" name="userid" id="userid" value="<?php echo htmlspecialchars($user_id); ?>">
现在,我不确定如何在打印 HTML 页面的 echo 调用中实现这一点。我试图做很多逃避,但它还没有帮助。如何有效地将这段代码添加到我的表单结构中,在 php 中回显?