Mailing List Archive

%udat persistence problem...S.O.S.
Hi,

Here is another weird thing. I'm use MySQL database for Embperl session persistence. On one of my PCs, the %udat works for Netscape 4.x but won't works for IE5. So, I wrote a small test script to isolate the problem:

[+ $udat{test}++ +]

Under Netscape4.x, it showed 0, 1, 2, 3,...etc. I inspected into the table "sessions" and found only one row, ie. session id. This is correct.

But under IE5.0, it showed 0, 0, 0, 0, .... etc. In this case, i found Embperl inserted a row per session into table "sessions", each with different session id.

More weird, on another Windows 98 PC of mine, it worked for both browsers with the same test script. I cannot see any difference between configurations of the two PCs.

Could you please advise me where might be wrong or any trouble shooting techniques? Thanks a lot.

Best Regards,
Huang-Ming


----- Original Message -----
From: Gerald Richter
To: Hello ; Embperl@Perl. Apache. Org
Sent: Monday, May 01, 2000 3:22 AM
Subject: RE: PERL string terminator with Carriage Return...



i'm sorry. embperl does remove '\r' on line 247 of eputil.c.

but actually it replaces it with a space, ' '. this makes a PERL string terminator, for example "END\r\n' become "END \n", thus still makes PERL compile to error.

Yes, when I wrote my last answer I were in great hurry and didn't tought enought about your problem.


i downloaded most up-to-date embperl, version 1.3b3. and it remains the same handling and the same error result.

Replaceing with space is much faster, then removing the \r and the HERE documents are the only place were this really is a problem.

so i could not but change line 247 of eputil.c to
*ep++ = '\n';
by myself and found it finally works!!

however, i perfer to complete removal of \r rather than replacement.


I will keep this in mind for the new Embperl 2 version, for now use the solution which Kee already pointed out, by using qq[ ].

Gerald
RE: %udat persistence problem...S.O.S. [ In reply to ]
[+ $udat{test}++ +]

Under Netscape4.x, it showed 0, 1, 2, 3,...etc. I inspected into the table
"sessions" and found only one row, ie. session id. This is correct.

But under IE5.0, it showed 0, 0, 0, 0, .... etc. In this case, i found
Embperl inserted a row per session into table "sessions", each with
different session id.

More weird, on another Windows 98 PC of mine, it worked for both browsers
with the same test script. I cannot see any difference between
configurations of the two PCs.

Looks like cookies are disabled on the IE 5 that doesn't work.

Gerald
Re: %udat persistence problem...S.O.S. [ In reply to ]
Early MSIE 5 had known bugs with cookies.

0 Gerald Richter wrote about "RE: %udat persistence problem...S.O.S.":

>
> [+ $udat{test}++ +]
>
> Under Netscape4.x, it showed 0, 1, 2, 3,...etc. I inspected into the table
> "sessions" and found only one row, ie. session id. This is correct.
>
> But under IE5.0, it showed 0, 0, 0, 0, .... etc. In this case, i found
> Embperl inserted a row per session into table "sessions", each with
> different session id.
>
> More weird, on another Windows 98 PC of mine, it worked for both browsers
> with the same test script. I cannot see any difference between
> configurations of the two PCs.
>
> Looks like cookies are disabled on the IE 5 that doesn't work.
>
> Gerald
>
Re: %udat persistence problem...S.O.S. [ In reply to ]
I'm sure cookie is enabled because i saw it enabled in IE5 configuration list. Any other possibility?

Thanks.
Huang-Ming
----- Original Message -----
From: Gerald Richter
To: Hello ; Embperl@Perl. Apache. Org
Sent: Wednesday, May 10, 2000 8:42 PM
Subject: RE: %udat persistence problem...S.O.S.



[+ $udat{test}++ +]

Under Netscape4.x, it showed 0, 1, 2, 3,...etc. I inspected into the table "sessions" and found only one row, ie. session id. This is correct.

