Php 未发送Post变量

Php 未发送Post变量,php,variables,post,Php,Variables,Post,这真让我烦透了,我想不出来。我有一份表格,其中有几个选项是通过邮寄发送的: <form method="POST" action="scripts/submit.php"><strong> To User: <input type="text" name="ID" size="21" /><br /> Short Description: <input type="text" name="Item" size="21" /&g

这真让我烦透了,我想不出来。我有一份表格,其中有几个选项是通过邮寄发送的:

<form method="POST" action="scripts/submit.php"><strong>
    To User: <input type="text" name="ID" size="21" /><br />
    Short Description: <input type="text" name="Item" size="21" /><br />
    Link: <input type="text" name="Link" size="21" /><br />
    Points: <select name="Points">
    <option value="1" selected="selected">1</option>
    <option value="0">0</option><option value="-1">-1</option>
    </select> (1 = Positive, 0 = Neutral, -1 = Negative)<br />
    Text: <br /><textarea name="Text" rows="5" cols="50"/></textarea></strong><br />
    <input type="submit" value="Send" />
</form>

给用户:
简短描述:
链接:
要点: 1. 0-1 (1=正,0=中性,-1=负)
文本:

下面是submit.php给我带来麻烦的部分:

<?php
include('functions.php');
Connect();

if(!isset($_SESSION)) 
{ 
session_start(); 
} 
$id_from = $_SESSION['SESS_MEMBER_ID'];
$id_to = Sanitize($_POST['ID']);
$item = Sanitize($_POST['Item']);
$link = Sanitize($_POST['Link']);
$points= Sanitize($_POST['points']);
$text = Sanitize($_POST['Text']);

我刚刚在我的dev服务器上接收了您的代码,并尝试测试运行它。因为我不知道你的Sanitize()是做什么的,所以我不能确定这个函数里面发生了什么

如果您尝试删除Sanitize(),我很确定它会起作用,您必须查看它的内部才能找到bug

我猜您可能缺少($var,str)之类的内容来清理字符串。你能再多介绍一下这个功能吗

编辑:一些小的拼写错误

编辑:做了一些更多的测试,并使错误发生,两个代码显示它。第一个有效,而第二个给我一个空的var_转储

这个给了我一个完整的var_dump()



给用户:
简短描述:
链接:
分数:10-1(1=正,0=中性,-1=负)
文本:

这个给了我一个空的var_转储

<?
if(!isset($_SESSION)) 
{ 
session_start(); 
} 
?>
<form method="post" action=""><strong>
To User: <input type="text" name="ID" size="21" /><br />
Short Description: <input type="text" name="Item" size="21" /><br />
Link: <input type="text" name="Link" size="21" /><br />
Points: <select name="Points"><option value="1" selected="selected">1</option><option value="0">0</option><option value="-1">-1</option></select> (1 = Positive, 0 = Neutral, -1 = Negative)<br />
Text: <br /><textarea name="Text" rows="5" cols="50"/></textarea></strong><br />
<input type="submit" value="Send" />
</form>

<?

$id_from = $_SESSION['SESS_MEMBER_ID'];
$id_to = Sanitize($_POST['ID']);
$item = Sanitize($_POST['Item']);
$link = Sanitize($_POST['Link']);
$points= Sanitize($_POST['points']);
$text = Sanitize($_POST['Text']);


var_dump($_POST);

echo $text;

?>


给用户:
简短描述:
链接:
分数:10-1(1=正,0=中性,-1=负)
文本:


根据您对该代码的评论:

$id_query = mysql_query("SELECT ID FROM tbl_users WHERE Username = '$id_to'");
$count = mysql_num_rows($id_query);
$id_row = mysql_fetch_array($id_query);
$id_to = $id_row['ID'];
if ($points > 1 || $points < -1) {

} else {
    if (! ($id_to == $id_from)) {
        if ($count == 1) {
            mysql_query("INSERT INTO tbl_data (Item, Link) VALUES ('$item', '$link')");
            header('Location:?id=submit');
        } else {}
    } else {}
}
也许您正在使用某种方式进行测试,使得
$points
大于1或小于-1,
$count
为1,
$id\u to
$id\u from
不同,后者会执行
else
块,并(尤其是行)
头(),用户立即得到重定向

要检查这是否正确,请尝试
var\u dump($\u GET)
查看您是否得到类似以下内容:

array (size=1)
  'id' => string 'submit' (length=6)
如果您这样做了,并且数据库可能没有更新,那么您需要检查的就是位于头之前的mysql_查询


希望这有帮助。

方法属性中,
post
必须小写。请尝试执行
var\u dump($\u post)以获得其中内容的完整输出。@TomvanderWoerdt我尝试了小写,同样的问题。@DCo对我来说适用于您的HTML。”。。是的-同意@jli-效果很好-也许你想检查
functions.php
Connect()
做什么,谁知道在某处有类似
$\u POST=array()
的东西<代码>函数Sanitize($String){//清理MySQL注入中的数据$output=MySQL\u real\u escape\u String(stripslashes($String));返回$output;}
编辑:删除Sanitize不会解决问题。好的,尝试从scripts/submit.php中删除所有内容,因此submit.php中显示的唯一内容如下:
是否有任何内容?如果仅此而已,则它会传递变量。然后尝试从顶部插入一行,以查看变量转储($\u POST)何时为空。。确保var_dump($_POST)始终放在最后一行让我向您展示脚本的其余部分-添加后,事情似乎变得更糟:
$id_query=mysql_query(“从tbl_用户中选择id,其中Username='$id_to'”)$count=mysql\u num\u行($id\u query)$id\u row=mysql\u fetch\u数组($id\u query)$id_to=$id_行['id'];if($points>1 | |$points<-1){else{if(!($id_-to===id_-from)){if($count==1){mysql_查询('INSERT-INTO-tbl_-data(Item,Link)值('$Item','$Link'))”);header('Location:'id=submit');}else{}else{}
我也遇到了类似的问题,原因是重定向到同一页面。我正在重定向到?success=1,因此重定向后_POST为空。
<?
if(!isset($_SESSION)) 
{ 
session_start(); 
} 
?>
<form method="post" action=""><strong>
To User: <input type="text" name="ID" size="21" /><br />
Short Description: <input type="text" name="Item" size="21" /><br />
Link: <input type="text" name="Link" size="21" /><br />
Points: <select name="Points"><option value="1" selected="selected">1</option><option value="0">0</option><option value="-1">-1</option></select> (1 = Positive, 0 = Neutral, -1 = Negative)<br />
Text: <br /><textarea name="Text" rows="5" cols="50"/></textarea></strong><br />
<input type="submit" value="Send" />
</form>

<?

$id_from = $_SESSION['SESS_MEMBER_ID'];
$id_to = Sanitize($_POST['ID']);
$item = Sanitize($_POST['Item']);
$link = Sanitize($_POST['Link']);
$points= Sanitize($_POST['points']);
$text = Sanitize($_POST['Text']);


var_dump($_POST);

echo $text;

?>
$id_query = mysql_query("SELECT ID FROM tbl_users WHERE Username = '$id_to'");
$count = mysql_num_rows($id_query);
$id_row = mysql_fetch_array($id_query);
$id_to = $id_row['ID'];
if ($points > 1 || $points < -1) {

} else {
    if (! ($id_to == $id_from)) {
        if ($count == 1) {
            mysql_query("INSERT INTO tbl_data (Item, Link) VALUES ('$item', '$link')");
            header('Location:?id=submit');
        } else {}
    } else {}
}
header('Location:?id=submit');
array (size=1)
  'id' => string 'submit' (length=6)