Php 使用$\u请求而不是$\u POST检索数组
我已经被Php 使用$\u请求而不是$\u POST检索数组,php,arrays,post,Php,Arrays,Post,我已经被$\u POST-相关的问题蒙蔽了几天,仍然没有解决我的问题(当然,似乎很多人对$\u POST有问题),但是,用一些新的信息跟进我的问题(): 所以。。。我有一个表单(input.php),大约有十几个字段,$\u POST没有问题(to process.php),但是在这个表单中有一个行项目表,用户可以根据需要动态地向其中添加行(标记是一个表行,硬编码;使用jQuery添加行) 因此,虽然所有其他输入的值都是$\u POSTing,但此表中的值不是。如果在我的流程页面中,我将表值的$
$\u POST
-相关的问题蒙蔽了几天,仍然没有解决我的问题(当然,似乎很多人对$\u POST
有问题),但是,用一些新的信息跟进我的问题():
所以。。。我有一个表单(input.php),大约有十几个字段,$\u POST
没有问题(to process.php),但是在这个表单中有一个行项目表,用户可以根据需要动态地向其中添加行(标记是一个表行,硬编码;使用jQuery添加行)
因此,虽然所有其他输入的值都是$\u POST
ing,但此表中的值不是。如果在我的流程页面中,我将表值的$\u POST
替换为$\u REQUEST
,则会检索它们,即:
表单页面的相关摘录:
<form id="invoiceData" name="invoiceData" method="POST" action="/html/process.php">
<!-- SNIP (invNum input, etc.) -->
<td class="date"><input type="text" class="datepicker" name="date[]" value="" /></td>
<td class="hours"><input type="text" class="hours" name="hours[]" value="" /></td>
<td class="rate"><input type="text" class="rate" name="rate[]" value="" /></td>
<td class="date-total"><input type="text" class="date-total" name="dateTotal[]" value="" /></td>
<td class="add-delete-row">
<a href="#" class="delete-row" title="Delete row">Delete</a>
<a href="#" class="add-row" title="Add a row">Add Row</a>
</td>
<?php
if (isset($_POST['submit'])) {
// GET $_POST VALUES FROM input.php
$invNum = $_POST['invNum'];
$invDate = $_POST['invDate'];
$projNum = $_POST['projNum'];
// etc., a bunch more, getting them all ...
// ... but these, from the dynamic table within the form; $_REQUEST works but not $_POST
for ($i = 0; $i<count($_REQUEST['date']); $i++) {
$date = $_REQUEST['date'][$i];
$hours = $_REQUEST['hours'][$i];
$rate = $_REQUEST['rate'][$i];
$dateTotal = $_REQUEST['dateTotal'][$i];
echo "<div class=\"debug\">
<p>" . $i .". " . $date . ", " . $hours . ", " . $rate . ", " . $dateTotal . "</p>
</div>";
}
}
?>
相关摘录自process.php:
<form id="invoiceData" name="invoiceData" method="POST" action="/html/process.php">
<!-- SNIP (invNum input, etc.) -->
<td class="date"><input type="text" class="datepicker" name="date[]" value="" /></td>
<td class="hours"><input type="text" class="hours" name="hours[]" value="" /></td>
<td class="rate"><input type="text" class="rate" name="rate[]" value="" /></td>
<td class="date-total"><input type="text" class="date-total" name="dateTotal[]" value="" /></td>
<td class="add-delete-row">
<a href="#" class="delete-row" title="Delete row">Delete</a>
<a href="#" class="add-row" title="Add a row">Add Row</a>
</td>
<?php
if (isset($_POST['submit'])) {
// GET $_POST VALUES FROM input.php
$invNum = $_POST['invNum'];
$invDate = $_POST['invDate'];
$projNum = $_POST['projNum'];
// etc., a bunch more, getting them all ...
// ... but these, from the dynamic table within the form; $_REQUEST works but not $_POST
for ($i = 0; $i<count($_REQUEST['date']); $i++) {
$date = $_REQUEST['date'][$i];
$hours = $_REQUEST['hours'][$i];
$rate = $_REQUEST['rate'][$i];
$dateTotal = $_REQUEST['dateTotal'][$i];
echo "<div class=\"debug\">
<p>" . $i .". " . $date . ", " . $hours . ", " . $rate . ", " . $dateTotal . "</p>
</div>";
}
}
?>
。。。返回:
$\u REQUEST
检索这些值而不是$\u POST
?无论如何,是否有任何理由不使用$\u请求向前移动(例如,安全)?我追求的最终是完成这类任务的最佳实践,我愿意接受建议(尤其是解决本周的困惑)。我知道我有很多关于php数组的作业要做
提前非常感谢不久前,我发现了这一点,并理解这是一种在全球范围内排除sql注入的策略:
// prevent SQL Injection in $_POST variables:
foreach ($_POST as $key => $value) {
$_POST[$key] = mysql_real_escape_string($value);
}
它似乎还干扰了$u POST数组,所以它必须退出。我现在将阅读有关sql注入预防的内容,但在此期间,如果有人能建议对此进行修改,使其不会破坏我的阵列,请加入
谢谢大家
它似乎还干扰了$u POST数组,所以它必须退出。我会的
现在正在阅读sql注入预防,但在此期间,如果
任何人都可以建议对此进行修改,这样就不会破坏我的计划
阵列,请插话
谢谢大家
在使用mysql\u escape\u字符串之前,您可以尝试检查$\u POST是否为数组:
// prevent SQL Injection in $_POST variables:
foreach ($_POST as $key => $value) {
if(!is_array($_POST[$key])){
$_POST[$key] = mysql_real_escape_string($value);
}
}
$\u请求
包含$\u POST
和$\u GET
中的所有内容。什么是var\u转储($\u POST,$\u GET)代码>显示?$\u请求
包含$\u POST
和$\u GET
和$\u COOKIE
中的所有内容。我认为我从未成功地将$\u POST与数组一起使用过。我通常会创建一个由管道(|)字符或字符串分隔的字符串semicolons@Barmar变量转储($\u POST,$\u GET);返回表单中的所有值,但表中的值除外,例如,[date”]=>NULL[“hours”]=>NULL[“rate”]=>NULL[“dateTotal”]=>NULL@SyntaxLAMP你能为一个php新手扩展一下吗?(请用代码示例?)