好吧伙计们..
我有两页
page1 包含一个表单
<form id="Form1" name="Form1" method="post" action="form1.php">
//form1.php is the page1 where this form is.. i have redirected to the
same page because this page contains the php validation code <input
type="text" class="input" name="txtName"
value="<?php if(isset($name)){echo $name;} ?>"
<?php if(isset($flag) && $flag == 1){echo "div style = 'border:2px solid red;'". "/div";}?>>
<input type="submit" name="submit" value="Submit" class="button3">
</form>
我使用 php header-location 方法将数据发送到 page2
php page1代码
if(NO ERRORS)) // in the form there is actual code
{
// insert into database
$result = mysql_query ( $insert );
if ($result) {
echo ("<br>Input data is succeed");
$lastInsertedId = mysql_insert_id ();
header ( 'Location:form1_conf.php?id=' . $lastInsertedId ); // form1_conf.php is the name of 2nd page
} else {
$message = "The data cannot be inserted.";
$message .= "<br />" . mysql_error ();
}
}
现在是第2页
page2 名称是 form1_conf.php & 用于向用户显示表单数据,以便他可以检查表单是否有错误,如果有任何错误,他可以单击编辑并返回主表单 (page1) 并重新输入数据并重新提交表格。
这是page2代码
在这里,我使用 php 从 page1 接收数据:
if (isset ( $_GET ['id'] )) {
$lastInsertedId = $_GET ['id'];
}
$query = "SELECT * FROM db_purchase_form WHERE id=$lastInsertedId";
$result = mysql_query ( $query );
while ( $row = mysql_fetch_row ( $result ) ) {
$name = $row [1];
}
这是显示这个的html代码
<div id="DisplayForm">
<div class="dispText">
<?php echo $name; ?>
</div>
</div>
<a
href="form1.php?id=<?php echo $lastInsertedId; ?>&name=<?php echo $name; ?>"
class="button3">Edit</a>
现在,当用户在 page2 上单击此 Edit 按钮时,他将被带到 page1。
现在我有两个问题
- 当用户单击编辑并返回第 1 页时,名称字段为空,而我已经使用 php 代码填充该名称字段中的数据。
从上面复制,form1 page1 代码。
<input type="text" class="input" name="txtName" value="<?php if(isset($name)){echo $name;} ?>"<?php if(isset($flag) && $flag == 1){echo "div style = 'border:2px solid red;'". "/div";}?>>
我怎样才能做到这一点?当用户单击编辑并返回到 page1 时,他可以看到他之前在该 form1 中填写的值保留在表单字段中。
当用户转移到page2时,提交表单后,page2的url是这样的..
现在的问题是,当我将值从 36 更改为任何数字(例如 34 或 24)时,这些值将从位于该位置的 db 中提取并显示。如何仅通过更改 url 中的值来防止这种未经授权的 DB 值视图?
非常感谢你们所有的帮助。