Author Message

Posted: Sun Dec 18, 2016 11:33 am   Post subject: Re: Help Please - Results to Server (QuizMaker) @jpmaroco

kwesilorgor wrote:
HELLO SIR

i have been working on sending the results to my server for months now but every effort comes out to be nothing
can you please send the codes to my email... maybe there is something else am missing out. thanks
email:mrlorgor419@gmail.com


All you have to do is to copy this to a php file and run it on the server side. Don't forget that you need to update the "username" and "password" to access the database. Also don't forget that you need all the scripts provided by iSpring (see beggining of the thread). The iSpring Scripts just write the txt file with the results (I did not change anything on that.
What I did - see below - is to write the results in the TXT file (that was the iSpring code), write them in a XML file and write them in a Local MySQL data base or on a remote server MySQL database. In your local or remote server you need Apache, Php and MySql running.
There is my code (the nice addition is that it will create a specifica database for each type of question offered by QuizMaker 7-8 automatically for the first time the test is run.

Good luck.

Code:
<?php

   _log("--------------------------------------------");
   _log("Script iniciado");


   // Make sure that a POST is asked for
      header('Access-Control-Allow-Origin: *');
      if ($_SERVER['REQUEST_METHOD'] != 'POST') {
         die("POST request expected");
      }

   //Errors catching for closed flash file   
      error_reporting(E_ALL && E_WARNING && E_NOTICE);
      ini_set('display_errors', 0);
      ini_set('log_errors', 1);
      $errors = 0;

   //include scripts to handle different questions types in iSpring QuizMaker (produced by iSpring team and available in their forum)
      require_once("includes/common.inc.php");
      try {
         $requestParameters = RequestParametersParser::getRequestParameters($_POST, !empty($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : null);
         _log((string)$requestParameters);
      } catch (Exception $e){ //WRITE ERROR IN A LOG FILE
         error_log($e);
         echo "Error: " . $e->getMessage();
         _errorlog("Erro no try: " . $e->getMessage());
      }


   //GET RESULTS FROM QUIZ AND POST TO SERVER
      try {
         //GET RESULTS AND PARSE THEM
            $quizResults = new QuizResults();
            $quizResults->InitFromRequest($requestParameters);
            $generator = QuizReportFactory::CreateGenerator($quizResults, $requestParameters);
            $report = $generator->createReport();
   
            $username = $_POST['USER_NAME'];
            $userid = $_POST['USER_NUMBER'];
            $userclass = $_POST['USER_CLASS'];
            $tp = $_POST['tp'];
            $psp = $_POST['psp'];
            $sp = $_POST['sp'];
            $qt = $_POST['qt'];
            $detailed_results_xml = $_POST["dr"];
            $dateTime = date('Y-m-d_H-i-s');

         //WRITE COMPLETE RESULTS TO txt FILE
            $username = mb_convert_encoding($username, "ISO-8859-1", "auto");
            $resultFilename = dirname(__FILE__) . "/result/" . $qt . "_" . $username . "_" . $userid . "_" . $dateTime . ".txt";
            @file_put_contents($resultFilename, $report);
            

         //WRITE COMPLETE RESULTS TO xml FILE
            $resultFilename = dirname(__FILE__) . "/result/" . $qt . "_". $username . "_" . $userid . "_" . $dateTime . ".xml";
            @file_put_contents($resultFilename, $detailed_results_xml);     


         //DATABASE
            require_once("includes/db_connect.php");
            $dbname = "YourDatabaseName"; //DATABASE NAME
            $tblname = "YourTableName"; // TABLE NAME
            
            //CONNECT TO DATABASES
              //LOCAL
               $db_local = new DB_CONNECT("localhost", "root", "usbw");
               mysqli_query($db_local->con, "CREATE DATABASE IF NOT EXISTS " . $dbname) or _errorlog("Ocorreu um erro ao criar a base de dados local (" . mysqli_error($db_local->con) . ")");
               mysqli_select_db($db_local->con, $dbname) or _errorlog("Ocorreu um erro na ligação à  base de dados local (" . mysqli_error($db_local->con) . ")");
            //REMOTE      
               $db_remote = new DB_CONNECT("yourserveraddres", "your db username", "yourdb database");
               mysqli_query($db_remote->con, "CREATE DATABASE IF NOT EXISTS " . $dbname) or _errorlog("Ocorreu um erro ao criar a base de dados remota (" . mysqli_error($db_remote->con) . ")");
               mysqli_select_db($db_remote->con, $dbname) or _errorlog("Ocorreu um erro na ligação à  base de dados remota (" . mysqli_error($db_remote->con) . ")");
                     
               //mysqli_query($db_local->con, "DROP TABLE IF EXISTS prt4_2016") or _errorlog("nao deu para apagar a tabela (" . mysqli_error($db_local->con) . ").");
               //mysqli_query($db_remote->con, "DROP TABLE IF EXISTS PRT4_2016") or _errorlog("nao deu para apagar a tabela (" . mysqli_error($db_local->con) . ").");
                                 
            //VARIABLES FOR TABLE IN DATABASE
               $columns_create = "";
               $columns_insert = "";
               $values = "";
               $status_notAnswered = ".";

         //GET QUIZ VARIABLES FOR DATABASE
            $ignored_variables = array(   "id", //CAN'T EXIST DUE TO DATABASE DUPLICATE COLUMN!!!
                                 "v", //QUIZ MAKER VERSION
                                 "t", //QUIZ TYPE
                                 "rt", //.xml QUIZ REPORT TEMPLATE FOR GERERATING A MESSAGE
                                 "vt",
                                 "sn"
                                 ); //ARRAY OF AVAIBLE USER VARIABLES (ALREADY PASSED IN $_POST VARIABLES)

            foreach($_POST as $key => $value){
               if(!in_array($key, $ignored_variables)) {
                  if($key=="dr") {
                     $columns_create .= "respostas LONGTEXT, ";
                     $columns_insert .= "respostas, ";
                     $values .= "\"" . mysqli_real_escape_string($db_local->con, $_POST["dr"]) . "\", ";
                  } else {
                     switch($key) {
                        case "tl": //Time limit
                           $columns_create .= "time_limit VARCHAR(50), ";
                           $columns_insert .= "time_limit, ";
                           break;
                        case "ut": //Used time
                           $columns_create .= "user_time VARCHAR(50), ";
                           $columns_insert .= "user_time, ";
                           break;
                        case "tp": //Total points
                           $columns_create .= "total_points VARCHAR(50), ";
                           $columns_insert .= "total_points, ";
                           break;
                        case "ps": //Passing score
                           $columns_create .= "passing_score VARCHAR(50), ";
                           $columns_insert .= "passing_score, ";
                           break;
                        case "psp": //Perc pass score
                           $columns_create .= "perc_pass_score VARCHAR(50), ";
                           $columns_insert .= "perc_pass_score, ";
                           break;
                        case "sp": //User score for multiple choice questions
                           $columns_create .= "score_multiple_choice VARCHAR(50), ";
                           $columns_insert .= "score_multiple_choice, ";
                           break;
                        default:
                           $columns_create .= strtolower($key) . " VARCHAR(100), ";
                           $columns_insert .= strtolower($key) . ", ";
                           break;
                     }
                     $values .= "\"" . $value . "\", ";
                  }
               }
            }
         
         $columns_create .= "final_score VARCHAR(50), ";


         //ADD DATE AND TIME TO QUERIES
            $columns_create .= "datetime TIMESTAMP, ";
            $columns_insert .= "datetime, ";
            $values .= "\"" . date('Y-m-d H:i:s') . "\", ";
   

         //GET DATA FROM XML
            $questionNumber = 1; //SET QUESTIONS NUMBER
            $prefix = "item";


         //LOAD FILE
            $xml = new SimpleXMLElement($_POST["dr"]);
      
      
         //GET RESULTS
            $results = $xml->questions->children();
            //print_r($results);
      
      
            foreach($results as $answer_group){
               $status = (string)$answer_group->attributes()->status;
   
   
               if($answer_group->getName()=="trueFalseQuestion") { //TRUE FALSE QUESTION
         
                  if($status=="notAnswered") {
                     $values .= "\"" . $status_notAnswered . "\", ";
                     $values .= "\"" . $status_notAnswered . "\", ";
                  } else {
                     $userAnswerIndex = (int)$answer_group->answers->attributes()->userAnswerIndex;
                     $userAnswer = (string)$answer_group->answers->answer[$userAnswerIndex];
                     $awardPoints = (int)$answer_group->attributes()->awardedPoints;
                     $values .= "\"" . $userAnswer . "\", ";
                     $values .= "\"" . $awardPoints . "\", ";
                  }
         
                  $columns_create .= $prefix . $questionNumber . " VARCHAR(11), ";
                  $columns_insert .= $prefix . $questionNumber . ", ";
                  $columns_create .= $prefix . $questionNumber . "_sc"  . " VARCHAR(11), ";
                  $columns_insert .= $prefix . $questionNumber . "_sc"  . ", ";
         
               } elseif($answer_group->getName()=="multipleChoiceQuestion") { //MULTIPLE CHOICE QUESTION
         
                  if($status=="notAnswered") {
                     $values .= "\"" . $status_notAnswered . "\", ";
                     $values .= "\"" . $status_notAnswered . "\", ";
                  } else {
                     $userAnswerIndex = (int)$answer_group->answers->attributes()->userAnswerIndex;
                     $userAnswer = (string)$answer_group->answers->answer[$userAnswerIndex];
                     $awardPoints = (int)$answer_group->attributes()->awardedPoints;
         
                     $values .= "\"" . $userAnswer . "\", ";
                     $values .= "\"" . $awardPoints . "\", ";
                  }
         
                  $columns_create .= $prefix . $questionNumber . " VARCHAR(50), ";
                  $columns_insert .= $prefix . $questionNumber . ", ";
                  $columns_create .= $prefix . $questionNumber . "_sc"  . " VARCHAR(11), ";
                  $columns_insert .= $prefix . $questionNumber . "_sc"  . ", ";

               } elseif($answer_group->getName()=="multipleResponseQuestion") { //MULTIPLE RESPONSE QUESTION
      
                  $multipleResponseQuestionNumber = 1;
      
                  foreach($answer_group->answers->answer as $userMultipleResponseQuestion){
         
                     if($status!="notAnswered" && $userMultipleResponseQuestion->attributes()->selected=="true") {
                        $userAnswer = (string)$userMultipleResponseQuestion;
                        $values .= "\"" . $userAnswer . "\", ";
                        
                     } else {
                        $values .= "\"" . $status_notAnswered . "\", ";
                        
                     }
         
                     $columns_create .= $prefix . $questionNumber . "_" . $multipleResponseQuestionNumber . " VARCHAR(50), ";
                     $columns_insert .= $prefix . $questionNumber . "_" . $multipleResponseQuestionNumber . ", ";

         
                     $multipleResponseQuestionNumber++;
                  }
                     $awardPoints = (int)$answer_group->attributes()->awardedPoints;
                     if($status=="notAnswered"){
                        $values .= "\"" . $status_notAnswered . "\", ";
                     } else {
                        $values .= "\"" . $awardPoints . "\", ";
                     }

                     $columns_create .= $prefix . $questionNumber . "_sc"  . " VARCHAR(11), ";
                     $columns_insert .= $prefix . $questionNumber . "_sc"  . ", ";
                  
               } elseif($answer_group->getName()=="fillInTheBlankQuestion") { //FILL IN THE BLANK QUESTION
         
                  if($status=="notAnswered") {
                     $values .= "\"" . $status_notAnswered . "\", ";
                     $values .= "\"" . $status_notAnswered . "\", ";
                  } else {
                     $userAnswer = (string)$answer_group->attributes()->userAnswer;
                     $awardPoints = (int)$answer_group->attributes()->awardedPoints;
         
                     $values .= "\"" . $userAnswer . "\", ";
                     $values .= "\"" . $awardPoints . "\", ";
                     
                  }
                  
                  $columns_create .= $prefix . $questionNumber . " VARCHAR(50), ";
                  $columns_insert .= $prefix . $questionNumber . ", ";
                  $columns_create .= $prefix . $questionNumber . "_sc"  . " VARCHAR(11), ";
                  $columns_insert .= $prefix . $questionNumber . "_sc"  . ", ";               
                     
               } elseif($answer_group->getName()=="multipleChoiceTextQuestion") { //MULTIPLE CHOICE TEXT QUESTION
                  
                  $awardPoints = (int)$answer_group->attributes()->awardedPoints;

                  $multipleChoiceTextQuestionNumber = 1;
      
                  foreach($answer_group->details->blank as $userMultipleChoiceText){
         
                     if($status!="notAnswered" && isset($userMultipleChoiceText->attributes()->userAnswerIndex)) {
                        $userAnswerIndex = (string)$userMultipleChoiceText->attributes()->userAnswerIndex;
                        $answers = (array)$userMultipleChoiceText->answer;               
                        $values .= "\"" . $answers[$userAnswerIndex] . "\", ";
                                                
                     } else {
                        $values .= "\"" . $status_notAnswered . "\", ";
                     }
                     $columns_create .= $prefix . $questionNumber . "_" . $multipleChoiceTextQuestionNumber . " VARCHAR(50), ";
                     $columns_insert .= $prefix . $questionNumber . "_" . $multipleChoiceTextQuestionNumber . ", ";
         
                     $multipleChoiceTextQuestionNumber++;
                  }
                  
                  if($status=="notAnswered"){
                        $values .= "\"" . $status_notAnswered . "\", ";
                     } else {
                        $values .= "\"" . $awardPoints . "\", ";
                     
                     }
                     $columns_create .= $prefix . $questionNumber . "_sc"  . " VARCHAR(11), ";
                     $columns_insert .= $prefix . $questionNumber . "_sc"  . ", ";
                  
               } elseif($answer_group->getName()=="wordBankQuestion") { //WORDBANK QUESTION
                  
                  $awardPoints = (int)$answer_group->attributes()->awardedPoints;

                  $wordBankQuestionNumber = 1;
      
                  foreach($answer_group->details->word as $userWordBankQuestion){
         
                     if($status!="notAnswered" && isset($userWordBankQuestion->attributes()->userAnswer)) {
                        $userAnswer = (string)$userWordBankQuestion->attributes()->userAnswer;      
                        $values .= "\"" . $userAnswer . "\", ";
                                                
                     } else {
                        $values .= "\"" . $status_notAnswered . "\", ";
                     }
                     $columns_create .= $prefix . $questionNumber . "_" . $wordBankQuestionNumber . " VARCHAR(50), ";
                     $columns_insert .= $prefix . $questionNumber . "_" . $wordBankQuestionNumber . ", ";
         
                     $wordBankQuestionNumber++;
                  }
                  
                  if($status=="notAnswered"){
                        $values .= "\"" . $status_notAnswered . "\", ";
                     } else {
                        $values .= "\"" . $awardPoints . "\", ";
                     
                     }
                     $columns_create .= $prefix . $questionNumber . "_sc"  . " VARCHAR(11), ";
                     $columns_insert .= $prefix . $questionNumber . "_sc"  . ", ";
                     
               } elseif($answer_group->getName()=="sequenceQuestion") { //SEQUENCE QUESTION
      
                  $awardPoints = (int)$answer_group->attributes()->awardedPoints;                  

                  $SequenceQuestionNumber = 1;
      
                  foreach($answer_group->answers->answer as $userSequenceQuestion){
         
                     if($status!="notAnswered" && isset($userSequenceQuestion->attributes()->userDefinedPosition)) {
                        $userDefinedPosition = (int)$userSequenceQuestion->attributes()->userDefinedPosition;
                        $answers = (string)$answer_group->answers->answer[$userDefinedPosition];
                        $awardPoints = (int)$answer_group->attributes()->awardedPoints;
                        
                        $values .= "\"" . $answers . "\", ";
                     } else {
                        $values .= "\"" . $status_notAnswered . "\", ";
                     }
         
                     $columns_create .= $prefix . $questionNumber . "_" . $SequenceQuestionNumber . " VARCHAR(50), ";
                     $columns_insert .= $prefix . $questionNumber . "_" . $SequenceQuestionNumber . ", ";

         
                     $SequenceQuestionNumber++;
                  }   

                     if($status=="notAnswered"){
                        $values .= "\"" . $status_notAnswered . "\", ";
                     } else {
                        $values .= "\"" . $awardPoints . "\", ";
                     
                     }
                     $columns_create .= $prefix . $questionNumber . "_sc"  . " VARCHAR(11), ";
                     $columns_insert .= $prefix . $questionNumber . "_sc"  . ", ";
                  
               } elseif($answer_group->getName()=="numericQuestion") { //NUMERIC QUESTION
         
                  if($status=="notAnswered") {
                     $values .= "\"" . $status_notAnswered . "\", ";
                     $values .= "\"" . $status_notAnswered . "\", ";
                  } else {
                     $userAnswer = (string)$answer_group->attributes()->userAnswer;
                     $awardPoints = (int)$answer_group->attributes()->awardedPoints;
         
                     $values .= "\"" . $userAnswer . "\", ";
                     $values .= "\"" . $awardPoints . "\", ";

                  }
         
                  $columns_create .= $prefix . $questionNumber . " VARCHAR(50), ";
                  $columns_insert .= $prefix . $questionNumber . ", ";
                  $columns_create .= $prefix . $questionNumber . "_sc"  . " VARCHAR(11), ";
                  $columns_insert .= $prefix . $questionNumber . "_sc"  . ", ";
                     
               } elseif($answer_group->getName()=="matchingQuestion") { //MATCHING QUESTION
      
                  $awardPoints = (int)$answer_group->attributes()->awardedPoints;

                  $MatchingQuestionNumber = 1;
      
                  foreach($answer_group->userAnswer->match as $userMatchingQuestion){
         
                     if($status!="notAnswered" && isset($userMatchingQuestion->attributes()->premiseIndex)) {
                     $permiseIndex = (int)$userMatchingQuestion->attributes()->premiseIndex;
                     $responseIndex = (int)$userMatchingQuestion->attributes()->responseIndex;
                     $permiseanswers = (string)$answer_group->premises->premise[$permiseIndex];
                     $responseanswers = (string)$answer_group->responses->response[$responseIndex];
                     $awardPoints = (int)$answer_group->attributes()->awardedPoints;
                     $values .= "\"" . $permiseanswers."<=>".$responseanswers . "\", ";
                     
                     } else {
                        $values .= "\"" . $status_notAnswered . "\", ";
                     }
                     $columns_create .= $prefix . $questionNumber . "_" . $MatchingQuestionNumber . " VARCHAR(50), ";
                     $columns_insert .= $prefix . $questionNumber . "_" . $MatchingQuestionNumber . ", ";

         
                     $MatchingQuestionNumber++;
                  }
                     if($status=="notAnswered"){
                        $values .= "\"" . $status_notAnswered . "\", ";
                     } else {
                        $values .= "\"" . $awardPoints . "\", ";
                     }
                     $columns_create .= $prefix . $questionNumber . "_sc"  . " VARCHAR(11), ";
                     $columns_insert .= $prefix . $questionNumber . "_sc"  . ", ";
                     
               } elseif($answer_group->getName()=="fillInTheBlankQuestionEx") { //FILL IN THE BLANK EX QUESTION
      
$awardPoints = (int)$answer_group->attributes()->awardedPoints;

                  $fillInTheBlankQuestionExNumber = 1;
      
                  foreach($answer_group->details->blank as $userFillInTheBlankQuestionEx){
         
                     if($status!="notAnswered" && isset($userFillInTheBlankQuestionEx->attributes()->userAnswer)) {
                        $userAnswer = (string)$userFillInTheBlankQuestionEx->attributes()->userAnswer;
                        $awardPoints = (int)$answer_group->attributes()->awardedPoints;
                        $values .= "\"" . $userAnswer . "\", ";
                     } else {
                        $values .= "\"" . $status_notAnswered . "\", ";
                     }
         
                     $columns_create .= $prefix . $questionNumber . "_" . $fillInTheBlankQuestionExNumber . " VARCHAR(50), ";
                     $columns_insert .= $prefix . $questionNumber . "_" . $fillInTheBlankQuestionExNumber . ", ";
         
                     $fillInTheBlankQuestionExNumber++;
                  }   
                     if($status=="notAnswered"){
                        $values .= "\"" . $status_notAnswered . "\", ";
                     } else {
                        $values .= "\"" . $awardPoints . "\", ";
                     
                     }
                     $columns_create .= $prefix . $questionNumber . "_sc"  . " VARCHAR(11), ";
                     $columns_insert .= $prefix . $questionNumber . "_sc"  . ", ";
                     
               } elseif($answer_group->getName()=="essayQuestion") { //ESSAY QUESTION

                  if($status=="notAnswered") {
                     $values .= "\"" . $status_notAnswered . "\", ";
                  } else {
                     $essayQuestion = $answer_group->userAnswer;
                     $values .= "\"" . (string)$essayQuestion . "\", ";
                  }

                  $columns_create .= $prefix . $questionNumber . " LONGTEXT, ";
                  $columns_create .= $prefix . $questionNumber. "_sc" . " VARCHAR(50), ";
                  $columns_create .= $prefix . $questionNumber. "_prof" . " VARCHAR(100), ";
                  $columns_create .= $prefix . $questionNumber. "_rev" . " VARCHAR(50), ";
                  $columns_insert .= $prefix . $questionNumber . ", ";

               }

               $questionNumber++;
               echo "\n";
            }

         
            $columns_create = rtrim($columns_create, ", ");
            $columns_insert = rtrim($columns_insert, ", ");
            $values = rtrim($values, ", ");
            
            //CREATE QUERIES
            
            $query_create = "CREATE TABLE IF NOT EXISTS " . $tblname . " (id INT(100) UNSIGNED AUTO_INCREMENT PRIMARY KEY, " . $columns_create . ")";
            _log($query_create);
            
            $query_insert = "INSERT INTO " . $tblname . " (" . $columns_insert . ") VALUES (" . $values . ")"; 
            _log($query_insert);
            
            // CREATE LOCAL TABLE IF IT NOT EXISTS
            mysqli_query($db_local->con, $query_create) or _errorlog("Error on creating the LOCAL DB (" . mysqli_error($db_local->con) . ").");
            
            // WRITE RESULTS LOCAL DATABASE
            mysqli_query($db_local->con, $query_insert) or _errorlog("Error inserting results in LOCAL DB (" . mysqli_error($db_local->con) . ").");
            
            // CREATE REMOTE TABLE IF IT NOT EXISTS
            mysqli_query($db_remote->con, $query_create) or _errorlog("Error creating table in REMOTE DB(" . mysqli_error($db_remote->con) . ").");

            // WRITE RESULTS REMOTE DATABASE
            mysqli_query($db_remote->con, $query_insert) or _errorlog("Error inserting results in REMOTE DB (" . mysqli_error($db_remote->con) . ").");

   
         //IF EVERYTHING WENT FINE, THE FLASH QUIZ WILL NEED TO RECEIVE 'OK'. OTHERWISE IT WILL SAY "CANNOT SEND RESULTS TO SERVER"...
            if($errors==0) {
               echo "OK";
               _log("Written answer.");
            } else {
               $errors--;
               _errorlog("There were errors. Answer not written");
            }
   
      } catch (Exception $e){ //WRITE ERROR IN A LOG FILE
         error_log($e);
         echo "Error: " . $e->getMessage();
         _errorlog("Erro no try: " . $e->getMessage());
      }

   _log("Script terminado com " . $errors . " erro(s)");

   function _errorlog($message){
      global $errors;
      date_default_timezone_set("Europe/Lisbon");
      $logFilename = dirname(__FILE__) . '/log_quiz.log';
      //$str=str_replace("\r\n","",$str);
      $logMessage    = date('Y-m-d H:i:s') . " - * " . $message . PHP_EOL;
      @file_put_contents($logFilename, $logMessage, FILE_APPEND);
      $errors++;
   }


   function _log($message){
      date_default_timezone_set("Europe/Lisbon");
      $logFilename = dirname(__FILE__) . '/log_quiz.log';
      //$str=str_replace("\r\n","",$str);
      $logMessage    = date('Y-m-d H:i:s') . " - " . $message . PHP_EOL;
      @file_put_contents($logFilename, $logMessage, FILE_APPEND);
   }

?> 


Profile profile test

Posted: Sun Dec 18, 2016 1:25 pm   Post subject: Re: Help Please - Results to Server (QuizMaker)

Thank You so much Sir.. You really saved me. As you do unto others so shall others do unto you. God Bless You Greatly.
So i guess with these codes i can set different types of questions in their numbers anytime of which i will get the results in a txt file as well as in my database.
Please my final question without internet connection, can the quiz be conducted as well as the results submitted to the server on a local networked computers. Thanks


Profile profile test

Posted: Tue Jan 17, 2017 12:18 pm   Post subject: Re: Help Please - Results to Server (QuizMaker)

@jpmaroco, I have a question for you. May I please get a step-by-step walkthrough for making the code you posted above work. I have taken a crash-course on PHP but I'm still a little bit confused as to how to actually run the PHP code server-side. I got i-Spring's code on the server and I have the test results linked to the index.php file, but now I'm stuck.

I uploaded your code but I have no clue where to put it. I copied and pasted it into the index.php file but alas, no dice.

I am super n00b status and If you are down to throw a bone my way it would be greatly appreciated. I'll even do a commissioned painting for you if you are interested.

Thanks and hope to hear from you soon.


Profile profile test

Posted: Fri Aug 11, 2017 9:07 am   Post subject: Re: Help Please - Results to Server (QuizMaker)

@jpmaroco

Have you the script working with 8.7.0 and ther "groups" feature within this version?

Group details are held in the "dr" variable.

Regards
Dave


Profile profile test

Posted: Tue Aug 29, 2017 9:35 am   Post subject: Re: Help Please - Results to Server (QuizMaker)

how can i send the quiz result to the database?


Profile profile test

Posted: Tue Aug 29, 2017 12:21 pm   Post subject: Re: Help Please - Results to Server (QuizMaker)

Dear Gerald,

This is Alex with iSpring Tech Support team.

Please refer to the first pages of this thread. Also take a look at this article about sending quiz results to email and let me know whether this information was useful: http://www.ispringsolutions.com/articles/sending-quiz-results-to-server.html


Profile profile test

Posted: Tue Aug 29, 2017 1:49 pm   Post subject: Re: Help Please - Results to Server (QuizMaker)

is there easiest way to send results to database?


Profile profile test

Posted: Tue Aug 29, 2017 2:07 pm   Post subject: Re: Help Please - Results to Server (QuizMaker)

@jpmaroco
good day! can you please instruct me step by step on how to send the quiz maker results to database. i already made a quiz. i also did the instruction on the first thread. hoping for your response. Thanks in advance.


Profile profile test

Posted: Wed Aug 30, 2017 10:14 am   Post subject: Re: Help Please - Results to Server (QuizMaker)

Dear Gerald,

Please be sure that article I shared with you contains the easiest way to set everything up and send your quiz results to server. Also there you can even find the PHP scrypt that you need adjust only a bit and insert your own hyperlinks!


Profile profile test

Posted: Thu Feb 14, 2019 3:00 pm   Post subject: Re: Help Please - Results to Server (QuizMaker)

Hi all,
My script is not fully working anymore with QM v>8.5... just checked... the question's point is written, but not the users answers... I guess the xml attributes with the user's answers has changed!...
Does anybody have a working solution for QM > 8.5?
As usual iSpring tech support is useless!...


Profile profile test

Posted: Sun May 19, 2019 8:49 am   Post subject: Re: Help Please - Results to Server (QuizMaker)

I realise that this post does not relate exactly to 'Results to Server' but I just want to share a very easy alternative solution that may suit the requirements of many iSpring QuizMaker users:-

If results are reported by email to the quiz administrator it is straightforward to create a Zapier 'zap' to 'parse' the email and automatically add the results to a new row of a spreadsheet either using an Excel spreadsheet or using Google Sheets.

Hope this helps somebody out there!


Profile profile test
Display posts from previous:  Sort by  

   Page: 1, 2, 3, 4, 5


Who is online
Who is online In total there are 9 users online :: 0 registered, 0 hidden and 9 guests (based on users active over the past 5 minutes)
Most users ever online was 803 on Sat Dec 12, 2020 9:21 am

Registered users: No registered users