Jump to content

Tony Morosco

Members
  • Posts

    32
  • Joined

  • Last visited

Everything posted by Tony Morosco

  1. Hi all, We ended up re-creating the site in FM WebDirect. It was much simpler, than trying to suss out the problems with the older pHp custom web publishing scripts. So I am sure this thread won't be of much help for future researchers. Cheers, Tony
  2. Hi Jonathan , Yes, this site was originally generated in SiteAssistant back in 2010 or so. It's only recently updated to FileMaker Server 15 this year, thus the problems. Yes, I know it isn't returning any results, which is what I was looking for. I probably didn't phrase it very well. The online website is at http://cornucopia.sfbg.org/PublicPortal/home.php and called PlantFinder. (Obviously it looks for specimens at a botanical garden for the public.) But I presume you need to get into the computer. Will have to see if I can swing that. Why don't you contact me and I'll see what I can do! tmorosco@gmail.com Many thanks! I'll post any follow-up results here, once we get this solved. Cheers, Tony
  3. If I follow up the print_r($result); with the following, $statusLinks = getStatusLinks("recordlist.php", $result, $skip, $max); $records = $result->getRecords(); echo "\n<P>Records: "; echo $statusLinks['records']['rangestart']; echo " - "; echo $statusLinks['records']['rangeend']; echo " of "; echo $statusLinks['records']['foundcount']; echo ". <P>\n"; exit; I still get the following: Records: 0 - 0 of 0. I know this script ran for many years under a previous version of FileMaker, so very frustrating for me to update! :-P I did the initial design, but had a little thing called an AVM since then (a stroke.)
  4. Hi Jonathan, Early on, I did end up reverting the php back to the FileMaker supplied files, and removed the extraneous php version that IT had installed. However I seem to be running into the same issue, so the versioning does not seem to be an issue. I'm now running under php 5.6.24, and Microsoft Windows 2012 R2 Standard. For the second question, I've inserted this directly after the database call. Here is what it produces: FileMaker_Result Object ( [_impl] => FileMaker_Result_Implementation Object ( [_fm] => FileMaker_Implementation Object ( [V73ee434e] => Array ( [charset] => UTF-8 [locale] => en [logLevel] => 3 [hostspec] => http://127.0.0.1 [recordClass] => FileMaker_Record [prevalidate] => [database] => location [username] => [password] => ) [Vea4b3413] => [V9a3dcbce] => ) [_layout] => [_records] => [_tableCount] => [_foundSetCount] => [_fetchCount] => )
  5. Hello, I am trying to convert a custom web publishing site in php, from FM Server 12 to FM Server 15. We've updated the Windows machine that hosts it (to a shared server on the recommendation of IT) and installed FM Server 15. Direct opening of the existing scripts always yields 0 results, though the database hasn't changed. Is there some setting, somewhere, that I am oblivious to? I've consulted user's manuals, IIS settings, web postings, ... Attached is a copy of the website I am running. I can point you to the existing website, though I doubt it would be useful. The beginning part of this website are script tracking errors. I've been inserting them, trying to track down where this error is creeping up. So please ignore. Please ask any additional questions, I am sure there are many. Cheers, Tony PublicPortal.zip
  6. I'm a botanist, and the tables I am working with are for tracking botanical garden collections. The data represents plants in the garden, and the plants are tagged and show up in the database. The tables I am working with were created in FMP 7, and I'd like to open them up in FMP 11 (or later.) The system hasn't been used in years, but still has valuable information. One of the tables is giving me problems using the FMP convert and recover commands. These tables are all inter-related. The main table is the Accessions table, which contains records for all of one kind of plant, from the same source, received on the same date. It is basically a museum standard. The other tables are related to each other through this one main table. The Species table is related to the locations table through the Accessions table. (i.e. table A relates to table C through the table B, the intermediary) From the Locations table, we can't see the the species information unless the accessions table is present. When issuing the open command on the main table to convert the database to FMP 11, I get the message: "Accessions.fmp7" is damaged and cannot be opened. Use the Recover command to recover this file. When using the Recover command from v. 11, I get another message: WARNING: problems were detected while recovering the database. Please review the Recover.log file to see where problems were found and their severity. The recovered file should NOT be used going forward; copy only the most recent work from it into a backup copy of the original file. Recovery results: File blocks: scanned and rebuilt 563 blocks, dropped 214 invalid data blocks. Schema: scanned fields and tables, 1 items modified Structure: scanned; 1 items modified Field indexes: rebuilt Opening the recovered database, there are only three records present. There should be hundreds. So obviously I am looking on how to wrangle this database open. I've attached the log file here, as well as the database structure map. The other files have converted just fine. But since the main table won't open, we are kind of stuck. I can share the files with you through Dropbox or whatever, if needed. Please let me know any thoughts you have, either basic or advanced. And ask for any clarifications or additional questions. :-) Thanks! -Tony Recover.log
  7. Greetings! Sorry if my title is vague, I am not sure exactly how to describe this problem. I have taken a look in the Forums, and haven't found this question before. (If I did, please point me there.) And of course I've looked through the documentation in FM extensively. I am a botanical garden curator, and this database focuses on two tables: accessions of plants (groups of plants received at one time, with multiple individuals), and on locations of plants (individual plants of one accession, but planted in different areas). For each individual Location (of a single Accession) I would like to assign it a unique qualifier for that accession. These qualifiers are based on letters of the alphabet, so-as not to confuse them with the numerical accession numbers. For instance, for accession 2002-0101: For the first Location record, I would like the qualifier to be "A" For the second Location record, I'd like for it to be "B" For the third, I'd like it to be "C" and after the last Z value, I'd like for it to assign them AA, AB, AC, etc. I don't imagine there will be any values higher than AZ. So I am looking for a way to come up with a script and/or assigned calculation for qualifier to do this when creating a new location record in the locations table. I've already assigned these letters to existing records in our database with a script. Roughly, the existing script runs by: Sorting the Locations table, If the accession number is a new, the qualifier is set to "A", If the accession number already exists, then based on the previous records existing qualifier value, assign the next qualifier value for the record. Capture the accession number and qualifier in a variable, for use in the next record Move on to the next record. I know that the plant collections registrar can come up with the qualifier in their head (de-novo), but frankly they don't need that headache searching through the records and coming up with a new qualifier to create a new location. I know this is rather complicated, but let me know if I should come up with two tables to let you know what is going on. I am sure it is something simple that I am overlooking. And please let me know if I am being confusing, or have not laid out the problem in a logical way. Thanks, Tony
  8. I am investigating interrelating FileMaker and ArcGIS databases. I am from the botanical world and design databases on a simplified level, so please bear with me! For instance, (and this is an over-simplified version) in both ArcGIS and FileMaker, we have a field in our databases which lists a plants status as alive or dead. Both of these databases are available outside, in the garden. We often would like to update just one source, and correct a plant's status in the garden on both systems. This would alter both the ArcGIS and the FileMaker databases, through just one update, probably in FileMaker Pro is my guess. I am imagining this can be accomplished through JDBC, ODBC, or SQL. Ideally it would be via SQL. It will provide a portal between the two systems, and update each others tables whenever the need arises. From what I understand, this should be possible. If for some reason we can't get the two databases talking directly with each other, perhaps inter-relating the two with a back-end SQL database is a possibility? We may try to build a FileMaker web portal to an ArcGIS web-viewer which can be updated, but it is kinda kludgey and does not update both tables. If anyone knows a method how this can be accomplished, please let me know! Or reccomendations on where I can post to the correct forum. And please let me know if I am not making any sense or I am garbling the language. I am known for both. ;-) Cheers, Tony
  9. I am encountering some puzzling behavior when performing a find in a portal. To back up and give the groundwork of the situation, I have a database that is a fairly typical students/classes/enrollments database. The database tracks student's enrollments in classes, among other things. It is a multi-year database, and thus has enrollment information from the past as well as the present. To facilitate working with current years enrollments, there are several relationships between tables so that I can isolate this year's enrollments. Specifically for the current enrollments table occurrence, the Students table is related to Enrollments by the relationship Students::Student_ID = Current_Enrollments::Student_ID AND Students::Current_Year = Current_Enrollments::Class_Year. Thus, a portal on the Student's details screen (Student Table) using Current Enrollments displays only the classes of the current year. (Another portal to All_Enrollments table occurrence on another tab displays all enrollments). This works flawlessly. The current problem is that sometimes the same classes are offered year to year, so they have the same title, but different Class_ID, Instructors, Start_Date, Class Fee, etc. Normally when we search from the Student Details screen (Students table) in the Current Enrollments portal for a class title, the results only include students who are enrolled in a current class. Well we now have an instance where if we search for Introduction to Bryophytes (FYI Bryophytes are mosses, and we're offered it in 2008 and 2010), the results include students in this year's class, as well as students from the same class in 2008. The Class table records have identical Class titles, but different other information, including Class Year. When paging through the results, students that are enrolled in this year's class have Current Enrollments portal details as expected. For those students who were enrolled in the 2008 class, there are no listings in the Current Classes portal at all! (also expected, but why did FileMaker find a resulting match??) So how is it that a search is producing results that are unrelated?? It sure has me puzzled. I just rechecked the search field, and it is using the correct table occurrences in the portal. Any suggestions on where to look would be appreciated. I can post a relationship diagram or other info as needed. I've temp fixed it by abbreviating the old class title so it isn't found in a longer name search. Ack! bad workaround! Thanks! Tony
  10. If the disappearing field is a related field, you may also check on the following, which caused me great problems for a few hours: If your related files are old-school (multiple tables, multiple FileMaker Files), it may be the an alteration to your External Data Sources (File > Manage > External Data Sources...). I recently 'cleaned up' our External Data Source listings, which had proliferated beyond belief. Since we host our tables on FileMaker server, I cleaned them all down to a single reference of fmnet:/host.domain.name/ But this broke my PHP scripts whenever I tried to access a related field in a table. (it would say the field wasn't there, despite everything working just peachy on the native FileMaker app layouts.) Of course this change was in the middle of a bunch of other changes to the database, so it took a lot of tail chasing with permissions (assumed it was because the related table had the wrong permissions for PHP access). I had to re-add the following to External Data Sources, and voila, everything was restored and my related fields started displaying again in PHP: fmnet:/host.domain.name/ file:.fp7 Cheers, Tony BTW, the reason I cleaned up the external data references was we suddenly had a problem of a 30 second time lag when first opening a database, for no apparent reason. But the cleanup didn't help.
  11. I wonder if this might be because FileMaker's global fields are what is called 'session specific'. That is, different users of the same database have independent values for their global fields. Anyways I would suggest you read up on the behavior of global fields in multi-user environments to get a better handle on it. Cheers, Tony
  12. Wish I had an apache machine option to test. (got one on linux at home, but that's no help!). Thanks for the pointers, I'll direct some research there. I've been getting no feedback on FileMaker's own forums on this or other issues. Is it me, or is customer service slipping precipitously at FM?
  13. *bump* Can anyone report that they are using FileMaker PHP and can successfully validate records with a field rule of "not Empty"?
  14. As I detailed in my first post, that is specified in the headers. (comes default with PHP Site Assistant, even.)
  15. Update: If I add to the FileMaker-generated PHP code: $userName = utf8_decode($userName); after the $userName = $cgi->get('userName'); Then I can authenticate the user just fine. I of course have to hand code this for all the scripts, in all the tables I am hosting, and re-add it each time I regenerate the site, which is not insubstantial given that we are in active development this summer. I am now thinking it might be Microsoft's IIS 6.0 butting its head into character encoding somehow, but am unable to find where the default character encoding is specified. The instructions here on how to check IIS character encoding are not applicable. That dialog does not contain "File types..." on our machine.
  16. Thanks Baloo, The error reporting is most helpful!
  17. Hi folks, I have a PHP web/iPhone interface to a table that works great for all users except one user who has an accented é diacritic in his login name. This user can log into FileMaker app directly without a problem, but the PHP site (set up more or less out of the box) seems to rejects his credentials (error 22). The PHP script itself is correctly receiving the login data, because when I echo back the variables $userName and $passWord by adding a line to the error message, they are exactly as entered. I checked the forums and knowledge base for other's problems with extended character problems. I have double checked the home.php script, and it does contain the line in the header that should encode data properly: I can also verify that the browsers that are used to access the site are using utf-8 character encoding. So I believe the problem must be the internal handoff of data between the PHP code and FileMaker. Any ideas on how to troubleshoot this or things to tweak? Or can anyone report that they are using PHP to successfully authenticate users with accented characters? Many Thanks, Tony
  18. Greetings FMers, I am experiencing some odd behavior I am trying to track down and document. I am using PHP Site Assistant to generate a web interface (iPhone, actually) for a FileMaker Server 10 Advanced hosted table. When I generated an 'out of the box' full PHP site, I was unable to edit records in my table. Submitting the edited record invariably bumped me back to a PHP login screen. It took near forever to figure out that it wasn't a permissions problem and trace it to the validation of a few fields in my table. (is there a debug option somewhere that I am missing that will report what actual errors are occurring? I build these into my PHP/Perl Scripts!) Specificly, if I set any field to validate and require 'not empty', AND the value for that field does NOT change on the web form, it causes my PHP edit record script to bail out to the login screen. I've double checked that the approriate fields are displayed, have values, and such. If I do change the value of the field on the web form, than the edit will work, even with the 'not empty' validation. The validation works appropriately when I am using FileMaker natively. If I turn off 'not empty' validation, and instead validate by calculation = not IsEmpty(field) my PHP edit scripts work fine. So what am I missing that PHP barfs on any field validated by 'not empty'? or is it truly a bug? BTW, I'm running Server 10 Advanced 10.0.1.64; I see that there are updates available, and will get those installed soon. I didn't see a patch that enumerated this problem among them. Thanks for your thoughts. Tony
  19. If you would like to create scripts/buttons for your IWP list view, I have found this solution to work. Create a script (one each) for 'next page of list view', and 'previous page of list view'. Select the script step "goto record/request/page", click "perform without dialog", and choose "By Calculation..." next to specify. For the Next page script, paste in: Let (incrementby = If (Get(FoundCount) > 25 and Get (LayoutViewState) = 1 ; 25 ; 1) ; If (Get(RecordNumber) + incrementby > Get (FoundCount) ; Get (FoundCount) - incrementby ; Get (RecordNumber) + incrementby)) For the Previous page script, paste in: Let (decrementby = If (Get(FoundCount) > 25 and Get (LayoutViewState) = 1 ; 25; 1) ; If ((Get(RecordNumber) - decrementby) > 1 ; Get (RecordNumber) - decrementby ; 1)) Then you can create buttons on your list layout associated with these scripts, to page through IWP results. Warning: the buttons don't work for the list layout in native FileMaker. Working for me under FileMaker 9.0v3 on Windows 2003 Server Internet Web Publishing.
  20. comment- Thank you for the reply! My first reaction was "What?? What do you mean it will work with my current setup?? It isn't working!" But that was what I needed to get me thinking along the right track. The key piece of information that helped me solve the problem was of course something that I left out of the posting. My solution was first programmed in FileMaker 5, with the one table/one file solution. It has been upgraded over the years but has been badly in need of an overhaul to bring it into a one file/many tables solution. In fact I just started doing that last week, as a volunteer (sigh, no paycheck for this one). But getting back to the problem- The problem was that the relationships are set up independently in each file in one table/one file solutions, and in the Species file, the relationships were set up differently than the graph I posted, Species was directly related to both the locations and accessions table. (unlike the relationships in the accessions table, which were as posted in the graph). Thus I couldn't set up a proper table portal and nothing was working. *sigh* So it is my bone-head fault for missing that and I apologize for using so much bandwidth, but am grateful for pointing out the obvious. I'm not sure how I convinced myself that a direct relationship between the two tables was necessary. I will be *GLAD* when I've got the whole mess in one file and can manage it more effectively. I wish it had happened years ago, but that is the way it goes with lean non-profits. And thanks for the innovative way of denoting unique specimen locations. Quite nifty! Many, many thanks! I've sometimes wondered why FileMaker didn't choose to show external table relationships different from tables that are internal to the file at hand (different color or something).
  21. Ocean West, Perhaps I am missing something, but I don't see how a paid subscription to view "Infinite Assignments - Never Ending Value Lists" applies to doing a two table hop through relationships. I am guessing this is a self-relationship solution, like the kind I have set up for some botanical name files? I did track down my problem, and it was with an erroneous relationship that I will explain in my next reply. Thank you anyways, I always appreciate time volunteered.
  22. Hi folks, A sticky three table data/relationship issue. I am trying to figure out how to establish a relationship between two tables that, by logic, are two table relationships apart, hopefully without duplicating data in multiple tables. I would appreciate people insight on my data structure and if there is a way to accomplish what I want to do. I've always seen people ask for the real world issue rather than an abstraction, so here goes: I manage a database for a Botanical Garden that tracks their plant collections. The database tracks, among other things, about 23,000+ accessions of 14,000+ species, in 18,000+ locations of hundreds of thousands of individual plants. There are quite a few tables and hundreds of fields, but I'll only mention the relevant ones unless a question comes up. The three tables involved in this issue are: Accessions, Species, and Locations (highlighted in orange in the attached graphic). Accessions - A table of individual accessions. An Accession is defined as 1 to hundreds of individual plants, all of the same identity (species name), all received from the same source on the same date. Each new shipment of plants gets a new accession number, regardless if the gardens already has that species under another accession number or not. Each individual plant can be placed in a location, so an accession of many plants can be split up to multiple locations. One record per accession. Accession Number - unique key field, can not modify Species ID - identifies species name for this accession. Species - A table of information on botanical species and their characteristics (scientific name, common name, flower color, height, native region, etc.) One record per species name. Species ID - unique key field, running serial number, can not modify. Taxon - scientific name (actually a calculation from the individual components of the name) Locations - A table of information on the individual locations of accessions. Each accession can have multiple individuals, and each individual can be in one or more location. But all individuals should have the same Species ID. One record per unique Bed number - accession number combo (a superkey). Location ID - unique key field, running serial number, can not modify. Bed Number - bed location in garden Accession Number - Accession number for the plants in this location. The relationships are currently set as: Accessions is related to Species by matching Species ID in both tables. Accessions is related to locations by matching Accession Numbers in both tables. There is no direct connection between locations and Species, because there is no logical direct connection. There is a logical relationship of course, in that each specimen location has an accession number, and each accession number has a species ID, but since the species table is two tables away from the location table, I can't relate Species to Locations directly. Examples of why I need to have a direct relationship to do what I want to do are: * From the species table, I want to display a portal list of location records for each species name. * On each location record, I want to display if this location is a unique location of this species, or if there are other locations of this species elsewhere in the garden (this can be done by counting a self-related match on locations::species ID) This helps the gardeners evaluate if they should think twice about removing a plant that may be the last one left at the institution. Possible solutions that have run through my head- The obvious thing to me is to get the Species ID value into the locations table (locations::Species ID). This is how I had the database set up in the beginning. The problem with this is, the species ID of an accession is not inviolate (it can change) It is not uncommon for plant identifications to change based on expert's review or further information. So if the Curator updates the species ID in the accessions table, all the Species ID in the locations table need to be corrected as well! A data management nightmare if you have just ten accessions to update, and each of those has ten locations- 100 record update. It just seems so wrong for a relational database! So I of course tried making locations::Species ID a calculated field that is equal to Accessions::Species ID, but I can't establish a relationship between tables based on that. If I make Locations::Species ID a numerical field populated by lookup upon creation, I could run a nightly script via FileMaker Server to synchronize it, or experiment with FM 10's script triggering, trying to set up a script to update locations:Species ID when Accessions::Species ID is modified. I actually have this problem with my Images table as well, in that each image is of an accession number, which also has a species ID, but if the species ID changes for the Accession, it should change for the image as well. But somehow I keep thinking there is a way to get the locations and species related in a way that will work, and that I am missing something... Any thoughts would be appreciated. I can set up a guest login to the database if you are curious.
  23. Hey laudmusic, I was having the same problem, and here is what I traced mine to. My database is relational, having several tables of related data. I was exporting data from both the parent table, as well as related tables. Some of my related tables had more than one child record related to the parent record. In these cases, the excel file showed the parent record, and the "blank record" was the second child record, only it was blank for all fields EXCEPT the different value. The way I solved it in my export solution was to sort by the primary key in my parent table, and in the export step, I choose "group by" my primary key during export. Warning: you have to choose the group by before you choose the primary key to export (why? I dunno, ask the filemaker gods). And the primary key does have to be in your export file, too. After that, all my records showed up as expected, and no blank rows! Feel free to contact me for clarification, if needed. Cheers, Tony
  24. D'oh! Excellent suggestion. I will look into implementing this in the next development go-around. Thank you.
  25. The Laser Engraver is a M-300 manufactured by Universal Laser Systems. They do not post drivers to their website, but I can share a copy with you. Please email me at tmorosco@sfbotanicalgarden.org, since your email is not in your profile. ULS has a small user base since the machines cost $18,000+, so all technical support there is very intimate.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.