POST方法是否仅用于发送用户定义的输入

时间:2014-02-26 10:00:54

标签: php html mysql forms post

好吧,我有2个php文件。第一个 user form.php 有一个html表单来收集用户输入并通过POST方法将这些数据发送到其他php文件 mysql_insert.php

问题是,除了6个用户输入外,我还需要再传输一个不是用户输入的变量计数(如下面的代码所述)。

我厌倦了以下方法:

user form.php --->

<?php $count=file_get_contents("cnt.txt","r"); $count=$count+1; echo"Welcome!<br/>You are student number $count.<br/>"; ?> <html> <p>Fill in the following information to save your marksheet to the database:</p><br/> <form action="mysql_insert.php" method="POST"> Name:<input type="text" name="name" value=""/><br/><br/> Marks(out of 100)<br/> Subject 1:<input type="text" name="sub1" value=""/><br/> Subject 2:<input type="text" name="sub2" value=""/><br/> Subject 3:<input type="text" name="sub3" value=""/><br/> Subject 4:<input type="text" name="sub4" value=""/><br/> Subject 5:<input type="text" name="sub5" value=""/><br/><br/> <p name="count" value="$count"></p> <input type="submit" value="Submit"/> </form> </html>

我只是将一个空的P元素命名为count并将其值设置为$ count以将其与输入变量一起发送(如果这里有错误,请纠正我,我是php的新手)。

在接收端,我使用了以下代码:

mysql_insert.php ---&GT;

<?php
  require("connect.php");
  $name=$_POST['name'];
  $s1=$_POST['sub1'];
  $s2=$_POST['sub2'];
  $s3=$_POST['sub3'];
  $s4=$_POST['sub4'];
  $s5=$_POST['sub5'];
  $count=$_POST['count'];
  .
  .
  .
?>

现在在$count=$_POST['count'];行上,浏览器抛出错误:

注意:未定义的索引:在第10行的C:\ xampp \ htdocs \ Vikas-117-PHP \ level 3 \ mysql_insert.php中计数

似乎计数未发布到此文件中。 请指导我错在哪里。

P.S。:我当然可以使用mysql_insert.php中的file_get_contents()并直接在此文件中获取计数值,但我正在考虑这种方式作为我的最后一个选项。 如果非用户输入变量可以通过表格???

发布,请提供帮助

万分感谢!!!

7 个答案:

答案 0 :(得分:2)

您必须将$count变量放在表单中的hidden field中。表单输入中的数据只会以表单提交方式发布。

<input type="hidden" name="count" value="<?php echo $count ?>">

答案 1 :(得分:2)

<p name="count" value="$count"></p>

您不能直接使用任何html标记来发布数据仅使用html表单字段来发布数据。 使用html标签值后你需要使用js / ajax / php

<p name="count"><?php echo $count;?></p>

或更好的使用

<textarea name="count"><?php echo $count;?></textarea> 

或未显示使用隐藏字段的数据

并通过名称获取此p值或使用类或id来使用ajax获取和发布数据

答案 2 :(得分:1)

您可以使用隐藏的元素,如下所示

使用

<input type="hidden" value="<?php echo $count; ?>" name="count"/>

而不是

 <p name="count" value="$count"></p>

答案 3 :(得分:1)

<p name="count" value="$count"></p>

这不是输入元素,因此您无法直接发布。但是,您可以使用jquery来获取值并使用js进行POST。

如果您想要按现在的方式进行,则需要在输入类型文本中包含值或隐藏它。

答案 4 :(得分:1)

更改此行:<p name="count" value="$count"></p> 到:<input type="hidden" name="count" value="<?=$count?>" />

答案 5 :(得分:0)

而不是

<p name="count" value="$count"></p>

使用

<input type="hidden" name="count" value="<?php echo $count;?>">

答案 6 :(得分:0)

此行不起作用:<p name="count" value="$count"></p>

您可以使用<input type="hidden" name="count" value="<?php echo $count; ?>" />