But under IE5.0, it showed 0, 0, 0, 0, .... etc. In this case, i found Embperl inserted a row per session into table "sessions", each with different session id.

More weird, on another Windows 98 PC of mine, it worked for both browsers with the same test script. I cannot see any difference between configurations of the two PCs.

Looks like cookies are disabled on the IE 5 that doesn't work.

Gerald
RE: %udat persistence problem...S.O.S. [ In reply to ]
I'm sure cookie is enabled because i saw it enabled in IE5 configuration
list. Any other possibility?
Have you read the other thread about %udat on the Embperl mailinglist?

Try

- setting dbgHeadersIn in EMBPERL_DEBUG an see if the cookies is always send
by the browser
- to upgrade IE 5
- replace SysVSemaphoreLocker with NullLocker

Gerald
Re: %udat persistence problem...S.O.S. [ In reply to ]
Hi,

I'm sorry I didn't read the mailing list, because I don't know how to get the list.

I'll try your advices and get back to you if any success or still failure. Thanks.

Regards,
Huang-Ming
----- Original Message -----
From: Gerald Richter
To: Hello ; Embperl@Perl. Apache. Org
Sent: Thursday, May 11, 2000 1:32 PM
Subject: RE: %udat persistence problem...S.O.S.




I'm sure cookie is enabled because i saw it enabled in IE5 configuration list. Any other possibility?
Have you read the other thread about %udat on the Embperl mailinglist?

Try

- setting dbgHeadersIn in EMBPERL_DEBUG an see if the cookies is always send by the browser
- to upgrade IE 5
- replace SysVSemaphoreLocker with NullLocker

Gerald
Re: %udat persistence problem...S.O.S. [ In reply to ]
hi,

i tried all of your advices but still failed.

i replaced with NullLocker. the wrong result remains.

i upgraded IE5 with the same version on my another PC. the wrong result remains.

the Netscape 4.x remains correct.

the following debug log is after i set EMBPERL_DEBUG to dbgHeadersIn. could you give more hints where might go wrong?

my test script is as simple as:

[+ $udat{test}++ +]

--- embperl.log ---
[379]MEM: Load /usr/local/apache/htdocs/169/login.htm in HTML::Embperl::DOC::_1
[379]REQ: Embperl 1.2b9 starting... Fri May 12 13:15:04 2000

