現在、HTML ページを出力する印刷関数で php 関数を適切にエスケープする方法がわかりません。
たとえば、ID に従ってクライアントを削除したい removeClient というページがあります。ドロップダウン ボックスは、現在利用可能なクライアント 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ページを印刷するエコー呼び出しでこれを実装する方法がわかりません。私は多くのエスケープを試みましたが、まだ役に立ちません。このコードをフォーム構造に効率的に追加するにはどうすればよいですか?