我试图向我发送POST方法请求,但是当发送帖子时,存储在数据库中的数据是空的我没有得到我发送的值这是我试过的:
NSString *queryString = [NSString stringWithFormat:@"http://localhost/json/insertData.php?username=test&password=test"];
NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:[NSURL URLWithString: queryString] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
[theRequest setHTTPMethod:@"POST"];
NSURLConnection *con = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
一切都很好,只有当数据被发送并且我检查数据库时我得到空值,请问错误在哪里。
这是我的PHP文件的代码:
<?php
$host = "localhost";
$user = "root";
$pass = "root";
$db = "Users";
$con = mysqli_connect($host,$user,$pass);
if(!$con)
{
die("Can't connect to mysql server!");
}
$db_select = mysqli_select_db($con,$db);
if(!$db_select)
{
die("Can't get the selected db!");
}
$id = "11";
$username = $_POST['username'];
$password = $_POST['password'];
$email = "any1@any1.com";
$gsm = "91111111";
$query = "INSERT INTO Logins VALUES($id,'$username','$password','$email',$gsm)";
$query_exec = mysqli_query($con,$query);
if(!$query_exec)
{
die("Can't insert data");
}
?>
答案 0 :(得分:0)
您正在通过GET传递变量on: :create
和username
。在PHP脚本中,您必须使用password
而不是$_GET
:
$_POST
答案 1 :(得分:0)
http://localhost/json/insertData.php?username=test&password=test
您可以清楚地看到username=test&password=test
拥有所有数据。它表示您的表单method="get"
,
所以在你的代码中
$username = $_GET['username'];
$password = $_GET['password'];
这将解决您的问题。
答案 2 :(得分:0)
更具体地说,在上一页的表单中,您应该将提交表单标记更改为包含方法=&#34;发布&#34;。
<form method="post">
答案 3 :(得分:0)
由于这个问题没有答案,你也告诉我,我将$ _POST请求更改为$ _GET但是因为我说我希望它发布不是GET。最后,我得到了错误,我必须使用以下代码对数据进行编码:
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
添加此代码后,数据已成功添加。