[379]REQ: No Safe Eval All Opcode allowed mode = mod_perl (3)
[379]REQ: Package = HTML::Embperl::DOC::_1
[379]HDR: 7
[379]HDR: Accept=application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
[379]HDR: Accept-Encoding=gzip, deflate
[379]HDR: Accept-Language=zh-tw
[379]HDR: Connection=Keep-Alive
[379]HDR: Cookie=169Net%40InnoMedia=email&root%40localhost&MAC&8a66d88fe8d8fef3ca1fac11b5203b6f&uid&1&user&panpipi
[379]HDR: Host=169net.innomedia.com
[379]HDR: User-Agent=Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; SEEDNet)
[379]Formdata... length = 0
[379]Using APACHE for output...
[379]Reading /usr/local/apache/htdocs/169/login.htm as input using PerlIO ...
[379]MEM: Load /usr/local/apache/htdocs/169/common/head.htm in HTML::Embperl::DOC::_2
[379]REQ: No Safe Eval All Opcode allowed mode = mod_perl (3)
[379]REQ: Package = HTML::Embperl::DOC::_2
[379]Reading /usr/local/apache/htdocs/169/common/head.htm as input using PerlIO ...
[379]PERF: input = /usr/local/apache/htdocs/169/common/head.htm
[379]PERF: Time: 30 ms Evals: 4 Cache Hits: 0 (0%)
[379]Sub-Request finished. Fri May 12 13:15:04 2000
. Entry-SVs: 26857 -OBJs: 21 Exit-SVs: 27868 -OBJs: 42
[379]MEM: Load /usr/local/apache/htdocs/169/common/tail.htm in HTML::Embperl::DOC::_3
[379]REQ: No Safe Eval All Opcode allowed mode = mod_perl (3)
[379]REQ: Package = HTML::Embperl::DOC::_3
[379]Reading /usr/local/apache/htdocs/169/common/tail.htm as input using PerlIO ...
[379]PERF: input = /usr/local/apache/htdocs/169/common/tail.htm
[379]PERF: Time: 0 ms Evals: 8 Cache Hits: 4 (50%)
[379]Sub-Request finished. Fri May 12 13:15:04 2000
. Entry-SVs: 28067 -OBJs: 43 Exit-SVs: 28197 -OBJs: 46
[379]HDR: 5
[379]HDR: Content-Length=7238
[379]HDR: Set-Cookie=EMBPERL_UID=a6d3b1e02514d81d; domain=.innomedia.com; path=/; expires=+1M
[379]HDR: Keep-Alive=timeout=15, max=100
[379]HDR: Connection=Keep-Alive
[379]HDR: Content-Type=text/html; charset=big5
[379]PERF: input = /usr/local/apache/htdocs/169/login.htm
[379]PERF: Time: 140 ms Evals: 6 Cache Hits: 0 (0%)
[379]Request finished. Fri May 12 13:15:04 2000
. Entry-SVs: 22520 -OBJs: 16 Exit-SVs: 28179 -OBJs: 44
[379]MEM: Free buffer for /usr/local/apache/htdocs/169/common/tail.htm in HTML::Embperl::DOC::_3
[379]MEM: Free buffer for /usr/local/apache/htdocs/169/common/head.htm in HTML::Embperl::DOC::_2
[379]MEM: Free buffer for /usr/local/apache/htdocs/169/login.htm in HTML::Embperl::DOC::_1
[379]MEM: Load /usr/local/apache/htdocs/169/test/udat.htm in HTML::Embperl::DOC::_4
[379]REQ: Embperl 1.2b9 starting... Fri May 12 13:15:18 2000

[379]REQ: No Safe Eval All Opcode allowed mode = mod_perl (3)
[379]REQ: Package = HTML::Embperl::DOC::_4
[379]HDR: 7
[379]HDR: Accept=application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
[379]HDR: Accept-Encoding=gzip, deflate
[379]HDR: Accept-Language=zh-tw
[379]HDR: Connection=Keep-Alive
[379]HDR: Cookie=169Net%40InnoMedia=email&root%40localhost&MAC&8a66d88fe8d8fef3ca1fac11b5203b6f&uid&1&user&panpipi
[379]HDR: Host=169net.innomedia.com
[379]HDR: User-Agent=Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; SEEDNet)
[379]Formdata... length = 0
[379]Using APACHE for output...
[379]Reading /usr/local/apache/htdocs/169/test/udat.htm as input using PerlIO ...
[379]HDR: 5
[379]HDR: Content-Length=361
[379]HDR: Set-Cookie=EMBPERL_UID=9718283401028a60; domain=.innomedia.com; path=/; expires=+1M
[379]HDR: Keep-Alive=timeout=15, max=97
[379]HDR: Connection=Keep-Alive
[379]HDR: Content-Type=text/html; charset=big5
[379]PERF: input = /usr/local/apache/htdocs/169/test/udat.htm
[379]PERF: Time: 10 ms Evals: 1 Cache Hits: 0 (0%)
[379]Request finished. Fri May 12 13:15:18 2000
. Entry-SVs: 28225 -OBJs: 45 Exit-SVs: 28334 -OBJs: 48
[379]MEM: Free buffer for /usr/local/apache/htdocs/169/test/udat.htm in HTML::Embperl::DOC::_4
[379]REQ: Embperl 1.2b9 starting... Fri May 12 13:15:20 2000

