私の英語力は低いです。
問題があります: フォーラム phpbb3 でメッセージを送信できません。ログインできます。メッセージを送信できません。フォーラムへのログインは成功です。投稿の送信は行っていません。
私のソースコード:
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QNetworkCookie>
#include <QNetworkCookieJar>
#include <QDebug>
#include <QList>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
private:
Ui::Dialog *ui;
QNetworkAccessManager *manager;
QList <QNetworkCookie> cookie;
QList <QByteArray> listt;
QNetworkRequest request;
QNetworkReply *reply;
QVariant var;
QNetworkCookieJar *cookiejar;
public slots:
void mySlot(QNetworkReply *);
};
#endif // DIALOG_H
ダイアログ.cpp
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
manager = new QNetworkAccessManager(this);
cookiejar = new QNetworkCookieJar(manager);
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(mySlot(QNetworkReply*)));
//login on www
QByteArray postData;
QUrl paare;
request.setUrl(QUrl("http://127.0.0.1/ucp.php?mode=login"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/x-www-form-urlencoded"));
request.setRawHeader("User-Agent", "Firefox/3.0.10");
paare.addQueryItem("username", "Moderator");
paare.addQueryItem("password", "moderator");
paare.addQueryItem("login", "");
postData = paare.encodedQuery();
reply = manager->post(request, postData);
//end of login on www - effect: OK
//send post on www
paare.clear();
postData.clear();
request.setUrl(QUrl("http://127.0.0.1/posting.php?mode=reply&f=2&t=1"));
paare.addQueryItem("message", "my message ...");
paare.addQueryItem("post", "");
postData = paare.encodedQuery();
manager->post(request, postData);
//end of send post on www - effect: fail
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::mySlot(QNetworkReply *e)
{
if( e->error() == QNetworkReply::NoError )
{
qDebug() << "OK!";
}
else
{
qDebug() << "ERROR! " << e->errorString();
}
}
それは誰にも役立ちますか?ありがとう
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
manager = new QNetworkAccessManager(this);
cookiejar = new QNetworkCookieJar(manager);
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(mySlot(QNetworkReply*)));
//login on www
request.setUrl(QUrl("http://127.0.0.1/ucp.php?mode=login"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/x-www-form-urlencoded"));
request.setRawHeader("User-Agent", "Firefox/3.0.10");
paare.addQueryItem("username", "Moderator");
paare.addQueryItem("password", "moderator");
paare.addQueryItem("login", "");
postData = paare.encodedQuery();
reply = manager->post(request, postData);
//end of login on www - effect: OK
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::mySlot(QNetworkReply *e)
{
if( e->error() == QNetworkReply::NoError )
{
qDebug() << "OK!";
qDebug() << e->realAll();
}
else
{
qDebug() << "ERROR! " << e->errorString();
}
//send post on www
paare.clear();
postData.clear();
request.setUrl(QUrl("http://127.0.0.1/posting.php?mode=reply&f=2&t=1"));
paare.addQueryItem("message", "my message ...");
paare.addQueryItem("post", "");
postData = paare.encodedQuery();
manager->post(request, postData);
//end of send post on www - effect: fail
}
それでも機能しません:/ メッセージが送信されません。
qDebug() << e->realAll(); ... 送信されたフォームは無効です。もう一度送信してください。... どうして?