2011-09-30 64 views
0

我有存储$ _ POST数据有点问题,想我可能会混淆自己一点点。

所以我从一环被张贴了一些数据,这个数据被公布为ID和点,但每个人都有一个数字,它因此,如果三个记录被公布,我们将有

ID1,ID2, ID3 points1,points2,points3

收集。现在我正在使用for循环来查看数据并将其发布到两个数组中以便处理。问题是当我想存储数据时,我必须使用上面列出的名称之一,即id1或id2。这里是我的代码

for($i = 0; i< $_POST['count']; i++){ 
    //Order input data into an array 
    $inputid[$i] = $_POST['id1']; 

} 

现在的$ _POST的“身份证”的数字部分[“ID1”]必须是for循环一样,因为我在$所以它会增加作为循环一样。

感谢您的帮助,我希望我解释了问题的权利。第一

for($i = 0; i< $_POST['count']; i++){ 
    //Order input data into an array 
    $inputid[$i] = $_POST['id' . ($i+1)]; 
} 
+0

您可以使用它之前创建数组键:'$ _ POST [“身份证”。 $ i]; //答案= id1.'然而,'$ _POST [ '计数']''是6',但'id3'是通过'$ _POST'数组传递最后'id'值。你的方法可能不是最合适的(提示:* [来自外部源的变量](http://php.net/manual/en/language.variables.external.php)*)。 – jensgram

+0

看起来你是直接使用发布数据。使用前应先清洁它。下面是一个这样做的例子:http://net.tutsplus.com/tutorials/php/sanitize-and-validate-data-with-php-filters/ –

回答

0
for($i = 0; i< $_POST['count']; i++){ 
    //Order input data into an array 
    $inputid[$i] = $_POST['id'.$i]; 

} 
0

只是在连接字符串中的索引。

你可以在循环中尝试这个办法:

$idnumber = "id" . $i; 
$inputid[$i] = $_POST[$idnumber]; 
1

首先,不使用循环或其他任何POST变量,除非你已经检查了他们,以确保它们不包含任何危害:

+0

jensgram - 谢谢你,先生,我一直在今天做了很多Javascript,总是让concat运算符混杂起来。 –

2

为什么不命名输入:name="id[1]"name="points[1]"所以你必须$_POST['id'][...]$_POST['points'][...]阵列一起工作呢?

参考:Variables From External Sources(具体Example #3)。

+0

因此,数组是在发布完成后进行的?你知道更多这样的例子,所以我可以研究它吗? – ragebunny

+0

http://www.php.net/manual/en/language.variables.external.php#77344 – matino

0

如果我不会看错你想要的发布ID相同增量变量$我尝试了这一点

for($i = 0; $i< $_POST['count']; $i++){ 
    $post_id = 'id'.$i; 
    $inputid[$i] = $_POST[$post_id]; 

} 
+0

这似乎打破了整个剧本! :S – ragebunny

+0

我改变了生成post_id的方式。 **关于post变量id开始的一个问题是它从0还是1开始?如果是一个,你应该从$ i = 1开始循环** – punit

+0

我得到它的工作,这是我自己的转储错误! :(好吧,无论如何你还是帮助。 – ragebunny

0

如果我理解这个问题,已经有这打算投入已知量被张贴,所以我不明白为什么你需要一个循环来将它们添加到数组中。为什么不这样做:

$value = array($_POST['id1'], $_POST['id2'], $_POST['id3'], $_POST['points1'], $_POST['points2'], $_POST['points3']); 

比循环是这样的:

for(x=0;x<$value.count;x++){ 
    $value[x]=$value.$x; 
} 

这应该工作

+0

没有数额是未知的,所以我不能像这样硬编码。 – ragebunny

0

我觉得你可以去这样的事情:

for($i = 0; $i< $_POST['count']; $i++){ 
//Order input data into an array 
$inputid[$i] = $_POST["id$i"]; 
} 

这是你想要什么?