37 Replies Latest reply: Dec 6, 2012 1:05 PM by RichardGetting RSS

    Quiz Results Analyzer w/Internal Server

    rtc2010

      I believe I've stumbled on a serious bug with the Quiz Results Analyzer, but want to throw this out in case someone can identify an error on my end.

       

      I'm using the Captivate 5 trial, and have created a quiz to test the various new tracking options available. I published one version of it to send results to Acrobat.com, and another version to send results to one of my web servers.

       

      Using the Quiz Results Analyzer to view results on Acrobat.com -- everything works great. However, it misbehaves when I try to pull results from a server on the web. Baffled at this point, I published a third version of my test project to my local WAMP server. Again, the XML results files get written perfectly by Captivate. But, the Results Analyzer won't show the data.

       

      Here's what I see in the Adobe Captivate Quiz Results Analyzer:

      After selecting my server and clicking the 'Get Results' button, the Organization, Department and Course dropdowns appear blank. If I click on anyone of those dropdowns I find each of them populated with some CSS stylesheet elements.

       

      For example, font-size:36px......font-weight:bolder......color:#666666......text-align:center.......ma rgin-right:auto

       

      analyzer_trouble.gif

       

      My System Details

      Now, since I know the Analyzer is an AIR application, I suppose I might mention some system details.

      I'm running Win7 x64, have the full CS5 Master Suite installed, and my installed version of AIR is 2.0.2.12610.

       

      Another Troubleshooting Attempt

      I've been able to confirm that the XML data is fine by choosing "From This Computer" in the Source menu and navigating to a local version of the results folder. The Results Analyzer functions as it should in that particular case.

       

      I'd really like to get this working, and wonder if anyone else has seen the odd behavior I'm seeing.

        • 1. Re: Quiz Results Analyzer w/Internal Server
          Chinmay Baid Community Member

          Hi,

           

          This is strange. Can you please check if you have placed the internalserverread.php file in the root of the wamp server? Also, the link to this PHP file has to be added in the preferences of Quiz Results Analyzer.

           

          Regards

          Chinmay

          • 2. Re: Quiz Results Analyzer w/Internal Server
            lbj9000

            Hope you can help out on this one?

            I get the following error in the Quiz analyzer. "No Companies found in the current user account." 
              
            In the Quiz Analyzer under "Preferences" in the text field "Link" I have written "http://nannabrosolat.dk/quiz/CaptivateResults". 
              
            Has taken the quiz once and can see that there is created a folder "CaptivateResults". In the "CaptivateResults" is a folder with the company name that I wrote when I created the quiz. So it seems that I am doing everything correctly or?

            • 3. Re: Quiz Results Analyzer w/Internal Server
              rtc2010 Community Member

              lbj9000 --

               

              I got sidetracked last week and haven't tried again using a real server (out on the web), but I did managed to get it working using my desktop installation of WAMP as the server.

               

              Chinmay's post revealed a critical element you seem to also be missing: the PHP file to be accessed needs to be in the URL you specify in the Quiz Results Analyzer's Preferences panel. You have to specify the full path to Adobe's stock PHP file: internalserverread.php.  (I made the mistake of assuming the Analyzer already knew which PHP file it was looking for.  For example, mine is now working when I use the following URL: http://localhost/trainlocal/internalserverread.php

               

              I'm sure they didn't hardcode the reference to that internalserverread.php file because they wanted to leave open the option for you to create your own PHP file if you want/need to.

               

              A tutorial file Adobe included with Captivate 5 was helpful. Check your system for this file or maybe just copy/paste the following URL into your browser to view the steps involved in getting Alternate Reporting to work.

               

              C:\Program Files (x86)\Adobe\Adobe Captivate 5\cp_tutorials\htmls\18_Alternate_Reporting.html

               

              Hope that helps!

               

              -- Randall

              • 4. Re: Quiz Results Analyzer w/Internal Server
                lbj9000 Community Member

                Hello RTC2010

                Thanks for the quick reply.

                Unfortunately I still get the same error: "No Companies found in the current user account."

                Status:
                The Quiz writes resultdata to the folder. It has created a folder named: http://nannabrosolat.dk/quiz/CaptivateResults

                In that folder is a folder that has the company name I entered when I created the quiz. At the bottom of the folder structure is some xml files which I assume is the quiz data.

                In the Quiz analyzer in the text field "Link" I have written:
                http://nannabrosolat.dk/quiz/internalserverread.php

                Kind Regards
                Lasse Brosolat Jensen

                • 5. Re: Quiz Results Analyzer w/Internal Server
                  Chinmay Baid Community Member

                  Hi,

                   

                  Have you placed the internalserverread.php at the same location, which you have mentioned in the link?

                   

                  Regards

                  Chinmay

                  • 6. Re: Quiz Results Analyzer w/Internal Server
                    lbj9000 Community Member

                    Hello Chinmay Baid  


                    Yes I have placed it here: http://nannabrosolat.dk/quiz/internalserverread.php

                     

                    Kind Regards

                     

                    Lasse

                    • 7. Re: Quiz Results Analyzer w/Internal Server
                      Chinmay Baid Community Member

                      Hi Lasse,

                       

                      This message "No Companies found in the current user account", is thrown in case if any IOError or any SecurityError is encountered.

                       

                      Following information will be helpful to resolve this problem :

                      1. Can you please check the access permissions/connectivity on this server, from where you are trying to read the data?

                      2. Can you mention which server are you using? Is it a unix-based or windows-based server?

                      3. If it is a unix-based server, can you check the permissions set for every folder?

                       

                      Regards

                      Chinmay

                      • 8. Re: Quiz Results Analyzer w/Internal Server
                        lbj9000 Community Member

                        Hello Chinmay

                        internalserverread.php, internalServerReporting.php and all folders in “CaptivateResults” have following permissions:

                        Owner permission: Read, Write, Execute

                        Groups permission: Read, Execute

                        Public permission: Read, Execute

                        The XML files in the bottom folder in “CaptivateResults” have following permissions:

                        Owner permission: Read, Write

                        Groups permission: Read

                        Public permission: Read


                        It is a Unix server. But at work we are using Windows/Asp.net. So I am planning to convert the files to c#.

                        Any way.

                        When I run the script-pages “outside” Captivate I get error with “internalserverread.php” but “internalServerReporting.php ” works fine.

                        http://nannabrosolat.dk/quiz/internalserverread.php Error
                        http://nannabrosolat.dk/quiz/internalServerReporting.php Works fine

                        On another webhotel it is the same:

                        http://www.loppen.com/quiz/quiz/internalserverread.php Error
                        http://www.loppen.com/quiz/quiz/internalServerReporting.php Works fine

                         

                        Kind regards

                        Lasse

                        • 9. Re: Quiz Results Analyzer w/Internal Server
                          Chinmay Baid Community Member

                          Hi Lasse,

                           

                          Thanks for sharing the information!!

                           

                          Ideally, no error should occur with the access permissions that you have mentioned.

                          Can you please send us the details of the unix server configuration as well the PHP version installed on your server? Using all this information, we'll try to simulate and identify the issue at our end.

                           

                          Regards

                          Chinmay

                          • 10. Re: Quiz Results Analyzer w/Internal Server
                            lbj9000 Community Member

                            Thank you for the quick responses.

                             

                            The webhotel i am using is: http://www.one.com/en/. Php version is 5.

                             

                            Maybe you can give me some specific questions about the unix server configuration, sorry im not a unix guy, I will then send them to the webhotels support.

                             

                             

                            Kind regards

                             

                            Lasse

                            • 11. Re: Quiz Results Analyzer w/Internal Server
                              lbj9000 Community Member

                              Hello Chinmay

                               

                              There is a controlpanel on the webhotel were i can:
                              Turn on/off: PHP error messages --> It is set to Off

                              Turn on/off: Register globals --> It is set to Off

                               

                              It is also posible export log files --> Let me know if I should send you some?


                              The other webhotel I mentioned earlier. There the quiz will not write quizdata(XML) to the server. I can also provide you with information on that server/webhotel?

                               

                               

                               

                              Kind regards and thanks for the help.

                               

                              Lasse

                              • 12. Re: Quiz Results Analyzer w/Internal Server
                                Chinmay Baid Community Member

                                Hi Lasse,

                                 

                                Thanks again for sharing the information!!

                                 

                                We seem to have found the solution while debugging. And we have made some changes the internalserverread.php file to work with Unix server.

                                 

                                Can you please share your email-id, so that I can send you the fixed PHP file?

                                My e-mail id is : cbaid@adobe.com.

                                 

                                Regards

                                Chinmay

                                • 13. Re: Quiz Results Analyzer w/Internal Server
                                  lbj9000 Community Member

                                  Hello Chinmay


                                  Thanks - it is working now.

                                   

                                  Have a good summer :-)

                                  • 14. Re: Quiz Results Analyzer w/Internal Server
                                    IHeartCaptivate Community Member

                                    Chinmay -

                                     

                                    Can you tell me what was wrong? I'm getting the same problem when I press Get Results in the Analyzer, a window appears saying "No compaines found in the current user account." I read about making sure the permissions correct, but where do I do that?

                                     

                                    And - at the end of the quiz when I enter in my information after pressing Post Results, "Connecting..." appears on top of my project, that just sits there. I assume it's trying to connect to the server, but it never connects. I don't get the window saying the results have posted successfully.

                                     

                                    So what am I doing wrong?

                                     

                                    • Under preferences in Analyzer I have my link to the InternalServerRead.php file.
                                    • In my project under Quiz Preferences, and the Internal Settings I have the link to the internalServerReporting.php file
                                    • I watched the tutorial (18 - Alternate Reporting) and followed those directions. I created a trainlocal folder, published my Captivate project to a folder within the trainlocal folder. The PHP files are in the trainlocal folder also.
                                    • The server I have is located on our network, not on my local computer.
                                    • I have not changed either PHP file, bc I don't know how or what I would do.
                                    • I'm on Windows 7 - 32 bit.
                                    • I have tried reporting to Acrobat.com and it worked fine.

                                    Help!

                                    • 15. Re: Quiz Results Analyzer w/Internal Server
                                      Chinmay Baid Community Member

                                      Hi,

                                       

                                      The above post was related to unix servers. Can you please mention the details of the server which you're using?

                                       

                                      Regards

                                      Chinmay Baid

                                      http://blogs.adobe.com/captivate

                                      • 16. Re: Quiz Results Analyzer w/Internal Server
                                        IHeartCaptivate Community Member

                                        I think I got it...but I thought I'd post my results in case anyone else is following this thread....

                                         

                                        The analyzer wouldn't give me results if I published it, viewed the output, took the quiz and tried to submit the results. I had to go to the server and access the project, and take the quiz that way for the results to appear in the analyzer. I don't know if that is common knowledge, but I didn't know that, so if you are having this problem also, try going to the server to access your project. Once I did that, it worked.

                                         

                                        Per the tutorial (in the Program Files of Adobe Captivate), the results from the quiz should go to the analyzer but it didn't for me, maybe security reasons?? It should be noted that whenever I was trying to get a quiz to report with email, it would never work when I "Viewed Output" after publishing the project. I would always have to post it to our internal site and access it through the web. So maybe whatever is causing me to not use an email was also causing the results not to be posted. Who cares, it works now.

                                         

                                        Chinmay - I don't think I need your help anymore. I don't really care that it doesn't work when viewing the output. As long as it works is all I care about. But thank you for responding to me so quickly.

                                        • 17. Re: Quiz Results Analyzer w/Internal Server
                                          FightRice

                                          I sent an email the other day inquiring about these changes and the file. Is it possible you share the file for us here to use, I'm having the same problem the original poster is on a NIX server.

                                           

                                          Thanks

                                          • 18. Re: Quiz Results Analyzer w/Internal Server
                                            Chinmay Baid Community Member

                                            Hi,

                                             

                                            Attached is the PHP file for Unix Servers.

                                            Please try and let me know if it works for you.

                                             

                                            Regards

                                            Chinmay Baid

                                             

                                            Software Engineer

                                            Adobe Captivate | Adobe Systems | Bangalore

                                            • 19. Re: Quiz Results Analyzer w/Internal Server
                                              FightRice Community Member

                                              Thanks for the reply Chinmay, but how do I download attachments on the forums here? I dont see one listed with the post.

                                               

                                              Thanks again!

                                              • 20. Re: Quiz Results Analyzer w/Internal Server
                                                Chinmay Baid Community Member

                                                Can you send me your email-id?

                                                I'll send the file to you on the same.

                                                 

                                                My email-id is : cbaid@adobe.com.

                                                 

                                                Regards

                                                Chinmay Baid

                                                 

                                                Software Engineer

                                                Adobe Captivate | Adobe Systems | Bangalore

                                                • 21. Re: Quiz Results Analyzer w/Internal Server
                                                  FightRice Community Member

                                                  Sure mine is dmchenry35@gmail.com  Thanks again!

                                                  • 22. Re: Quiz Results Analyzer w/Internal Server
                                                    dnguyen.mtv@gmail.com

                                                    Hi Chinmay,

                                                    I also have a same issue as the owner of this thread, that I couldn't get results from my unix-based server. When I hit the "Generate Report" i got the "data is not present on local file system." Would you please help? my email address is: dnguyen.mtv@gmail.com

                                                    quizresult.png

                                                    Thanks much!

                                                    • 23. Re: Quiz Results Analyzer w/Internal Server
                                                      sjpvt001

                                                      Hello Chinmay and others.....

                                                      I am also having a problem getting the "internal server" option to work with out unix (LAMP) server configuration.  This appears to be an ideal solution to our quiz reporting needs, but I do not understand why there isn't better documentation on how to set  this up on a very commonly used server setup such as ours.  If there is a php file for unix servers, can you please email it to me?

                                                      Thank you,

                                                      SJPVT

                                                      • 24. Re: Quiz Results Analyzer w/Internal Server
                                                        sjpvt001 Community Member

                                                        Hello Chinmay and others.....

                                                        I am also having a problem getting the "internal server" option to work with out unix (LAMP) server configuration.  This appears to be an ideal solution to our quiz reporting needs, but I do not understand why there isn't better documentation on how to set  this up on a very commonly used server setup such as ours.  If there is a php file for unix servers, can you please email it to me?

                                                        My email address is:  spintaur@uvm.edu

                                                        Thank you,

                                                        SJPVT

                                                        • 25. Re: Quiz Results Analyzer w/Internal Server
                                                          cpalmer0001

                                                          I was getting same error with my Captivate Results Analyzer "No Companies Found....."  Searched around and found that if you add

                                                           

                                                          $filterArray = array(".","..",".DS_STORE",".svn");    after <?php in the internalserverread.php file and then put back on your server it worked. 

                                                           

                                                          Top line of file should look like this:

                                                           

                                                          <?php $filterArray = array(".","..",".DS_STORE",".svn");

                                                          • 26. Re: Quiz Results Analyzer w/Internal Server
                                                            rtc2010 Community Member

                                                            Casey,

                                                            Give this one a try. I believe it's the one Chinmay modified last year --

                                                            it's the one with the latest timestamp on my server.

                                                            • 27. Re: Quiz Results Analyzer w/Internal Server
                                                              TMPRisk

                                                              I am having the same problem as many other users in this thread.  

                                                               

                                                              • I have published a project with a quiz to an external hosted web server
                                                              • I am able to take the quiz and successfully get results posted to the server as an XML file
                                                              • I am unable to read these results with the Quiz Analyzer
                                                              • I am using Captivate 5.5

                                                               

                                                              I have two servers (one used for development and another for production).  Both are Unix servers but hosted by different providers

                                                              • I have successfully resolved the problem on the development server adding
                                                                • $filterArray = array(".","..",".DS_STORE",".svn"); to the internalserverread.php file after the <?php opening
                                                              • When using the same edited internalserverread.php file on the production server I am unable to read the results
                                                              • I have validated that the file permissions for the internalserverread.php file and for the captivate results folders match on both servers.

                                                               

                                                              Your support would be appreciated

                                                              • 28. Re: Quiz Results Analyzer w/Internal Server
                                                                AHamel Community Member

                                                                I am having a similar issue. I am hosting the quiz on our web server (linux running Apache and Ubuntu with a version 5 of PHP). I can send someone a link to take the quiz and it reports that the results have posted, but I have no results anywhere. Ideally I would like to use the analyzer, but I really just want to access the results in any way at the moment. I have followed the tutorials, but since I am not using WAMP I am not able to troubleshoot this issue by watching them. Can you help?

                                                                Thanks,

                                                                Ann

                                                                ann.hamel@gmail.com

                                                                • 29. Re: Quiz Results Analyzer w/Internal Server
                                                                  diehlang Community Member

                                                                  Hi Chinmay,

                                                                   

                                                                  I'm creating a quiz in Captivate5.5 that will be taken in a classroom of 20-25 junior high students for a thesis project-- this is a one time event so it's not worth it to work with LMS.  It's not realistic for me to ask each student to create an Adobe ID so I can get results through Adobe.com.  I've been reading blogs and watching tutorials but I'm still not sure what the best method is to gather results if each student is on a separate computer.  I can publish the quiz to my website-- can I also have results reported to a folder on my server (my website)?  I'm confused about the internal server method--does it have to be on the computer that has the quiz, or can I copy the php files (internalserverread, etc) to my html folder on my server?

                                                                   

                                                                  If I use the email method, does my quiz need to be published online?

                                                                   

                                                                  Sorry for the obvious questions. I thought this was going to be simple, but after reading all the blogs about this I'm more confused!

                                                                   

                                                                  Thanks for your help

                                                                  Angela

                                                                  angela.diehl@utsouthwestern.edu

                                                                  diehlang@yahoo.com

                                                                  • 30. Re: Quiz Results Analyzer w/Internal Server
                                                                    Chinmay Baid Community Member

                                                                    Hi Angela,

                                                                     

                                                                    You can host your course on your own server. But you need to make the appropriate settings as mentioned in the blogs. Once you publish the course with appropriate settings and distribute it, you can get results of all the students on the server itself.

                                                                    You can follow the steps mentioned below :

                                                                    1. Copy your PHP files on any server. (your server should have write permissions enabled)

                                                                    2. Create the course and set the quiz reporting preferences to Internal Server. Also, put the path of the internalServerReporting.php file in the Configuration dialog.

                                                                    3. Publish the course and host it anywhere.

                                                                    4. You can distribute it and get the results stored at the same location where internalServerReporting.php file is hosted.

                                                                     

                                                                    Later, you can use Quiz Results Analyzer to view the reports.

                                                                     

                                                                    Hope this helps!!

                                                                     

                                                                    Regards,

                                                                    Chinmay

                                                                    • 31. Re: Quiz Results Analyzer w/Internal Server
                                                                      diehlang Community Member

                                                                      Thanks so much.  I appreciate your quick response!

                                                                       

                                                                      I’ll set it up and test it asap.  If I run into problems may I email you again?

                                                                       

                                                                      Thanks

                                                                      Angela

                                                                       

                                                                      --

                                                                      Angela Diehl

                                                                      Instructor, Multimedia Production

                                                                      Biomedical Communications Graduate Program

                                                                      UT Southwestern Medical Center

                                                                      Paul M. Bass Administrative and Clinical Center

                                                                      6363 Forest Park Road, Suite 1020

                                                                      Dallas, Texas 75390-8881

                                                                      (214) 648-4028

                                                                      • 32. Re: Quiz Results Analyzer w/Internal Server
                                                                        diehlang Community Member

                                                                        Hi Chinmay,

                                                                         

                                                                        I took the quiz and selected “post results.”  It asks for my name and email ID....when I hit “send” it returns a message that says “wrong URL”

                                                                         

                                                                        Do I need to edit the php file before saving to my server?

                                                                         

                                                                        Many thanks

                                                                        Angela

                                                                        • 33. Re: Quiz Results Analyzer w/Internal Server
                                                                          JJPeople

                                                                          I suspect the difference in your unix server's PHP configuration relates to the handling of global variables and if like me the readdir function does not return the current and parent directories, i.e. ".,.." as the first entries in the list. These two issues combined caused the Quiz Analyzer to behave differently on my two servers.

                                                                           

                                                                          I modified the internalserverread.php script in the following way and it now works: -

                                                                           

                                                                          <?php

                                                                          switch($_POST['API'])

                                                                          {

                                                                              case 1: getCompanies();

                                                                                      break;

                                                                              case 2: getDepartments($_POST['company']);

                                                                                      break;

                                                                              case 3: getCourses($_POST['company'],$_POST['department']);

                                                                                      break;

                                                                              case 4: getXMLs($_POST['company'],$_POST['department'],$_POST['course']);

                                                                                      break;

                                                                              case 5: downloadXML($_POST['company'],$_POST['department'],$_POST['course'],$_POST['xmlname']);

                                                                                      break;

                                                                              default: getCompanies();

                                                                                      break;

                                                                          }

                                                                          function getCompanies()

                                                                          {

                                                                              $exclude = array(".","..");

                                                                              $dir = @opendir("CaptivateResults");

                                                                              if($dir != "")

                                                                              {

                                                                                  echo ".;..;";

                                                                                  while(($file = readdir($dir)) !== false)

                                                                                  {

                                                                                      if ($file == $exclude[0] || $file == $exclude[1]) {

                                                                                                  continue;

                                                                                      }

                                                                                      if(!is_file($file))

                                                                                      echo $file.";";

                                                                                  }

                                                                                  closedir($dir);

                                                                              }

                                                                              else

                                                                              echo "No Captivate Results found;";

                                                                          }

                                                                          function getDepartments($comp)

                                                                          {

                                                                              $exclude = array(".","..");

                                                                              $dir = @opendir("CaptivateResults"."/".$comp);

                                                                              echo ".;..;";

                                                                              while (($file = readdir($dir)) !== false)

                                                                              {

                                                                                  if ($file == $exclude[0] || $file == $exclude[1])

                                                                                      continue;

                                                                                  if(!is_file($file))

                                                                                  echo $file.";";

                                                                              }

                                                                              closedir($dir);

                                                                          }

                                                                          function getCourses($comp,$dept)

                                                                          {

                                                                              $exclude = array(".","..");

                                                                              $dir = @opendir("CaptivateResults"."/".$comp."/".$dept);

                                                                              echo ".;..;";

                                                                              while (($file = readdir($dir)) !== false)

                                                                              {

                                                                                  if ($file == $exclude[0] || $file == $exclude[1])

                                                                                      continue;

                                                                                  if(!is_file($file))

                                                                                  echo $file.";";

                                                                              }

                                                                              closedir($dir);

                                                                          }

                                                                          function getXMLs($comp,$dept,$course)

                                                                          {

                                                                              $dir = @opendir("CaptivateResults"."/".$comp."/".$dept."/".$course);

                                                                              if($dir != "") {

                                                                                  $directory = "CaptivateResults"."/".$comp."/".$dept."/".$course;

                                                                                  while (($file = readdir($dir)) !== false)

                                                                                  {

                                                                                      if(!(is_dir($file)) && findexts($file) == 'xml')

                                                                                      {

                                                                                          echo $file.",".number_format(filectime($directory."/".$file),0, '.', '').";";

                                                                                      }

                                                                                  }

                                                                              }

                                                                              closedir($dir);

                                                                          }

                                                                          function downloadXML($comp,$dept,$course,$name)

                                                                          {

                                                                              $dir = "CaptivateResults"."/".$comp."/".$dept."/".$course."/".$name;

                                                                              $handle = fopen($dir, "r");

                                                                              $contents = fread($handle, filesize($dir));

                                                                              fclose($handle);

                                                                              echo $contents;

                                                                          }

                                                                          function findexts ($filename)

                                                                          {

                                                                              $filename = strtolower($filename) ;

                                                                              $exts = explode(".", $filename);

                                                                              $n = count($exts)-1;

                                                                              $exts = $exts[$n];

                                                                              return $exts;

                                                                          }

                                                                          ?>

                                                                           

                                                                           

                                                                          I hope this helps.

                                                                           

                                                                          Bests,

                                                                           

                                                                          Mike

                                                                          • 34. Re: Quiz Results Analyzer w/Internal Server
                                                                            diehlang Community Member

                                                                            Thanks Mike.  I'll give it a try!

                                                                            • 35. Re: Quiz Results Analyzer w/Internal Server
                                                                              AHamel Community Member

                                                                              I am having similar problems. I have created a short quiz to test this

                                                                              feature and it will perform as expected except I have no results. You can

                                                                              try it here:

                                                                              http://community.cardigan.org/~spe

                                                                               

                                                                              I was able to get someone to look at using unix and it says that I am

                                                                              missing a MMTracking.swf file as soon as you open the site. I am currently

                                                                              using the php code you pasted, not the original from the template folder in

                                                                              Captivate. I don't believe it is collecting the answers.

                                                                               

                                                                              Can you help?

                                                                              Thanks,

                                                                              Ann

                                                                               

                                                                               

                                                                              Ann

                                                                               

                                                                              http://protocol.by/ann

                                                                              • 36. Re: Quiz Results Analyzer w/Internal Server
                                                                                Greek2U Community Member

                                                                                Mike,

                                                                                Thank you for the modified PHP script you provided.  It is ALMOST exactly what I needed.  In fact, it was currently the only offered solution online that even came close to what I needed.  However, since I am using a Linux-based server it wasn't working exactly right until I made some small modifications (removed one line and added another). So for those of you using the Quiz Results Analyzer with Linux-based servers, here is the secret sauce to make the internalserverread.php script work for you. Enjoy and let me know if this finally does the trick for anyone else!

                                                                                 

                                                                                <?php $filterArray = array(".","..",".DS_STORE",".svn");
                                                                                switch($_POST['API'])
                                                                                {
                                                                                case 1: getCompanies();
                                                                                   break;
                                                                                case 2: getDepartments($_POST['company']);
                                                                                   break;
                                                                                case 3: getCourses($_POST['company'],$_POST['department']);
                                                                                   break;
                                                                                case 4: getXMLs($_POST['company'],$_POST['department'],$_POST['course']);
                                                                                   break;
                                                                                case 5: downloadXML($_POST['company'],$_POST['department'],$_POST['course'],$_POST['xmlname']);
                                                                                   break;
                                                                                default:break;
                                                                                }
                                                                                function getCompanies()
                                                                                {
                                                                                    $exclude = array(".","..");
                                                                                $dir = @opendir("CaptivateResults");
                                                                                if($dir != "")
                                                                                {
                                                                                        echo ".;..;"; 
                                                                                while(($file = readdir($dir)) !== false)
                                                                                  {
                                                                                            if ($file == $exclude[0] || $file == $exclude[1]) {
                                                                                                        continue;
                                                                                            }
                                                                                   if(!is_file($file))
                                                                                   echo $file.";";
                                                                                  }
                                                                                  closedir($dir);
                                                                                }
                                                                                else
                                                                                echo "No Captivate Results found;";
                                                                                }
                                                                                function getDepartments($comp)
                                                                                {
                                                                                $exclude = array(".","..");
                                                                                $dir = @opendir("CaptivateResults"."/".$comp);
                                                                                echo ".;..;";
                                                                                while (($file = readdir($dir)) !== false)
                                                                                {
                                                                                        if ($file == $exclude[0] || $file == $exclude[1])
                                                                                            continue;
                                                                                  if(!is_file($file))
                                                                                  echo $file.";";
                                                                                }
                                                                                closedir($dir);
                                                                                }
                                                                                function getCourses($comp,$dept)
                                                                                {
                                                                                    $exclude = array(".","..");
                                                                                $dir = @opendir("CaptivateResults"."/".$comp."/".$dept);
                                                                                    echo ".;..;";
                                                                                while (($file = readdir($dir)) !== false)
                                                                                {
                                                                                        if ($file == $exclude[0] || $file == $exclude[1])
                                                                                            continue; 
                                                                                if(!is_file($file))
                                                                                  echo $file.";";
                                                                                }
                                                                                closedir($dir);
                                                                                }
                                                                                function getXMLs($comp,$dept,$course)
                                                                                {
                                                                                $dir = @opendir("CaptivateResults"."/".$comp."/".$dept."/".$course);
                                                                                $directory = "CaptivateResults"."/".$comp."/".$dept."/".$course;
                                                                                while (($file = readdir($dir)) !== false)
                                                                                {
                                                                                  if(!(is_dir($file)) && findexts($file) == 'xml')
                                                                                  {
                                                                                   echo $file.",".number_format(filectime($directory."/".$file),0, '.', '').";";
                                                                                  }
                                                                                }
                                                                                closedir($dir);
                                                                                }
                                                                                function downloadXML($comp,$dept,$course,$name)
                                                                                {
                                                                                $dir = "CaptivateResults"."/".$comp."/".$dept."/".$course."/".$name;
                                                                                $handle = fopen($dir, "r");
                                                                                $contents = fread($handle, filesize($dir));
                                                                                fclose($handle);
                                                                                echo $contents;
                                                                                }
                                                                                function findexts ($filename)
                                                                                {
                                                                                $filename = strtolower($filename) ;
                                                                                $exts = explode(".", $filename);
                                                                                $n = count($exts)-1;
                                                                                $exts = $exts[$n];
                                                                                return $exts;
                                                                                }
                                                                                ?>

                                                                                • 37. Re: Quiz Results Analyzer w/Internal Server
                                                                                  RichardGetting

                                                                                  My company is on the Linux (LAMP) and we tried the above for our server.  The results do appear on the server but we are getting this error message and are unable to retrieve the information for the analyzer. 

                                                                                  Any ideas on how we can fix this? 

                                                                                   

                                                                                  [Wed Nov 28 11:46:37 2012] [error] [client 10.99.2.194] PHP Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE or '$' in /opt/webcontent/dev/atyrcw/csctrain/internalserverread.php on line 12, referer: app:/QuizReportingApplication.swf