Я пытаюсь отправить мне запрос методом 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 = "[email protected]";
$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");
}
?>
Вы передаете переменные username
а также password
через GET. В вашем PHP-скрипте вы должны использовать $_GET
вместо $_POST
:
$username = $_GET['username'];
$password = $_GET['password'];
в вашей ошибке показывает URL
http://localhost/json/insertData.php?username=test&password=test
вы можете ясно видеть username=test&password=test
есть все данные. Это означает, что ваша форма method="get"
,
Так в вашем коде
$username = $_GET['username'];
$password = $_GET['password'];
Это решит вашу проблему.
Более конкретно, в форме с предыдущей страницы вы должны изменить тег формы отправки, чтобы включить method = «post».
<form method="post">
Поскольку на этот вопрос нет ответа, вы также сказали, что я изменил запрос $ _POST на $ _GET, однако, как я сказал, я хочу, чтобы он был не GET. Наконец, я получил ошибку, я должен кодировать данные, используя этот код:
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
После того, как я добавил этот код, данные были успешно добавлены.