Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP页面在用户提交后存储表单输入变量_Php_Mysql_Html_Forms_Unset - Fatal编程技术网

PHP页面在用户提交后存储表单输入变量

PHP页面在用户提交后存储表单输入变量,php,mysql,html,forms,unset,Php,Mysql,Html,Forms,Unset,我不确定还有什么可以称之为标题……我有一个PHP页面,它访问某个MySQL数据库,从表中提取值,并将它们放在HTML表单中(POST-method-PHP_SELF)。然后,用户可以查看这些值,根据需要修改它们,然后提交它们。然后,页面获取这些值并更新MySQL数据库。除了当用户提交并且页面显示新的更新变量时,它仍然显示旧的值之外,其他一切都工作得很好。在显示新变量之前,用户将被迫刷新页面。我认为PHP可能没有删除变量,所以我在脚本结束后取消了所有存储变量的设置,但仍然无法工作。我曾经试过在脚本

我不确定还有什么可以称之为标题……我有一个PHP页面,它访问某个MySQL数据库,从表中提取值,并将它们放在HTML表单中(POST-method-PHP_SELF)。然后,用户可以查看这些值,根据需要修改它们,然后提交它们。然后,页面获取这些值并更新MySQL数据库。除了当用户提交并且页面显示新的更新变量时,它仍然显示旧的值之外,其他一切都工作得很好。在显示新变量之前,用户将被迫刷新页面。我认为PHP可能没有删除变量,所以我在脚本结束后取消了所有存储变量的设置,但仍然无法工作。我曾经试过在脚本开始之前设置一个睡眠计时器,但也没有成功。如果有任何建议,我将不胜感激。以下是我的脚本仅供参考:

<html>
<body>

<?php

$sql = "SELECT * FROM lease";
$result = mysql_query($sql);

?>

<form id="lease_update" method="post" action="<?php echo htmlentities($PHP_SELF); ?>">
<table>
<tr>
<th>Account</th>
<th>Car Lease</th>
<th>Radio Lease</th>
<th>Misc. Charges</th>
</tr>

<?php
    while($rows = mysql_fetch_array($result)){
 ?>

<tr>
<td><input type="text" name="account[]" value="<?php echo $rows['accnt']; ?>" /></td>
<td><input type="int" name="car_lease[]" value="<?php echo $rows['car']; ?>" /></td>
<td><input type="int" name="radio_lease[]" value="<?php echo $rows['radio']; ?>" />     </td>
<td><input type="int" name="misc_lease[]" value="<?php echo $rows['misc']; ?>" /></td>
<input type="hidden" name="lease_ID[]" value="<?php echo $rows['ID']; ?>" />
</tr>

<?php
    }
?>
</table>
<input type="submit" value="Update" name="lease_update" />

<?php

if(isset($_POST['lease_update'])){

$account = $_POST['account'];
$car_lease = $_POST['car_lease'];
$radio_lease = $_POST['radio_lease'];
$misc_lease = $_POST['misc_lease'];
$lease_ID = $_POST['lease_ID'];

//Get Array Lengths For Each Section
$A = count($lease_ID);

//Update Lease Information
$i = 0;
while($i < $A){
    if(!mysql_query('UPDATE lease SET accnt = "' .$account[$i]. '", car = "' .$car_lease[$i]. '", radio = "' .$radio_lease[$i]. '", misc = "' .$misc_lease[$i]. '"  WHERE ID = ' .$lease_ID[$i]))
        die('Error: ' .mysql_error());
    $i++;
}
unset($_POST);
    unset($rows);
    unset(result);

}
?>
</body>
</html>

您正在更新数据库之前显示数据库中的数据

通常,最好在页面顶部进行所有数据库连接,然后显示结果

在代码中(即使用户提交了更新),您可以查询数据,从数据库中提取数据并显示数据,然后使用用户提交的内容运行更新

将代码更改为此应该可以做到这一点(但请务必阅读下面的注释):



您正在更新数据库之前显示数据库中的数据

通常,最好在页面顶部进行所有数据库连接,然后显示结果

在代码中(即使用户提交了更新),您可以查询数据,从数据库中提取数据并显示数据,然后使用用户提交的内容运行更新