[379]REQ: No Safe Eval All Opcode allowed mode = mod_perl (3)
[379]REQ: Package = HTML::Embperl::DOC::_4
[379]HDR: 7
[379]HDR: Accept=*/*
[379]HDR: Accept-Encoding=gzip, deflate
[379]HDR: Accept-Language=zh-tw
[379]HDR: Connection=Keep-Alive
[379]HDR: Cookie=169Net%40InnoMedia=email&root%40localhost&MAC&8a66d88fe8d8fef3ca1fac11b5203b6f&uid&1&user&panpipi
[379]HDR: Host=169net.innomedia.com
[379]HDR: User-Agent=Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; SEEDNet)
[379]Formdata... length = 0
[379]Using APACHE for output...
[379]Reading /usr/local/apache/htdocs/169/test/udat.htm as input using PerlIO ...
[379]HDR: 5
[379]HDR: Content-Length=361
[379]HDR: Set-Cookie=EMBPERL_UID=d0c8a817e564170b; domain=.innomedia.com; path=/; expires=+1M
[379]HDR: Keep-Alive=timeout=15, max=96
[379]HDR: Connection=Keep-Alive
[379]HDR: Content-Type=text/html; charset=big5
[379]PERF: input = /usr/local/apache/htdocs/169/test/udat.htm
[379]PERF: Time: 0 ms Evals: 1 Cache Hits: 1 (100%)
[379]Request finished. Fri May 12 13:15:20 2000
. Entry-SVs: 28331 -OBJs: 48 Exit-SVs: 28340 -OBJs: 48
[379]MEM: Free buffer for /usr/local/apache/htdocs/169/test/udat.htm in HTML::Embperl::DOC::_4
[379]REQ: Embperl 1.2b9 starting... Fri May 12 13:15:22 2000

[379]REQ: No Safe Eval All Opcode allowed mode = mod_perl (3)
[379]REQ: Package = HTML::Embperl::DOC::_4
[379]HDR: 7
[379]HDR: Accept=*/*
[379]HDR: Accept-Encoding=gzip, deflate
[379]HDR: Accept-Language=zh-tw
[379]HDR: Connection=Keep-Alive
[379]HDR: Cookie=169Net%40InnoMedia=email&root%40localhost&MAC&8a66d88fe8d8fef3ca1fac11b5203b6f&uid&1&user&panpipi
[379]HDR: Host=169net.innomedia.com
[379]HDR: User-Agent=Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; SEEDNet)
[379]Formdata... length = 0
[379]Using APACHE for output...
[379]Reading /usr/local/apache/htdocs/169/test/udat.htm as input using PerlIO ...
[379]HDR: 5
[379]HDR: Content-Length=361
[379]HDR: Set-Cookie=EMBPERL_UID=e03788c5741b5de2; domain=.innomedia.com; path=/; expires=+1M
[379]HDR: Keep-Alive=timeout=15, max=95
[379]HDR: Connection=Keep-Alive
[379]HDR: Content-Type=text/html; charset=big5
[379]PERF: input = /usr/local/apache/htdocs/169/test/udat.htm
[379]PERF: Time: 0 ms Evals: 1 Cache Hits: 1 (100%)
[379]Request finished. Fri May 12 13:15:22 2000
. Entry-SVs: 28331 -OBJs: 48 Exit-SVs: 28340 -OBJs: 48
[379]MEM: Free buffer for /usr/local/apache/htdocs/169/test/udat.htm in HTML::Embperl::DOC::_4
[379]REQ: Embperl 1.2b9 starting... Fri May 12 13:15:23 2000

