0

好吧伙计们..

我有两页

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. 当用户单击编辑并返回第 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 中填写的值保留在表单字段中。

  1. 当用户转移到page2时,提交表单后,page2的url是这样的..

    http://mydomainnane.com/site1/form1_conf.php?id=36

现在的问题是,当我将值从 36 更改为任何数字(例如 34 或 24)时,这些值将从位于该位置的 db 中提取并显示。如何仅通过更改 url 中的值来防止这种未经授权的 DB 值视图?

非常感谢你们所有的帮助。

4

1 回答 1

1

在 form1.php 顶部定义:

if(isset($GET['name']) && $GET['name'] != ""){
    $name = $GET['name'];    
}
于 2013-07-29T13:57:09.280 回答