February 12, 2012

Mr.FreakyJo Mr.FreakyJo
Lab Rat
43 posts

Login code

 

I am trying to write a program that logins on a website.Inspired by this class [developer.qt.nokia.com] .I’ve added a few slots like:

  1. void _q_on_loginphp();
  2. void _q_on_cookiephp();
  3. void _q_on_gamephp();

I am trying to simulte this requests:
http://imageshack.us/photo/my-images/195/requestst.png/()
In the login request I receive a sesion cookie :
http://img20.imageshack.us/img20/3933/sidod.jpg
On the last request I get an error.It says that it used the wrong sid
Here is the code of my functions:

  1. void Authenticator::_q_onLoginRequestFinished()
  2. {
  3.     qDebug() << Q_FUNC_INFO;
  4.     QNetworkReply* reply = qobject_cast<QNetworkReply*>( sender() );
  5.     if ( !reply )
  6.         return;
  7.  QFile file("index.txt");
  8.  QList<QByteArray> info=reply->rawHeaderList();
  9.  file.open(QIODevice::WriteOnly);
  10.  file.write("index \n");
  11.  for(int i=0; i<info.size(); ++i){
  12.   QString sourcecode(reply->rawHeader(info[i]));
  13.   file.write(sourcecode.toLatin1());
  14.   file.write("\n");
  15.  }
  16.  QNetworkRequest loginphp;
  17.  QString url(reply->rawHeader(QByteArray("Location")));
  18.  loginphp.setUrl( url);
  19.     loginphp.setRawHeader( "User-Agent", " Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7" );
  20.    
  21.  QNetworkReply* loginphpReply = m_nam->get(loginphp);
  22.  connect( loginphpReply, SIGNAL( finished() ),
  23.              SLOT( _q_on_loginphp() ) );
  24. }  
  25. void Authenticator::_q_on_loginphp()
  26. {
  27.  QNetworkReply* reply = qobject_cast<QNetworkReply*>( sender() );
  28.  QFile file("loginphp");
  29.  QList<QByteArray> info=reply->rawHeaderList();
  30.  file.open(QIODevice::WriteOnly);
  31.  file.write("loginphp \n");
  32.  for(int i=0; i<info.size(); ++i){
  33.   QString sourcecode(reply->rawHeader(info[i]));
  34.   file.write(sourcecode.toLatin1());
  35.   file.write("\n");
  36.  }
  37.  
  38.  QNetworkRequest cookiephp;
  39.  QString url(reply->rawHeader(QByteArray("Location")));
  40.  cookiephp.setUrl(url);
  41.     cookiephp.setRawHeader( "User-Agent", " Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7" );
  42.    
  43.  QNetworkReply* cookiephpReply = m_nam->get(cookiephp);
  44.  connect( cookiephpReply, SIGNAL( finished() ),
  45.              SLOT( _q_on_cookiephp() ) );
  46. }
  47. void Authenticator::_q_on_cookiephp()
  48. {
  49.  QNetworkReply* reply = qobject_cast<QNetworkReply*>( sender() );
  50.  QFile file("cookiephp.txt");
  51.  QList<QByteArray> info=reply->rawHeaderList();
  52.  file.open(QIODevice::WriteOnly);
  53.  file.write("cookiephp \n");
  54.  for(int i=0; i<info.size(); ++i){
  55.   QString sourcecode(reply->rawHeader(info[i]));
  56.   file.write(sourcecode.toLatin1());
  57.   file.write("\n");
  58.  }
  59.  QNetworkRequest gamephp;
  60.  QString url("http://ro27.triburile.ro/game.php?screen=overview&intro");
  61.  gamephp.setUrl(url);
  62.     gamephp.setRawHeader( "User-Agent", " Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7" );
  63.  QNetworkReply* gamephpReply = m_nam->get(gamephp);
  64.  connect( gamephpReply, SIGNAL( finished() ),
  65.              SLOT( _q_on_gamephp() ) );
  66.  
  67. }
  68. void Authenticator::_q_on_gamephp()
  69. {
  70.  QNetworkReply* reply = qobject_cast<QNetworkReply*>( sender() );
  71.  QFile file("gamephp.txt");
  72.  QList<QByteArray> info=reply->rawHeaderList();
  73.  file.open(QIODevice::WriteOnly);
  74.  file.write("gamephp \n");
  75.  for(int i=0; i<info.size(); ++i){
  76.   QString sourcecode(reply->rawHeader(info[i]));
  77.   file.write(sourcecode.toLatin1());
  78.   file.write("\n");
  79.  }
  80.  
  81. }

The text output in gamephp.txt is :
gamephp
PHP/5.3.3-7+squeeze3
http://www.triburile.ro/sid_wrong.php
gzip
Accept-Encoding
text/html; charset=utf-8
chunked
Sun, 12 Feb 2012 15:58:32 GMT
lighttpd/1.4.28

[EDIT: fixed link, Volker]

0 replies

 
  ‹‹ [Solved]QSortFilterProxyModel dont find in the "folder"      tool chain ››

You must log in to post a reply. Not a member yet? Register here!