[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