将代码更改为此应该可以做到这一点(但请务必阅读下面的注释):



嗯,那很有趣。我对PHP比较陌生,但我的印象是,一旦提交表单输入并更新数据库,页面将重新加载(因为它是PHP_本身),并再次查询数据库(使用新值)。感谢您的注释。我仍在努力学习PHP中的表单验证。此表单仅供管理员查看(其他用户无权访问)。你认为在这些情况下验证仍然很重要吗?@user1562781是的,你永远不会太安全——这并不难做到。我创建了一组使用预先准备好的语句的对象,并且很好地完成了我的所有验证——我基本上可以在我编写的每一段代码中反复使用它们。谢谢。我会仔细阅读,看看是怎么做的。我有工程背景,我所做的只是繁重的数学计算。我们从不需要与用户打交道,所以生活很简单。用户交互是一个巨大的痛苦-P@user1562781把用户想象成会做错事的人,点击他们不应该做的地方,并且会尽一切努力入侵你的系统。工程背景应该使你的工作更容易诚实。把一个网页想象成一个示意图或流程图——用户尽其所能离开预期的路径。然后你会有很好的安全站点。嗯,这很有趣。我对PHP比较陌生,但我的印象是,一旦提交表单输入并更新数据库,页面将重新加载(因为它是PHP_本身),并再次查询数据库(使用新值)。感谢您的注释。我仍在努力学习PHP中的表单验证。此表单仅供管理员查看(其他用户无权访问)。你认为在这些情况下验证仍然很重要吗?@user1562781是的,你永远不会太安全——这并不难做到。我创建了一组使用预先准备好的语句的对象,并且很好地完成了我的所有验证——我基本上可以在我编写的每一段代码中反复使用它们。谢谢。我会仔细阅读,看看是怎么做的。我有工程背景,我所做的只是繁重的数学计算。我们从不需要与用户打交道,所以生活很简单。用户交互是一个巨大的痛苦-P@user1562781把用户想象成会做错事的人,点击他们不应该做的地方,并且会尽一切努力入侵你的系统。工程背景应该使你的工作更容易诚实。把一个网页想象成一个示意图或流程图——用户尽其所能离开预期的路径。然后你会有一个很好的安全站点。阅读关于和关于。阅读关于和关于。
<html>
<body>

<?php

if(isset($_POST['lease_update'])){

$account = $_POST['account'];
$car_lease = $_POST['car_lease'];
$radio_lease = $_POST['radio_lease'];
$misc_lease = $_POST['misc_lease'];
$lease_ID = $_POST['lease_ID'];

//Get Array Lengths For Each Section
$A = count($lease_ID);

//Update Lease Information
$i = 0;
while($i < $A){
    if(!mysql_query('UPDATE lease SET accnt = "' .$account[$i]. '", car = "' .$car_lease[$i]. '", radio = "' .$radio_lease[$i]. '", misc = "' .$misc_lease[$i]. '"  WHERE ID = ' .$lease_ID[$i]))
    die('Error: ' .mysql_error());
    $i++;
}
unset($_POST);
    unset($rows);
    unset(result);

}


$sql = "SELECT * FROM lease";
$result = mysql_query($sql);

?>

<form id="lease_update" method="post" action="<?php echo htmlentities($PHP_SELF); ?>">
<table>
<tr>
<th>Account</th>
<th>Car Lease</th>
<th>Radio Lease</th>
<th>Misc. Charges</th>
</tr>

<?php
    while($rows = mysql_fetch_array($result)){
 ?>

<tr>
<td><input type="text" name="account[]" value="<?php echo $rows['accnt']; ?>" /></td>
<td><input type="int" name="car_lease[]" value="<?php echo $rows['car']; ?>" /></td>
<td><input type="int" name="radio_lease[]" value="<?php echo $rows['radio']; ?>" />     </td>
<td><input type="int" name="misc_lease[]" value="<?php echo $rows['misc']; ?>" /></td>
<input type="hidden" name="lease_ID[]" value="<?php echo $rows['ID']; ?>" />
</tr>

<?php
    }
?>
</table>
<input type="submit" value="Update" name="lease_update" />

</body>
</html>