charmcello

FMP PHP API: dropdowns and radio buttons missing

2 posts in this topic

I am tasked with troubleshooting a web registration form that queries a Filemaker Pro v12 database via a Filemaker PHP API.

The web form had been running well for a couple of months after major revision, when all of a sudden:

  1. All dropdowns are empty
  2. All radio buttons are missing
  3. These symptoms appear to be browser-independent.

The appearance of these symptoms is mysterious:

  1. Nobody has modified the PHP code for the web form - I've done a compare with a backup done at the time when the web form was not broken and it is identical to what is currently on the server. 
  2. The Filemaker Pro layout that the web form is querying is just fine - all the value lists for the dropdowns and radio buttons are present.

I've created a stripped-down version of the web form: https://campmeetings.cccsda.org/test_form.php and I've also attached the php source code file.

The date and record fields are populating correctly. Notice the empty dropdown list after "Church I attend."

Could this be caused by an incompatibility between the FMP PHP API and PHP libraries on the server? Perhaps due to a PHP update on the server? Any ideas how to troubleshoot this? 

test_form.php

Share this post


Link to post
Share on other sites

I wil note that this is not done purely with the API - it's an FMStudio v2 generated page which uses some custom functions not used in the API.

And that FMStudio went unsupported a few years back.

It's also not a query page - it creates a new record, and reads data back from that record.

That said, if the WebForm layout does have the value lists available when a brand new record is created (used for drop downs and buttons), this looks like it should work

