欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP POST上传,无法读取上传的字符串

程序员文章站 2024-02-13 14:26:52
...
本地c#写的 用WebClient类http://1.liuruitao.sinaapp.com/test.php?name={0}通过这个url上传的,网页那边

if($_SERVER['REQUEST_METHOD']=="POST")
{
// $s=json_encode($_post)

$s=$_GET["name"];
echo "hello world!!";
echo $_POST["name"];
$conn=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
if(!$conn)
die("connect fail".mysql_error());
mysql_select_db('app_liuruitao',$conn);
$sql = "insert into $db values ('3344556677',$s,3,'4',5,'6','7','8','9')";
mysql_query($sql,$conn);//借SQL语句插入数据
mysql_close();//关闭MySQL连接
echo "insert success";
}
就是无法正确获取上传的name里面的字符串插入到数据库中,大家帮帮忙谢谢了


回复讨论(解决方案)

echo $_POST["name"];改为print_r($_REQUEST);试一下

是无法获取值还是无法插入值?

是无法获取值还是无法插入值? 感觉是得到一个值了,但是这个值我不能确定是什么,他往数据库里面插不进去,好像是类型问题

echo $_POST["name"];改为print_r($_REQUEST);试一下 可以试不了啊代码放人家服务器上了,他执行我不能控制啊

http://1.liuruitao.sinaapp.com/test.php? name={0}
显然 name 应从 $_GET 数组获取
$s=$_GET["name"];

$sql = "insert into $db values ('3344556677',$s,3,'4',5,'6','7','8','9')";
估计问题在这里
一般建表时都有一个字段作为唯一的主键,而主键是不能赋重复值的,不然就不是唯一了
如果主键是自增的话,那么缺省字段列表就可能出错


http://1.liuruitao.sinaapp.com/test.php?name={0}
显然 name 应从 $_GET 数组获取
$s=$_GET["name"];

$sql = "insert into $db values ('3344556677',$s,3,'4',5,'6','7','8','9')";
估计问题在这里
一般建表时都有一……[/quote客户端发送的时候用的是POST发送的这个,还是用GET吗

http://1.liuruitao.sinaapp.com/test.php?name={0}
显然 name 应从 $_GET 数组获取
$s=$_GET["name"];

$sql = "insert into $db values ('3344556677',$s,3,'4',5,'6','7','8','9')";
估计问题在这里
一般建表时都有一……
我客户端用的是POST发送的,还是用GET吗接收

写在 url 中的就用 $_GET
$_POST 只获取 POST 方法传递的数据(除了上传文件)

写在 url 中的就用 $_GET
$_POST 只获取 POST 方法传递的数据(除了上传文件)
改成get也不行,那个数据库哪里可以插入的,我每次都是改一次值然后插入的,没有重复主键

$s=$_GET["name"];
echo $s;
exit();
这样有输出吗

$s=$_GET["name"];
echo $s;
exit();
这样有输出吗
没有,他只有在请求这个页面时这个程序才跳进去去读,没有上传请求他就进不了IF语句

$sql = "insert into $db values ('3344556677', $s,3,'4',5,'6','7','8','9')";
如果 $s 无值,那么实际执行的 SQL指令为
insert into 表名 values ('3344556677',,3,'4',5,'6','7','8','9')
显然是错误的
可通过
mysql_query($sql,$conn) or die(mysql_error());
知道这种情况是否存在
另外
$sql = "insert into $db values ('3344556677',$s,3,'4',5,'6','7','8','9')";
应写作
$sql = "insert into $db values ('3344556677', '$s',3,'4',5,'6','7','8','9')";
以免意外的发生

$s=$_GET["name"];
echo $s;
exit();
这样有输出吗
我sizeof($s)存数据库里面是1

$sql = "insert into $db values ('3344556677',$s,3,'4',5,'6','7','8','9')";
如果 $s 无值,那么实际执行的 SQL指令为
insert into 表名 values ('3344556677',,3,'4',5,'6','7','8','9')
显然是错误的
可通过
mysql_quer……
嗯,你说的这2个问题我已经改了,后边我sizeof($s)把结果存数据库结果是1从这里可以看出来什么问题不

本地服务器上可以正确获取发送的字符串,放在新浪哪里就不行了............看来应该是他们的平台有些规定吧...