[FX.php List] Newbie PHP Question about direct link request to DB

Dale Bengston dbengston at tds.net
Wed Mar 24 10:31:57 MDT 2010


I also base random numbers off of the timestamp in milliseconds.

Dale

On Mar 24, 2010, at 11:10 AM, Gjermund Gusland Thorsen wrote:

> Here is mine actually:
> 
> 366 * 24 * 60 * 60 * ( Middle( created; 7; 4 ) - 1995 )
> + Int( DayOfYear ( Date ( Int( Middle( created; 4; 2 ) ); Int( Left(
> created; 2 ) ) ; Int( Middle( created; 7; 4 ) ) ) ) ) * 24 * 60 * 60
> + 60 * 60 * Int( Middle( created; 12; 2 ) )
> + 60 * Int( Middle( created; 15; 2 ) )
> + Right( created; 2 ) & Get( recordID ) &
> Middle( "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
> Int( Random* 52 ); 1 )
> 
> It requires that you have an auto enter field created as timestamp,
> so it should be pretty region independant, so this is as robust as it gets AFAIK
> 
> It calculates the number of seconds between creation time of the
> record and 1995 concatenates the recordID and adds 1 random char at
> the end.
> 
> ggt
> 
> 2010/3/24 Gjermund Gusland Thorsen <ggt667 at gmail.com>:
>> Be aware that if you use rand() function in a calculation,
>> if you have to move the solution to a different machines,
>> the rand algo uses the MAC address of the NIC as salt,
>> so you might want to make the rand number using something like
>> 
>> 15 random characters followed by 4 last digits of the recid,
>> I assume the limit is of indexing a string is still 19 chars?
>> 
>> ggt
>> 
>> 2010/3/24 Chris Hansen <chris at iviking.org>:
>>> Lars,
>>> 
>>> The PHP Site Assistant definitely doesn't do things the best way (I have
>>> some work the entails fixing and/or adding to Site Assistant generated
>>> code...)  You could still use a field other than the RecordID as long as it
>>> was unique.  Also, when I generate the type of string we've been discussing,
>>> I usually also use a random length (just to make things more difficult for
>>> those who would do something untoward...)  Best of luck on your project!
>>> 
>>> --Chris
>>> 
>>> On Mar 24, 2010, at 3:57 AM, Lars Arlér wrote:
>>> 
>>>> Thanks Webko for the quick and swift answer....
>>>> 
>>>> But I'll try to explain my problem a little deeper.
>>>> 
>>>> The problem is that I have created a html webmail, from where my colleges
>>>> will be linked via a hidden link, in their email client, to their own
>>>> browser and directed to their own personal record.
>>>> 
>>>> http://87.61.63.20/browserecord.php?-action=browse&-recid=501
>>>> 
>>>> But this link will be displayed in the top link window in their browser,
>>>> not
>>>> good.
>>>> 
>>>> So I would really like recid to be much longer like Jonathan explained.
>>>> 
>>>> The problem with my PHP code generated by FileMaker PHP Site Assistant
>>>> Is that it seems to only allow me to use FMP own generated -recid.
>>>> 
>>>> And I can sure live with that if I can define how many numbers and letters
>>>> it consist off.
>>>> 
>>>> Otherwise I would like to use any other FMP field to do the lookup
>>>> 
>>>> So if you or other can help we with this PHP issue I will be in deep
>>>> gratitude to you.
>>>> 
>>>> Her is my PHP in the browserecord.php if it helps
>>>> 
>>>> --------------------------- ZIP ZIP ZIP ---------------------------------
>>>> 
>>>> <?php
>>>> 
>>>>    /**
>>>>   * FileMaker PHP Site Assistant Generated File
>>>> */
>>>> 
>>>> 
>>>> 
>>>> require_once 'fmview.php';
>>>> 
>>>> require_once 'FileMaker.php';
>>>> 
>>>> require_once 'error.php';
>>>> 
>>>> 
>>>> 
>>>> $cgi = new CGI();
>>>> 
>>>> $cgi->storeFile();
>>>> 
>>>> $databaseName = 'MD_BackOffice';
>>>> 
>>>> $layoutName = 'Webcontacts';
>>>> 
>>>> $userName = 'webuser';
>>>> 
>>>> $passWord = 'webuser';
>>>> 
>>>> 
>>>> $fm = & new FileMaker();
>>>> 
>>>> $fm->setProperty('database', $databaseName);
>>>> 
>>>> $fm->setProperty('username', $userName);
>>>> 
>>>> $fm->setProperty('password', $passWord);
>>>> 
>>>> 
>>>> 
>>>> ExitOnError($fm);
>>>> 
>>>> $layout = $fm->getLayout($layoutName);
>>>> 
>>>> ExitOnError($layout);
>>>> 
>>>> 
>>>> 
>>>> // formats for dates and times
>>>> 
>>>> $displayDateFormat = '%m/%d/%Y';
>>>> 
>>>> $displayTimeFormat = '%I:%M %P';
>>>> 
>>>> $displayDateTimeFormat = '%m/%d/%Y %I:%M %P';
>>>> 
>>>> $submitDateOrder = 'mdy';
>>>> 
>>>> 
>>>> $record = NULL;
>>>>   $response = NULL;
>>>> 
>>>> $action = $cgi->get('-action');
>>>> 
>>>> $recid = $cgi->get('-recid');
>>>> 
>>>> 
>>>> 
>>>> switch ($action) {
>>>> 
>>>> case "delete" :
>>>> 
>>>> {
>>>> 
>>>> include "deleterecord.php";
>>>> 
>>>> break;
>>>> 
>>>> }
>>>> 
>>>> 
>>>> ########### Some more Cases removed ############
>>>> 
>>>> case "browse" :
>>>> 
>>>> default :
>>>> 
>>>> {
>>>> 
>>>> $recid = $cgi->get('-recid');
>>>> 
>>>> if (!isset ($recid))
>>>> 
>>>> $recid = 1;
>>>> 
>>>> 
>>>> $record = $fm->getRecordById($layoutName, $recid);
>>>> 
>>>> 
>>>> 
>>>> ExitOnError($record);
>>>> 
>>>> break;
>>>> 
>>>> }
>>>> 
>>>> }
>>>> 
>>>> ?>
>>>> 
>>>> 
>>>> 
>>>> --------------------------- ZIP ZIP ZIP ---------------------------------
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On 24/03/10 09.36, "Tim 'Webko' Booth" <tim at nicheit.com.au> wrote:
>>>> 
>>>>> 
>>>>> On 24/03/2010, at 6:50 PM, Lars Arlér wrote:
>>>>> 
>>>>>> Hi Jonathan...
>>>>>> 
>>>>>> Very helpful information.
>>>>>> But you have to specify a little more ;-) please
>>>>>> 
>>>>>>> 1) Upon initial record creation, create a
>>>>>>> long random (unique) character string that serves
>>>>>>> to identify that record to the outside world. I
>>>>>>> use 20 digits, upper and lower alpha, set by a
>>>>>>> Custom Function.
>>>>>> 
>>>>>> Does that mean that I can specify the "FMP recid"
>>>>>> And can/will you share your Custom Function, I haven't
>>>>>> tried to make one yet, is it difficult to make one ??
>>>>> 
>>>>> I'm fairly certain that you can set a decent field definition for this
>>>>> yourself.... Look at Brian Dunnings site for this sort of thing....
>>>>>> 
>>>>>>> 3) Upon initial CWP access of the target
>>>>>>> record in question, set the recid into a Session
>>>>>>> variable (not viewable publicly) and use the
>>>>>>> recid later, or
>>>>>> 
>>>>>> Are we talking PHP or FMP here ??
>>>>> 
>>>>> PHP - initial Custom Web Publishing finds the record (-recid) and you
>>>>> put them into a session variable. I'm also fine with doing a finf
>>>>> based on their input, and grabbing the -recid and then doing a
>>>>> subsequent -edit on that value...
>>>>> 
>>>>> Cheers
>>>>> Webko
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> FX.php_List mailing list
>>>> FX.php_List at mail.iviking.org
>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>> 
>>> 
>>> _______________________________________________
>>> FX.php_List mailing list
>>> FX.php_List at mail.iviking.org
>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>> 
>> 
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list



More information about the FX.php_List mailing list