Edited by webko

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Similar Content

    • By randyinla
      Hi, I have a field called 'mytournament1'.  I also have a field called 'mytournament1played'.  With a form, I create the variable $tournament to bring 'mytournament1' to my results page.
      $tournament = $_GET['tournament'];
      I'd like to force the results page to search for the field 'mytournament1played' for each record by using the variable $tournament and combining the word 'played' or the variable $played.  
      $played = 'played';
      $tournamentplayed = $tournament . $played;
      $tournamentplayed2 = $record->getField('$tournamentplayed');
      (I want it to deliver)      $record->getField('mytournament1played');

      I know the 1st '$record->getField' line is wrong.  Can I combine 2 variables that spell out a database field name (mytournament1played) that can be used to call up a field in a search?  i.e.
      if ($tournamentplayed2!='1') {

      thanks in advance for your help!
       
    • By sal88
      Hi all
      We have a web based tickets portal which creates new messages in our filemaker database - this is for customers' use. It does this using the PHP API (the website was developed by a third party). We would like the owners of tickets to be notified when the customer has added a message to one of the tickets that they are in charge of.
      Is there a way for filemaker/filemaker server to trigger a 'send email' script when a new record is created via the web portal? Or would it be simpler for this action to occur on the web side?
      Many thanks
    • By bwalsh
      Hi, I am relatively new to FileMaker. I am a PHP developer currently working on a project that involves the FMS custom web publishing PHP API. I was able to successfully connect using the API, but the connection is no longer working. The error message says only "Unable to open file". My research says that this could be due to the database file not being open, or to a permissions issue.

      I can see in the FMS admin console that the database file is open, with "normal" status. The FMWEBDIRECT and PHP columns both have full circles, indicating that the database should be accessible through the PHP API. Both the web server and the web publishing engine are on, with green checks, and PHP is activated.

      I am using the same username and password that worked previously. I checked again in the database security settings and confirmed that the username and password are still correct and that the user account has the "fmphp" privelege. What else should I look for?
      In the web publishing error log I see entries that say:
       
      127.0.0.1:63876 [USERNAME] - 802 563 "fmi/sml/fmresultset.xml?-db=[DB]&-lay=[LAYOUT]&-findany" Does the PHP API use the XML API? Also, here is the full var_dump() of the error object:

       
      object(FileMaker_Error)#6 (9) { ["_fm"]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } ["error_message_prefix"]=> string(0) "" ["mode"]=> int(1) ["level"]=> int(1024) ["code"]=> string(3) "802" ["message"]=> NULL ["userinfo"]=> NULL ["backtrace"]=> array(7) { [0]=> array(6) { ["file"]=> string(90) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/PEAR.php" ["line"]=> int(945) ["function"]=> string(11) "__construct" ["class"]=> string(10) "PEAR_Error" ["type"]=> string(2) "->" ["args"]=> array(5) { [0]=> NULL [1]=> string(3) "802" [2]=> NULL [3]=> NULL [4]=> NULL } } [1]=> array(7) { ["file"]=> string(101) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/FileMaker/Error.php" ["line"]=> int(52) ["function"]=> string(10) "PEAR_Error" ["class"]=> string(10) "PEAR_Error" ["object"]=> *RECURSION* ["type"]=> string(2) "->" ["args"]=> array(2) { [0]=> NULL [1]=> string(3) "802" } } [2]=> array(7) { ["file"]=> string(129) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/FileMaker/Implementation/Parser/FMResultSet.php" ["line"]=> int(48) ["function"]=> string(15) "FileMaker_Error" ["class"]=> string(15) "FileMaker_Error" ["object"]=> *RECURSION* ["type"]=> string(2) "->" ["args"]=> array(3) { [0]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } [1]=> NULL [2]=> string(3) "802" } } [3]=> array(7) { ["file"]=> string(122) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/FileMaker/Implementation/CommandImpl.php" ["line"]=> int(84) ["function"]=> string(5) "parse" ["class"]=> string(28) "FileMaker_Parser_FMResultSet" ["object"]=> object(FileMaker_Parser_FMResultSet)#5 (17) { ["Vcb5e100e"]=> string(3) "802" ["Vf5bf48aa"]=> array(3) { ["build"]=> string(10) "10/27/2016" ["name"]=> string(31) "FileMaker Web Publishing Engine" ["version"]=> string(10) "15.0.3.308" } ["V1ea7e575"]=> array(7) { ["database"]=> string(0) "" ["date-format"]=> string(0) "" ["layout"]=> string(0) "" ["table"]=> string(0) "" ["time-format"]=> string(0) "" ["timestamp-format"]=> string(0) "" ["total-count"]=> string(1) "0" } ["V9f81f3c0"]=> array(0) { } ["Vaae0d98d"]=> array(2) { ["count"]=> string(1) "0" ["fetch-size"]=> string(1) "0" } ["Vae581270"]=> array(0) { } ["V6e52c40b"]=> array(0) { } ["Ve13f1c92"]=> NULL ["V43432a31"]=> NULL ["V51bc3e3b"]=> NULL ["V26005321"]=> NULL ["V6468d939"]=> NULL ["_fm"]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } ["V5431b8d4"]=> resource(28) of type (Unknown) ["V6de51026"]=> bool(false) ["_result"]=> NULL ["_layout"]=> NULL } ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(563) "" } } [4]=> array(7) { ["file"]=> string(130) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/FileMaker/Implementation/Command/FindAnyImpl.php" ["line"]=> int(17) ["function"]=> string(10) "_getResult" ["class"]=> string(32) "FileMaker_Command_Implementation" ["object"]=> object(FileMaker_Command_FindAny_Implementation)#4 (19) { ["_findCriteria"]=> array(0) { } ["Vd65662c5"]=> array(0) { } ["Va9136a07"]=> array(0) { } ["Vf951bdce"]=> NULL ["V83f28691"]=> NULL ["V85fd701e"]=> NULL ["V6da136ea"]=> NULL ["V568aa2ec"]=> NULL ["_fm"]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } ["_layout"]=> string(23) "BW Newsletter2Go Import" ["V7a2db0ea"]=> NULL ["_script"]=> NULL ["_scriptParams"]=> NULL ["_preReqScript"]=> NULL ["_preReqScriptParams"]=> NULL ["_preSortScript"]=> NULL ["_preSortScriptParams"]=> NULL ["V0b9a204c"]=> string(16) "FileMaker_Record" ["_recordId"]=> NULL } ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(563) "" } } [5]=> array(7) { ["file"]=> string(103) "/Library/FileMaker Server/Web Publishing/publishing-engine/php/el capitan/lib/php/FileMaker/Command.php" ["line"]=> int(137) ["function"]=> string(7) "execute" ["class"]=> string(40) "FileMaker_Command_FindAny_Implementation" ["object"]=> object(FileMaker_Command_FindAny_Implementation)#4 (19) { ["_findCriteria"]=> array(0) { } ["Vd65662c5"]=> array(0) { } ["Va9136a07"]=> array(0) { } ["Vf951bdce"]=> NULL ["V83f28691"]=> NULL ["V85fd701e"]=> NULL ["V6da136ea"]=> NULL ["V568aa2ec"]=> NULL ["_fm"]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } ["_layout"]=> string(23) "BW Newsletter2Go Import" ["V7a2db0ea"]=> NULL ["_script"]=> NULL ["_scriptParams"]=> NULL ["_preReqScript"]=> NULL ["_preReqScriptParams"]=> NULL ["_preSortScript"]=> NULL ["_preSortScriptParams"]=> NULL ["V0b9a204c"]=> string(16) "FileMaker_Record" ["_recordId"]=> NULL } ["type"]=> string(2) "->" ["args"]=> array(0) { } } [6]=> array(7) { ["file"]=> string(64) "/Library/FileMaker Server/HTTPServer/htdocs/newsletter/index.php" ["line"]=> int(32) ["function"]=> string(7) "execute" ["class"]=> string(17) "FileMaker_Command" ["object"]=> object(FileMaker_Command_FindAny)#3 (1) { ["_impl"]=> object(FileMaker_Command_FindAny_Implementation)#4 (19) { ["_findCriteria"]=> array(0) { } ["Vd65662c5"]=> array(0) { } ["Va9136a07"]=> array(0) { } ["Vf951bdce"]=> NULL ["V83f28691"]=> NULL ["V85fd701e"]=> NULL ["V6da136ea"]=> NULL ["V568aa2ec"]=> NULL ["_fm"]=> &object(FileMaker_Implementation)#2 (3) { ["V73ee434e"]=> array(9) { ["charset"]=> string(5) "UTF-8" ["locale"]=> string(2) "en" ["logLevel"]=> int(3) ["hostspec"]=> string(16) "http://127.0.0.1" ["recordClass"]=> string(16) "FileMaker_Record" ["prevalidate"]=> bool(false) ["database"]=> string(11) "DD_Personal" ["username"]=> string(14) "xxxx" ["password"]=> string(12) "xxxx" } ["Vea4b3413"]=> NULL ["V9a3dcbce"]=> NULL } ["_layout"]=> string(23) "BW Newsletter2Go Import" ["V7a2db0ea"]=> NULL ["_script"]=> NULL ["_scriptParams"]=> NULL ["_preReqScript"]=> NULL ["_preReqScriptParams"]=> NULL ["_preSortScript"]=> NULL ["_preSortScriptParams"]=> NULL ["V0b9a204c"]=> string(16) "FileMaker_Record" ["_recordId"]=> NULL } } ["type"]=> string(2) "->" ["args"]=> array(0) { } } } ["callback"]=> NULL } Any help would be much appreciated!
    • By DeathRobot
      Hi. I am trying to script the getting of some data from a website that has an API. I have BaseElementsPlugin and was given an example bit of code by the website:
       data = {'domain': domain, 'include_generic': True}
                  headers = {'X-Api-Key': 'xyz123'}
                  resp = requests.post('https://api.anymailfinder.com/v3.0/search/domain.json', data=data, headers=headers)
      I have never dealt with this kind of programming and am not even sure where this info would go or what script step(s) I would use to call this. Is this CURL? Are you aware of sample FM scripting that I could use as a model to figure this out?
      Thanks for any help with this!
    • By Marcwa19197
      Hi,

      we are using a little sync script via php, which allows us to store all data from a FileMaker DB into our internal MySQL-Database. 
      The only problem iam unable to solve is how to download images from container fields and store them local on our web server. 

      I tried something like:
       
      foreach($recordsPersons as $recordPersonsData) { //saving images to /srv/www/htdocs/ $url_orig = urlencode($recordPersonsData->getField('FotoDatei')); // Search for the extension of the file $url = substr($url_orig, 0, strpos($url_orig, "?")); $url = substr($url_orig, strrpos($url_orig, ".") + 1); // Send the correct Content-Type header if($url == "jpg"){ header('Content-type: image/jpeg'); } else if($url == "gif"){ header('Content-type: image/gif'); } else{ header('Content-type: application/octet-stream'); } // save file local. file_put_contents('/srv/www/htdocs/testfilepicture.jpg', $fm->getContainerData($url_orig)); } I was using this reference: http://blog.myfmbutler.com/?p=104

      This Code-Snipped works well, but only writes "getContainerData() does not support remote containers" into testfilepicture.jpg..

      We are using FileMaker Server 14.

      Any Ideas?

      Thanks in advance and Cheers