示例#1
0
文件: list.cpp 项目: dreamsxin/Web
int main(void)
{
     //Redirect before initializing headers
     mysqlpp::Connection c(false);
     if (!c.connect("okzoniom", "localhost", "okzoniom", getDBIdent().c_str())) {
          cgi_redirect("./error.okz?state=err_db");
          return 0;
     } else {
          //Set UTF8
          mysqlpp::Query q = c.query("SET NAMES utf8");
          q.exec();
     }

     cgi_init();
     cgi_session_save_path("sessions/");
     cgi_session_start();

     cgi_process_form();
     cgi_init_headers();

     header("sidebar_player_list");
     menu();
     sidebar();
     body(c);
     footer();

     cgi_end();
     return 0;
}
示例#2
0
int main(void)
{
     mysqlpp::Connection c(false);
     if (!c.connect("okzoniom", "localhost", "okzoniom", getDBIdent().c_str())) {
          cgi_redirect("./error.okz?state=err_db");
          return 0;
     } else {
          //Set UTF8
          mysqlpp::Query q = c.query("SET NAMES utf8");
          q.exec();
     }

     cgi_init();
     cgi_session_save_path("sessions/");
     cgi_session_start();

     cgi_process_form();

     std::string login = getParam("login");
     std::string mdp = getParam("password");


     if (login.empty() || mdp.empty()) {
          cgi_redirect("./login.okz?state=err_fill_all_field");
          return 0;
     }

     //Login regex
     boost::regex reg_pseudo("[a-zA-Z0-9]{2,}");
     if (!regex_match(login, reg_pseudo)) {
          cgi_redirect("./login.okz?state=err_login_char");
          return 0;
     }

     std::string password;

     mysqlpp::Query query = c.query("SELECT password FROM game_account where login=%0Q;");
     query.parse();
     mysqlpp::StoreQueryResult r = query.store(login);
     if (r && r.num_rows() > 0) {
          r[0]["password"].to_string(password);
     } else {
          cgi_redirect("./login.okz?state=err_no_account");
          return 0;
     }

     hashwrapper* wrapper = new md5wrapper();
     std::string md5mdp = wrapper->getHashFromString(mdp);
     delete wrapper;
     if (password == md5mdp) {
          cgi_session_register_var("login", login.c_str());
          cgi_session_register_var("locale", "fr_FR.UTF-8");
     } else {
          cgi_redirect("./login.okz?state=err_password");
          return 0;
     }

     cgi_redirect("./index.okz");
     return 0;
}
示例#3
0
int main(void)
{
     cgi_init();
     cgi_session_save_path("sessions/");
     cgi_session_start();

     cgi_process_form();

     cgi_init_headers();
     header("sidebar_download");
     menu();
     sidebar();

     //Beta !
     std::cout << "<p class=\"wrn\">Phase de beta !<br />"
                  "Le jeu est en phase de beta, ce qui signifie qu'il "
			   "est fortement possible que des bugs soit présent.<br />"
			   "Le téléchargement d'Okzoniom::Patcher permet de garder le jeu à jour "
			   "par rapport aux dernières modifications mise en ligne."
			   "</p>";

     std::cout << "<p class=\"wrn\">"
			   "En cas de problème, vous pouvez me faire parvenir par e-mail "
			   "le fichier Log_Patcher.txt ou Log.txt dans le cas d'un plantage !</p>";

     std::cout << "<div class=\"body\"><div class=\"main\">"
               "<h1>" << __tr("download") << "</h1>"
               "<div class=\"hr\"></div>"
               << std::endl;

	std::map<std::string, std::string> title_file;
	title_file["Windows"] = "Patcher_Win.exe";
	title_file["Linux"] = "Patcher_Linux.tar";

	for(auto it = title_file.begin(); it != title_file.end(); ++it) {
		std::string file = it->second;
		std::cout << "<h2>" << it->first << "</h2>"
				"<p>"
				"<a href=\"download/" << file << "\">"
				"<strong>&gt; " << file <<" &lt;</strong></a><br />"
				<< infoFile(file) << 
				"</p>"
				<< std::endl;
	}

     std::cout << "</div></div>" << std::endl;

     footer();

     return 0;
}
示例#4
0
文件: session.c 项目: ChrisX34/stuff
SCM scgi_session_save_path (SCM path)
{
  /* todo: remove gh_scm2newstr when Guile 1.8 is released */
  char *p;

  if (SCM_SYMBOLP(path))
    {
      p = gh_symbol2newstr (path, NULL);
    }
  else
    {
      p = gh_scm2newstr (path, NULL);
    }

  cgi_session_save_path (p);

  free (p);

  return SCM_UNSPECIFIED;
}
示例#5
0
文件: army.cpp 项目: dreamsxin/Web
int main(void)
{
     cgi_init();

     mysqlpp::Connection c(false);
     if (!c.connect("okzoniom", "localhost", "okzoniom", getDBIdent().c_str())) {
          cgi_redirect("./error.okz?state=err_db");
          return 0;
     } else {
          //Set UTF8
          mysqlpp::Query q = c.query("SET NAMES utf8");
          q.exec();
     }
     initializeFaction(c);

     cgi_session_save_path("sessions/");
     cgi_session_start();

     cgi_process_form();



     cgi_init_headers();
     __tr("your_army");
     header("your_army");
     menu();
     sidebar();

     if (cgi_session_var("login") == NULL) {
          std::cout << "<div class=\"err\">" << __tr("profil_mustlogin") << "</div>";
     } else {
          displayState();
          show(cgi_session_var("login"), c);
     }

     footer();
     return 0;
}
示例#6
0
文件: info.cpp 项目: dreamsxin/Web
int main(void)
{
     //Redirect before initializing headers
     mysqlpp::Connection c(false);
     if (!c.connect("okzoniom", "localhost", "okzoniom", getDBIdent().c_str())) {
          cgi_redirect("./error.okz?state=err_db");
          return 0;
     } else {
          //Set UTF8
          mysqlpp::Query q = c.query("SET NAMES utf8");
          q.exec();
     }

     cgi_init();
     cgi_session_save_path("sessions/");
     cgi_session_start();

     cgi_process_form();
     std::string login = getParam("n");

     cgi_init_headers();
     header("sidebar_profil",  ", "+login);
     menu();
     sidebar();

     std::cout << "<div class=\"body\"><div class=\"main\">";

     initializeFaction(c);
     int id,faction, xp, level;

     mysqlpp::Query query = c.query("SELECT id,faction,xp,level FROM game_account where login = %0Q;");
     query.parse();
     mysqlpp::StoreQueryResult r = query.store(login);
     if (r && r.num_rows() > 0) {
          //Should only be one account with that name
          id = r[0]["id"];    //Will be used to get the number of units
          faction = r[0]["faction"];
          xp = r[0]["xp"];
          level = r[0]["level"];

          std::cout << "<p>" << __tr("account") << ": <strong>" << login << "</strong><br />"
                    << __tr("xp") << ": <strong>" << xp << "</strong><br />"
                    << __tr("level") << ": <strong>" << level << "</strong><br />"
                    << __tr("faction") << ": <strong>" << __tr(factionName[faction]) << "</strong>"
                    "<div class=\"hr\"></div>"
                    "<center><p><strong>" << __tr("army_composition") << ":</strong></p>";

          //Now we have the account, get its units and their number
          query.reset();
          query << "select unit_name,unit_number from game_unit_available where id_account = %0;";
          query.parse();
          mysqlpp::StoreQueryResult u = query.store(id);
          if (u && u.num_rows() > 0) {
               std::cout << "<table class=\"army\"><tr>"
                         << "<td><strong>" << __tr("unit") << "</strong></td>"
                         << "<td><strong>" << __tr("number") << "</strong></td></tr>";
               for (size_t i = 0; i < u.num_rows(); ++i) {
                    int num = u[i]["unit_number"];
                    if( num > 0) {
                         std::string name;
                         u[i]["unit_name"].to_string(name);
                         std::cout << "<tr><td><strong>" << __tr(name) << "</strong></td>"
                                   << "<td><strong>" << num << "</strong></td></tr>";
                    }
               }
               std::cout << "</table></center>";
          } else {
               std::cout << "<center><em>" << __tr("army_empty") << "</em></center>";
          }

          std::cout << "</p>" << std::endl;
     } else {
          std::cout << "<p>" << __tr("player_notfound") << "</p>" << std::endl;
     }


     std::cout << "</div></div>";
     footer();
     return 0;
}