WordPress可以防止隐藏的表单字段被识别吗?

时间:2017-02-23 03:47:33

标签: php wordpress

我一天中的大部分时间都在努力解决这个问题而且我真的很难过。

我的此页面名为preview.php,下面的代码如下。值将从另一个名为order.php的页面传递到此页面。此preview.php页面允许用户查看来自order.php的数据输入。

如果需要更正,用户将返回order.php进行更正。如果一切正常,用户将他或她的订单发送到process.php进行处理。发送到process.php的信息是隐藏的表单字段。

由于某些原因我无法弄清楚,process.php无法识别隐藏的表单字段值。

有没有人知道如何解决这个问题?

这个温柔的男人@ spencer7593实际上帮我解决了这个插入语句。但是,每次我尝试添加记录时,都会得到以下结果:

  

错误:custname值不能为null

这是因为隐藏的表单值为空,我无法弄清楚原因。

preview.php

?php
error_reporting(E_ALL);
echo "DEBUG POST DATA: <pre>".print_r($_POST, 1)."</pre>";
if(isset($_POST['custname']))
$custname = $_POST['custname'];
if(isset($_POST['zip']))
$zip = $_POST['zip'];
if(isset($_POST['city']))
$city = $_POST['city'];
if(isset($_POST['email']))
$email = $_POST['email'];
$address = $_POST['address'];
$rowIDs = $_POST['rowIDs'];
$row2IDs = $_POST['row2IDs'];

echo $custname .'<br>';
echo $zip .'<br> <hr width=400 align=left>';


$rowIDs = $_POST['rowIDs'];

foreach ($rowIDs as $id) {
    $agentname = $_POST['agentname' . $id];
    $agentaddress = $_POST['agentaddress' . $id];
    $agentincome = $_POST['agentincome' . $id];

    echo 'Name:     '. $agentname . '<br />';
    echo 'Address:   '. $agentaddress . '<br />';
    echo 'agentincome:   '. $agentincome . '<br /><br>';
}

?>
<body>
<form action='process.php' method = 'POST'>
<input type='hidden' name='custname' value="<?php echo $custname; ?>">
<input type='hidden' name='address' value="<?php echo $address; ?>">
<input type='hidden' name='email' value="<?php echo $email; ?>">
<input type='hidden' name='city' value="<?php echo $city; ?>">
<input type='hidden' name='zip' value="<?php echo $zip; ?>">
<input type='hidden' name='agentname' value="<?php echo $agentname; ?>">
<input type='hidden' name='agentaddress' value="<?php echo $agentaddress; ?>">
<input type='hidden' name='agentincome' value="<?php echo $agentincome; ?>">
<input type="action" type="button" value="Return to data" onclick="history.go(-1);" /> &nbsp;|&nbsp; <input type="submit" value="Submit your form" />
</form>
</body>

process.php

<?php
global $wpdb;
// Database connection
$conn = mysqli_connect("localhost","myuser","mypwd","myDB");
if(!$conn) {
die('Problem in database connection: ' . mysql_error());
}

// Data insertion into database
$sql = 'INSERT INTO `myDB`.`myTable` ( `custname`'
     . ', `address`, `city`, `zip`, `email` )'
     . ' VALUES ( ? , ? , ? , ? , ?  )';

if( $sth = mysqli_prepare($conn,$sql) ) {
   mysqli_stmt_bind_param($sth,'sssss'
      ,$_POST["custname"]
      ,$_POST["address"]
      ,$_POST["city"]
      ,$_POST["zip"]
      ,$_POST["email"]

   );
   if( mysqli_stmt_execute($sth) ) {
     echo '<h1>Thank you</h1> <br> Go back to the main page <a href="index.php");';
   } else {
      printf("Error: %s\n",mysqli_stmt_error($sth));
   }
} else {
   printf("Error: %s\n",mysqli_connect_error($conn));
}

?>

0 个答案:

没有答案