MySQL 데이터베이스의 데이터로 채워진 폼이 있습니다. 양식을 업데이트/편집하려면 해당 레코드의 기본 키를 사용하고 싶습니다. 페이지가 제출되면 안전하게 페이지에 기본 키를 전달할 수 있습니다. 모든 사용자가 URL에서 이것을 변경할 수 있고 숨겨진 양식 필드에 기본 키를 포함시키는 것도 방해 할 수 있고 HTML 소스에서 볼 수 있으므로 $ _GET을 사용하고 싶지 않습니다. 작업이 동일한 페이지에서 수행되고 있습니다 (아래 코드 블록 참조). 처리가 동일한 페이지에서 수행되므로 세션이 작동하는지 확신 할 수 없습니다.PHP에서 변수 html 폼을 안전하게 전달합니다.
//Load the data from the database
if(isset($_GET['menu_id'])){
$menu_id = (int)$_GET['menu_id'];
$menu = new Menu();
$menu_item = $menu->get_menu_items_by_id($menu_id);
}
else{
//The user has possibly edited the URL
$message = "Please select an option to edit";
redirect_to($PHP_SELF . '?message=' . $message);
}
?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<div>
<label>Name</label>
<input type="text" name="name" value="<?php echo $menu_item->name ?>">
</div>
<div>
<label>Title</label>
<input type="text" name="title" value="<?php echo $menu_item->title ?>">
</div>
<div>
<label>Is default page</label>
<input type="radio" name="is_default_page" value="1"
<?php
if($menu_item->is_default_page == 1)
{
echo "checked";
}?>
>Yes
<input type ="radio" name="is_default_page" value="0"
<?php
if($menu_item->is_default_page == 0)
{
echo "checked";
}?>
>No
</div>
<div>
<label>Page name</label>
<input type="text" name="page" value="<?php echo $menu_item->page ?>" />
</div>
<div>
<label>Menu type</label>
<select name="menu_type">
<?php
//Display the options of the menu types available
$menu_type_array = $menu->get_menu_types();
draw_select($menu_type_array, 'name', 'id', $menu->menu_type_id);
?>
</select>
</div>
<div>
<label>Page type i.e what is the page used for</label>
<select name="page_type">
<?php
$page = new Page();
$page_type_array = $page->get_page_types();
draw_select($page_type_array, 'name', 'id', $menu->page_type_id)
?>
</select>
</div>
<div>
<label>Position</label>
<select name="position">
<?php
//Count the number of menus in the database
$number_of_menu_items = $menu->count_menu_items() + 1;
for($i=1; $i<=$number_of_menu_items; $i++){
echo "<option value=\"{$i}\"";
if($i==$menu->position){
echo "selected = \"selected\"";
}
echo ">";
echo "{$i}";
echo "</option>";
}
?>
</select>
</div>
<div>
<input type="submit" value="Add Menu" name="edit_menu" />
</div>
<form>
출력을 이스케이프 처리해야합니다. '' –
@ 잭의 페이지 제목을 입력하지 못하는 것 같습니다. 고마워. 나는 준비된 문장을 사용하기 시작 했으므로 멈추었다 :(. 나의 입력과 놀랍게도 시도해 봤다. ... 감사합니다. – user1180807