如何在QtCreator中发布数据? [英] How can i Post the data in QtCreator?

查看:344
本文介绍了如何在QtCreator中发布数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的Qt创建者代码,用于将数据发送到PHP服务器并获得响应.

Here is my code of Qt creator to send the data to PHP server and get the response.

QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkAccessManager::connect(manager, SIGNAL(finished(QNetworkReply*)),this ,          SLOT(replyFinished(QNetworkReply*)));
QNetworkRequest *request = new   QNetworkRequest(QUrl("http://68.169.55.41/fss/verifylogindetails.php"));
QByteArray postData =" {\"estate_id\":\"hsr\",\"emp_pin\":1234,\"emp_id\":\"santhosh\"}";
request->setRawHeader( "User-Agent" , "Mozilla Firefox" );
request->setRawHeader( "charset", "utf-8" );
request->setRawHeader( "Connection", "keep-alive" );
manager->post(*request, postData );
}

void MainWindow::replyFinished(QNetworkReply *reply)
{
 QString data = reply->readAll().trimmed();
 qDebug() << data;
} 

这是我的php代码,用于接收登录数据并与数据库值进行比较并发送响应.

And here is my php code to receive the login data and comparing with database values and sending the response.

<?php
include 'config.php'; 
$data = json_decode($_SERVER['HTTP_JSON']);
$con = mysql_connect($host, $user_name, $password);
if (!$con)
{
die('Could not connect: '.mysql_error());
}
mysql_select_db($db_name, $con);
$result = mysql_query("SELECT * FROM login_data_table");
while($row = mysql_fetch_array($result))
{
if((strcasecmp( $row['Emp_Id'], $data->emp_id) == 0) && ($row['Emp_Pin'] == $data- >emp_pin) && (strcasecmp( $row['Estate_Id'], $data->estate_id) == 0))
{
echo "SUCCESS"; 
}
else
{
echo "FAIL";
}
}
mysql_close($con);
?>

我的问题是.....总是我从服务器收到失败消息.即使我发送正确的登录详细信息.请在代码错误的地方帮帮我.

My problem is..... Always i am getting FAIL message from server. Even i am sending correct login details. please help me where i am wrong in my code.

推荐答案

我将发布自己程序中的一段代码.希望这会有所帮助:

I will post a piece of code from my own program. Hopefully this will help:

void MainWindow::sendPost(url)
{
    QUrl params;
    params.addQueryItem("usrname", login);
    params.addQueryItem("passwrd", password);

    QByteArray data;
    data.append(params.toString());
    data.remove(0,1);

    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    QNetworkReply *reply = manager->post(QNetworkRequest(url), data);
    CONNECT(reply, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
}

void MainWindow::replyFinished(QNetworkReply *reply)
{
 QString data = reply->readAll().trimmed();
 qDebug() << data;
} 

PHP代码将使用$ _POST数组($ _POST ['usrname']和$ _POST ['password']保留从程序发送的两个值)从程序获取值,而不是$ _SERVER.我不知道为什么要使用$ _SERVER.

PHP code will get values from program using $_POST array ($_POST['usrname'] and $_POST['password'] hold both values sent from the program), not $_SERVER. I have no idea why did you use $_SERVER.

这篇关于如何在QtCreator中发布数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