[379]REQ: No Safe Eval All Opcode allowed mode = mod_perl (3)
[379]REQ: Package = HTML::Embperl::DOC::_4
[379]HDR: 7
[379]HDR: Accept=*/*
[379]HDR: Accept-Encoding=gzip, deflate
[379]HDR: Accept-Language=zh-tw
[379]HDR: Connection=Keep-Alive
[379]HDR: Cookie=169Net%40InnoMedia=email&root%40localhost&MAC&8a66d88fe8d8fef3ca1fac11b5203b6f&uid&1&user&panpipi
[379]HDR: Host=169net.innomedia.com
[379]HDR: User-Agent=Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; SEEDNet)
[379]Formdata... length = 0
[379]Using APACHE for output...
[379]Reading /usr/local/apache/htdocs/169/test/udat.htm as input using PerlIO ...
[379]HDR: 5
[379]HDR: Content-Length=361
[379]HDR: Set-Cookie=EMBPERL_UID=c43b2b0cad8224e5; domain=.innomedia.com; path=/; expires=+1M
[379]HDR: Keep-Alive=timeout=15, max=94
[379]HDR: Connection=Keep-Alive
[379]HDR: Content-Type=text/html; charset=big5
[379]PERF: input = /usr/local/apache/htdocs/169/test/udat.htm
[379]PERF: Time: 10 ms Evals: 1 Cache Hits: 1 (100%)
[379]Request finished. Fri May 12 13:15:23 2000
. Entry-SVs: 28331 -OBJs: 48 Exit-SVs: 28340 -OBJs: 48
[379]MEM: Free buffer for /usr/local/apache/htdocs/169/test/udat.htm in HTML::Embperl::DOC::_4

----- Original Message -----
From: Gerald Richter
To: Hello ; Embperl@Perl. Apache. Org
Sent: Thursday, May 11, 2000 1:32 PM
Subject: RE: %udat persistence problem...S.O.S.




I'm sure cookie is enabled because i saw it enabled in IE5 configuration list. Any other possibility?
Have you read the other thread about %udat on the Embperl mailinglist?

Try

- setting dbgHeadersIn in EMBPERL_DEBUG an see if the cookies is always send by the browser
- to upgrade IE 5
- replace SysVSemaphoreLocker with NullLocker

Gerald
RE: %udat persistence problem...S.O.S. [ In reply to ]
...
[379]Sub-Request finished. Fri May 12 13:15:04 2000
. Entry-SVs: 28067 -OBJs: 43 Exit-SVs: 28197 -OBJs: 46
[379]HDR: 5
[379]HDR: Content-Length=7238
[379]HDR: Set-Cookie=EMBPERL_UID=a6d3b1e02514d81d; domain=.innomedia.com;
path=/; expires=+1M

Here you see that Embperl send a cookie
...
[379]REQ: Package = HTML::Embperl::DOC::_4
[379]HDR: 7
[379]HDR: Accept=application/vnd.ms-excel, application/msword,
application/vnd.ms-powerpoint, image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, */*
[379]HDR: Accept-Encoding=gzip, deflate
[379]HDR: Accept-Language=zh-tw
[379]HDR: Connection=Keep-Alive
[379]HDR:
Cookie=169Net%40InnoMedia=email&root%40localhost&MAC&8a66d88fe8d8fef3ca1fac1
1b5203b6f&uid&1&user&panpipi

And here you see that the cookie doesn't comes back from your browser.
Instead there is another cookie comming back.

So either IE5 doesn't accepts the Embperl cookie or it doesn't send it back.
I am not sure if +1M is a valid value for expires. Maybe you try it without
the EMBPERL_EXPIRES setting, which will cause the browser to forget about
the cookie when it is closed.

Gerald
RE: %udat persistence problem...S.O.S. [ In reply to ]
I'm sorry I didn't read the mailing list, because I don't know how to get
the list.

Look at
http://perl.apache.org/embperl/Embperl.pod.15.html#Feedback_and_Bug_Reports

Gerald
Re: %udat persistence problem...thank you. [ In reply to ]
hi,

it works! i commented out my EMBPERL_EXPIRES.

thank you so much.

best regards,
huang-ming
[379]HDR: Set-Cookie=EMBPERL_UID=a6d3b1e02514d81d; domain=.innomedia.com; path=/; expires=+1M

Here you see that Embperl send a cookie
...
[379]HDR: Connection=Keep-Alive
[379]HDR: Cookie=169Net%40InnoMedia=email&root%40localhost&MAC&8a66d88fe8d8fef3ca1fac11b5203b6f&uid&1&user&panpipi

And here you see that the cookie doesn't comes back from your browser. Instead there is another cookíe comming back.

So either IE5 doesn't accepts the Embperl cookie or it doesn't send it back. I am not sure if +1M is a valid value for expires. Maybe you try it without the EMBPERL_EXPIRES setting, which will cause the browser to forget about the cookie when it is closed.
Re: %udat persistence problem...S.O.S. [ In reply to ]
sirs,

i met a problem on EMBPERL_COOKIE_DOMAIN, which i set it to "xyz.com" for example. the IP address of my www.xyz.com is 123.99.88.77.

%udat fails to be persistent if the URL entered in browser's Location box is http://123.99.88.77, very possibly because the domain part is "99.88.77" which is different from "xyz.com" i set for EMBPERL_COOKIE_DOMAIN so that the browser won't return the cookie EMBPERL_UID.

i uncomment PerlSetEnv EMBPERL_COOKIE_DOMAIN but it still not work.

or, how can i know entered URL is 123.99.88.77 (not SERVER_NAME) so that i can redirect the browser to www.xyz.com?

is there any elegant remedy for such kind of user ignorance?

thanks.
huang-ming
----- Original Message -----
From: Gerald Richter
To: Hello ; Embperl@Perl. Apache. Org
Sent: Friday, May 12, 2000 2:04 PM
Subject: RE: %udat persistence problem...S.O.S.




I'm sorry I didn't read the mailing list, because I don't know how to get the list.

Look at http://perl.apache.org/embperl/Embperl.pod.15.html#Feedback_and_Bug_Reports

Gerald
RE: %udat persistence problem...S.O.S. [ In reply to ]
Hi,

for Browsers that supports HTTP 1.1 there should be a Host header (or
similar), that you can use. For older browser that only support HTTP 1.0,
you can't get this information.

Gerald


-------------------------------------------------------------
Gerald Richter ecos electronic communication services gmbh
Internetconnect * Webserver/-design/-datenbanken * Consulting

Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz
E-Mail: richter@ecos.de Voice: +49 6133 925151
WWW: http://www.ecos.de Fax: +49 6133 925152
-------------------------------------------------------------



-----Original Message-----
From: embperl-return-511-richter=ecos.de@perl.apache.org
[mailto:embperl-return-511-richter=ecos.de@perl.apache.org]On Behalf Of
Hello!
Sent: Thursday, June 01, 2000 1:36 AM
To: Gerald Richter; Embperl@Perl. Apache. Org
Subject: Re: %udat persistence problem...S.O.S.
Importance: High


sirs,

i met a problem on EMBPERL_COOKIE_DOMAIN, which i set it to "xyz.com" for
example. the IP address of my www.xyz.com is 123.99.88.77.

%udat fails to be persistent if the URL entered in browser's Location box
is http://123.99.88.77, very possibly because the domain part is "99.88.77"
which is different from "xyz.com" i set for EMBPERL_COOKIE_DOMAIN so that
the browser won't return the cookie EMBPERL_UID.

i uncomment PerlSetEnv EMBPERL_COOKIE_DOMAIN but it still not work.

or, how can i know entered URL is 123.99.88.77 (not SERVER_NAME) so that i
can redirect the browser to www.xyz.com?

is there any elegant remedy for such kind of user ignorance?

thanks.
huang-ming
----- Original Message -----
From: Gerald Richter
To: Hello ; Embperl@Perl. Apache. Org
Sent: Friday, May 12, 2000 2:04 PM
Subject: RE: %udat persistence problem...S.O.S.




I'm sorry I didn't read the mailing list, because I don't know how to
get the list.

Look at
http://perl.apache.org/embperl/Embperl.pod.15.html#Feedback_and_Bug_Reports

Gerald