php-general Digest 24 Jan 2011 19:17:11 -0000 Issue 7150
php-general Digest 24 Jan 2011 19:17:11 - Issue 7150 Topics (messages 310994 through 311007): Re: No SMTP server? Can't get mail() 310994 by: Paul S 310995 by: David Robley Re: Zend memory manager 310996 by: Tommy Pham 311007 by: Adi Mutu Mysql search query ignoring dots 310997 by: Barbara Picci 310998 by: Tommy Pham Re: Different sessions, same client 310999 by: Steve Staples 311000 by: Tommy Pham 311001 by: Donovan Brooke 311003 by: Tommy Pham preg_replace question 311002 by: Merlin Morgenstern 311004 by: David Harkness 311005 by: Alex Nikitin 311006 by: Jim Lucas Administrivia: To subscribe to the digest, e-mail: php-general-digest-subscr...@lists.php.net To unsubscribe from the digest, e-mail: php-general-digest-unsubscr...@lists.php.net To post to the list, e-mail: php-gene...@lists.php.net -- ---BeginMessage--- On Sun, 23 Jan 2011 12:40:25 +0700, David Robley robl...@aapt.net.au wrote: Paul S wrote: I'm a little new to PHP. David starts: Nobody seems to have mentioned it, but the SMTP info is only needed on a Win system. The following is an extract from a default php.ini file: Well, I have just RTF mail() Manual and you are ABSOLUTELY correct SMTP info is not needed for PHP mail(). SORRY for that confusion. Where my confusion started, I guess, and why I was trying to get confirmation of the SMTP server name and try mail() at the same time was the mention of both in a SMTP option in the default php config.php file for the email list program that I am trying to get running, as follows ... begin quote# If you want to use the PHPMailer class from phpmailer.sourceforge.net, set the following # to 1. If you tend to send out html emails, it is recommended to do so. define(PHPMAILER,1); # To use a SMTP please give your server hostname here, leave it blank to use the standard # PHP mail() command. define(PHPMAILERHOST,'');end quote I'm still confused! :-( I can't even put my confusion into words hahahaha. Is it SMTP server that uses sendmail or sendmail uses an SMTP server??? PHPMAILER doesn't need an SMTP server name? OK, I've just googled PHPMAILERHOST and see confusing a few times. I will follow it from here for now. mail() should be functional; if mail() is returning true then your next step in the debug process would be to check the mail logs, if they are accessible to you. Well, I am glad you agree! no access that I know of. No telnet. and no helpful replies from the staff, ever and No PHPINFO and no echo of even what Apache server version I am using (see blocked info in my post above) RANT: I could put just this whole project aside by just using an old v. simple emaillist program that uses mail().! I'm about to give up here. On the other hand, using an SMTP class will give you a bit more functionality. I'll check SMTP classes out. Thank you. -- Using Opera's revolutionary email client: http://www.opera.com/mail/ ---End Message--- ---BeginMessage--- Paul S wrote: On Sun, 23 Jan 2011 12:40:25 +0700, David Robley robl...@aapt.net.au wrote: Paul S wrote: I'm a little new to PHP. David starts: Nobody seems to have mentioned it, but the SMTP info is only needed on a Win system. The following is an extract from a default php.ini file: Well, I have just RTF mail() Manual and you are ABSOLUTELY correct SMTP info is not needed for PHP mail(). SORRY for that confusion. Where my confusion started, I guess, and why I was trying to get confirmation of the SMTP server name and try mail() at the same time was the mention of both in a SMTP option in the default php config.php file for the email list program that I am trying to get running, as follows ... begin quote# If you want to use the PHPMailer class from phpmailer.sourceforge.net, set the following # to 1. If you tend to send out html emails, it is recommended to do so. define(PHPMAILER,1); # To use a SMTP please give your server hostname here, leave it blank to use the standard # PHP mail() command. define(PHPMAILERHOST,'');end quote This gives you the option to use mail() (not SMTP) on the localhost - i.e the server where the script is running, probably your ISP or hosting company; or; to set the MAILERHOST to an external mail server using SMTP, maybe gmail, yahoo mail, the mail provided by your ISP I'm still confused! :-( I can't even put my confusion into words hahahaha. Is it SMTP server that uses sendmail or sendmail uses an SMTP server??? Not going there if you are as fresh to the Internet as your question suggests :-) PHPMAILER doesn't need an SMTP server name? OK, I've just googled PHPMAILERHOST and see confusing a few times. I will follow it from here for now. mail() should be functional; if mail() is returning true
Re: [PHP] No SMTP server? Can't get mail()
On Sun, 23 Jan 2011 12:40:25 +0700, David Robley robl...@aapt.net.au wrote: Paul S wrote: I'm a little new to PHP. David starts: Nobody seems to have mentioned it, but the SMTP info is only needed on a Win system. The following is an extract from a default php.ini file: Well, I have just RTF mail() Manual and you are ABSOLUTELY correct SMTP info is not needed for PHP mail(). SORRY for that confusion. Where my confusion started, I guess, and why I was trying to get confirmation of the SMTP server name and try mail() at the same time was the mention of both in a SMTP option in the default php config.php file for the email list program that I am trying to get running, as follows ... begin quote# If you want to use the PHPMailer class from phpmailer.sourceforge.net, set the following # to 1. If you tend to send out html emails, it is recommended to do so. define(PHPMAILER,1); # To use a SMTP please give your server hostname here, leave it blank to use the standard # PHP mail() command. define(PHPMAILERHOST,'');end quote I'm still confused! :-( I can't even put my confusion into words hahahaha. Is it SMTP server that uses sendmail or sendmail uses an SMTP server??? PHPMAILER doesn't need an SMTP server name? OK, I've just googled PHPMAILERHOST and see confusing a few times. I will follow it from here for now. mail() should be functional; if mail() is returning true then your next step in the debug process would be to check the mail logs, if they are accessible to you. Well, I am glad you agree! no access that I know of. No telnet. and no helpful replies from the staff, ever and No PHPINFO and no echo of even what Apache server version I am using (see blocked info in my post above) RANT: I could put just this whole project aside by just using an old v. simple emaillist program that uses mail().! I'm about to give up here. On the other hand, using an SMTP class will give you a bit more functionality. I'll check SMTP classes out. Thank you. -- Using Opera's revolutionary email client: http://www.opera.com/mail/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] No SMTP server? Can't get mail()
Paul S wrote: On Sun, 23 Jan 2011 12:40:25 +0700, David Robley robl...@aapt.net.au wrote: Paul S wrote: I'm a little new to PHP. David starts: Nobody seems to have mentioned it, but the SMTP info is only needed on a Win system. The following is an extract from a default php.ini file: Well, I have just RTF mail() Manual and you are ABSOLUTELY correct SMTP info is not needed for PHP mail(). SORRY for that confusion. Where my confusion started, I guess, and why I was trying to get confirmation of the SMTP server name and try mail() at the same time was the mention of both in a SMTP option in the default php config.php file for the email list program that I am trying to get running, as follows ... begin quote# If you want to use the PHPMailer class from phpmailer.sourceforge.net, set the following # to 1. If you tend to send out html emails, it is recommended to do so. define(PHPMAILER,1); # To use a SMTP please give your server hostname here, leave it blank to use the standard # PHP mail() command. define(PHPMAILERHOST,'');end quote This gives you the option to use mail() (not SMTP) on the localhost - i.e the server where the script is running, probably your ISP or hosting company; or; to set the MAILERHOST to an external mail server using SMTP, maybe gmail, yahoo mail, the mail provided by your ISP I'm still confused! :-( I can't even put my confusion into words hahahaha. Is it SMTP server that uses sendmail or sendmail uses an SMTP server??? Not going there if you are as fresh to the Internet as your question suggests :-) PHPMAILER doesn't need an SMTP server name? OK, I've just googled PHPMAILERHOST and see confusing a few times. I will follow it from here for now. mail() should be functional; if mail() is returning true then your next step in the debug process would be to check the mail logs, if they are accessible to you. Well, I am glad you agree! no access that I know of. No telnet. and no helpful replies from the staff, ever and No PHPINFO and no echo of even what Apache server version I am using (see blocked info in my post above) RANT: I could put just this whole project aside by just using an old v. simple emaillist program that uses mail().! I'm about to give up here. On the other hand, using an SMTP class will give you a bit more functionality. I'll check SMTP classes out. Thank you. phpMailer is an SMTP class :-) See also swiftmail, and probably quite a few others. Generally they will handle both sending mail from the localhost - where the script is, mail() - or a remote SMTP host. Cheers -- David Robley Happiness is finding special characters . Today is Prickle-Prickle, the 24th day of Chaos in the YOLD 3177. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] Zend memory manager
From the search results, you'd see several links http://forums.zend.com. I'd say that's the best place to ask ;) From: Adi Mutu [mailto:adi_mut...@yahoo.com] Sent: Sunday, January 23, 2011 11:07 PM To: Tommy Pham Cc: php-general@lists.php.net; Daniel Brown Subject: Re: [PHP] Zend memory manager Of course I have tried, but nothing ... The results or only aboyt emalloc/pemalloc familly. Nothing lower level about how these 2 functions are implemented or about the mm_heap struct of mm_block.
[PHP] Mysql search query ignoring dots
Hi all, I have to perform a mysql query in a table with millions of records. I've full-text indexed my search field and I'm searching with MATCH AGAINST. But there is a problem. In this field there are company names that contain dots, for istance I've PO.SE. srl and I want to find it if the user search for: POSE or PO.SE or P.O.S.E. etc. I googled in the web but I don't find any solution. I don't want to add a new field with the cleaned version of my string because I would like to solve with the query and I prefer that the mysql table not become too big. But if I will not find a different solution, I will use this escamotage. I've find a post that is similar but the solution don't seem to solve my situation. You can see it at the url: http://forums.mysql.com/read.php?10,395557,395584#msg-395584 In my case replace(email, '.', '') = replace(theSearchValue, '.', ''); is indifferent and don't change my results. My query, searching POSE, is: select aziende.* from aziende where 10 AND (MATCH(aziende.ragione_sociale) AGAINST('+POSE' IN BOOLEAN MODE) OR (replace(aziende.ragione_sociale, '.', '') = replace('POSE', '.', '')) order by aziende.ragione_sociale limit 0, 10 The alternative choice could be REGEXP but I've red that it make my query slow in a table of millions of records and I don't know how to exclude dots in the regular expression. Can anyone help me? Thanks in advance. Barbara -- Barbara Picci Micro srl viale Marconi 222, 09131 Cagliari - tel. (+39) 070400240 http://www.microsrl.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] Mysql search query ignoring dots
-Original Message- From: Barbara Picci [mailto:barbara.pi...@sardi.it] Sent: Monday, January 24, 2011 4:51 AM To: php-general@lists.php.net Subject: [PHP] Mysql search query ignoring dots Hi all, I have to perform a mysql query in a table with millions of records. I've full-text indexed my search field and I'm searching with MATCH AGAINST. But there is a problem. In this field there are company names that contain dots, for istance I've PO.SE. srl and I want to find it if the user search for: POSE or PO.SE or P.O.S.E. etc. I googled in the web but I don't find any solution. I don't want to add a new field with the cleaned version of my string because I would like to solve with the query and I prefer that the mysql table not become too big. But if I will not find a different solution, I will use this escamotage. I've find a post that is similar but the solution don't seem to solve my situation. You can see it at the url: http://forums.mysql.com/read.php?10,395557,395584#msg-395584 In my case replace(email, '.', '') = replace(theSearchValue, '.', ''); is indifferent and don't change my results. My query, searching POSE, is: select aziende.* from aziende where 10 AND (MATCH(aziende.ragione_sociale) AGAINST('+POSE' IN BOOLEAN MODE) OR (replace(aziende.ragione_sociale, '.', '') = replace('POSE', '.', '')) order by aziende.ragione_sociale limit 0, 10 The alternative choice could be REGEXP but I've red that it make my query slow in a table of millions of records and I don't know how to exclude dots in the regular expression. Can anyone help me? Thanks in advance. Barbara -- Barbara Picci Micro srl viale Marconi 222, 09131 Cagliari - tel. (+39) 070400240 http://www.microsrl.com I don't see anything relevant regarding PHP. As for ' a table of millions of records,' that sounds like questions for the DBA. Regards, Tommy -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] Different sessions, same client
On Sun, 2011-01-23 at 17:40 -0800, Tommy Pham wrote: -Original Message- From: Tommy Pham [mailto:tommy...@gmail.com] Sent: Sunday, January 23, 2011 5:23 PM To: 'Paul M Foster' Cc: 'php-general@lists.php.net'; 'Thijs Lensselink' Subject: RE: [PHP] Different sessions, same client -Original Message- From: Thijs Lensselink [mailto:d...@lenss.nl] Sent: Sunday, January 23, 2011 12:21 AM To: php-general@lists.php.net Subject: Re: [PHP] Different sessions, same client -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 01/23/2011 07:33 AM, Paul M Foster wrote: Storing any sort of login/auth data in cookies has regularly been panned on this list. The preference seems to be to store whatever login/auth information *must* be stored in the $_SESSION variable. Well and good. My problem, however, is that I have multiple applications in different tabs running on the same server, which may all use the same sub-variables, like username. As a result, they run into each other. One application will think I'm logged in when I'm not logged in to that application, but to another in the same browser on the same box. So my question is how to prevent this using the standard PHP functions relating to sessions. I'd like different applications in different tabs on the same box/browser to have different sessions, so they don't share data. Thoughts? Paul Using session_name will allow you to run two different sessions in the same browser. session_name('app1'); session_start(); Paul, I'd would go with session_name($_SERVER['SCRIPT_NAME']) or session_name(substr($_SERVER['SCRIPT_NAME'], 0, strripos($_SERVER['SCRIPT_NAME'], '/')). My regex skills sucks so I can't give you a sample using regex. But you get the idea. It's easier to get a particular app's relevant data to the URL while not hard coding the session name, eventually giving your app(s) more flexibility especially if you may have multiple URLs mapped to an app serving different purposes/clients. Regards, Tommy Forgot to mention that this assumes your app's design is MVC like with a single point entry only. Hey guys... I too once tried this, basically so that I could stop users logging in on multiple tabs, and if they did, then it would kill the previous login (or not allow them to be logged in as they would be logged in still). I had so many issues, that I abandoned it. After reading this thread, I thought I would try Tommy's suggestion about using a unique named session... so I just tried this: ?php session_name(uniqid()); session_start(); echo session_id(); ? YAY! it worked!! so then i tried this: ?php session_name(uniqid()); session_start(); $_SESSION['t_'. time()] = time(); echo session_id(); echo 'pre'; print_r($_SESSION); echo '/pre'; ? and it doesn't preserve the older session information... so I must be doing something wrong. I can assume that because the name is being regenerated new each time, that the old previous session is destroyed (which would make sense) but then how can *I* ensure that each session is going to be unique enough, but preserve old session information too? I know it has to be possible, as my bank doesn't allow multiple tabs while online banking. /sigh the joys of protecting users from themselves... -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] Different sessions, same client
-Original Message- From: Steve Staples [mailto:sstap...@mnsi.net] Sent: Monday, January 24, 2011 6:31 AM To: Tommy Pham Cc: 'Paul M Foster'; php-general@lists.php.net Subject: RE: [PHP] Different sessions, same client On Sun, 2011-01-23 at 17:40 -0800, Tommy Pham wrote: -Original Message- From: Tommy Pham [mailto:tommy...@gmail.com] Sent: Sunday, January 23, 2011 5:23 PM To: 'Paul M Foster' Cc: 'php-general@lists.php.net'; 'Thijs Lensselink' Subject: RE: [PHP] Different sessions, same client -Original Message- From: Thijs Lensselink [mailto:d...@lenss.nl] Sent: Sunday, January 23, 2011 12:21 AM To: php-general@lists.php.net Subject: Re: [PHP] Different sessions, same client -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 01/23/2011 07:33 AM, Paul M Foster wrote: Storing any sort of login/auth data in cookies has regularly been panned on this list. The preference seems to be to store whatever login/auth information *must* be stored in the $_SESSION variable. Well and good. My problem, however, is that I have multiple applications in different tabs running on the same server, which may all use the same sub-variables, like username. As a result, they run into each other. One application will think I'm logged in when I'm not logged in to that application, but to another in the same browser on the same box. So my question is how to prevent this using the standard PHP functions relating to sessions. I'd like different applications in different tabs on the same box/browser to have different sessions, so they don't share data. Thoughts? Paul Using session_name will allow you to run two different sessions in the same browser. session_name('app1'); session_start(); Paul, I'd would go with session_name($_SERVER['SCRIPT_NAME']) or session_name(substr($_SERVER['SCRIPT_NAME'], 0, strripos($_SERVER['SCRIPT_NAME'], '/')). My regex skills sucks so I can't give you a sample using regex. But you get the idea. It's easier to get a particular app's relevant data to the URL while not hard coding the session name, eventually giving your app(s) more flexibility especially if you may have multiple URLs mapped to an app serving different purposes/clients. Regards, Tommy Forgot to mention that this assumes your app's design is MVC like with a single point entry only. Hey guys... I too once tried this, basically so that I could stop users logging in on multiple tabs, and if they did, then it would kill the previous login (or not allow them to be logged in as they would be logged in still). I had so many issues, that I abandoned it. After reading this thread, I thought I would try Tommy's suggestion about using a unique named session... so I just tried this: ?php session_name(uniqid()); session_start(); echo session_id(); ? YAY! it worked!! so then i tried this: ?php session_name(uniqid()); session_start(); $_SESSION['t_'. time()] = time(); echo session_id(); echo 'pre'; print_r($_SESSION); echo '/pre'; ? and it doesn't preserve the older session information... so I must be doing something wrong. I can assume that because the name is being regenerated new each time, that the old previous session is destroyed (which would make sense) but then how can *I* ensure that each session is going to be unique enough, but preserve old session information too? I know it has to be possible, as my bank doesn't allow multiple tabs while online banking. /sigh the joys of protecting users from themselves... Steve, The problem with uniqid() is it's based on unix timestamp, IIRC. So the session name always changes and it's impossible to figure out what's the previous session name is so how could you get the previously saved session data. That's why I suggested the session name based on URL/URI. If the app does not have a MVC like desgin, you could use a particular parameter's value to ensure that session name is valid for certain purpose. For example: http://server/training/schedules/ is different from http://server/events/schedules/. Should the person in charge of both needs to maintain them, it still could be done getting the session_name based on the url requesting. Thus, you'd be able to get the previously saved session data. Also, if the need arises, you could also get data from different sessions if the business needs requires it because you know exactly what the session name based URL is. As in the example above, the maintainer could check to ensure that the certain scheduled items wouldn't conflict each other in cases where the attendees are required to attend both :) Regards, Tommy -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Different sessions, same client
[snip] ?php session_name(uniqid()); session_start(); echo session_id(); ? YAY! it worked!! so then i tried this: ?php session_name(uniqid()); session_start(); $_SESSION['t_'. time()] = time(); echo session_id(); echo 'pre'; print_r($_SESSION); echo '/pre'; ? and it doesn't preserve the older session information... so I must be doing something wrong. I can assume that because the name is being regenerated new each time, that the old previous session is destroyed (which would make sense) but then how can *I* ensure that each session is going to be unique enough, but preserve old session information too? I know it has to be possible, as my bank doesn't allow multiple tabs while online banking. /sigh the joys of protecting users from themselves... Hello, What seems to be missing from this thread is talk about the root of the problem. You would never want to create the same cookie name for alike web-apps for the very reason Paul has discovered. Session_name works because it changes the name of the PHP session cookie. This is important for CMS builders, Forum builders, or other app builders etc.. Paul mentions: Storing any sort of login/auth data in cookies has regularly been panned on this list. The preference seems to be to store whatever login/auth information *must* be stored in the $_SESSION variable. Well, there are only 2 ways that I know of to retain *state* in a web app (no matter what web server-side language you are working with), which are cookies or passing a variable in all links... so I would re-phrase Paul's statement above to say, to retain state, there is *always* some reference to login data (whether direct or indirect (encrypted)), but right, it's not a good idea to store AUTH info. Extending Tedd's suggestion, Instead of a unique ID for a session name (most often session *cookie*), I really prefer a hash of something that results in a recognizable cookie name over something random. In my opinion only, it is a bit shady to create a cookie that is unrecognizable. At the least, when I am managing my own cookies, I will delete wierd cookie names. What I usually do for sessions is create a cookie name that is based on the domain, and also lists the word session... so a format something like: domain_session A format such as above lets the user know right away where the cookie comes from and what it does. I would post code, but I haven't written the hash in PHP yet. One last note about this hash, I always include a default to the IP address in the case of development, or if the site does not have a domain name. Oh, and one last last note, Accessing a web app with localhost does not work well with cookies either.. so in my hash, I redirect those who access my app from localhost to the localhost IP (127.0.0.1) right away. I know that last part is a bit complicated, but I help write the hash if the list is interested. I was really surprised to find no mention of this on the PHP's examples of sessions. Sorry for the long post! Donovan -- D Brooke -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] preg_replace question
Hi there, I am trying to replace certain words inside a text with php. Unfortunatelly my function is creating invalid html as output. For example the words beagle and welpen have to be replaced inside this text: süße knuffige Beagle Welpen ab sofort My result looks like this: zwei süße knuffige a href=/bsp/hunde,beagleBeagle a href=/bsp/hundeWelpen/a/a The problem is, that my function is not closing the href tag before it starts to replace the next item. Here is the code: // create internal links function internal_links($str, $links, $limit) { foreach($links AS $link){ $pattern[$k] = ~\b($link[phrase])\b~i; $replace[$k] = 'a href='.$link[link].'\\1/a'; $k++; } return preg_replace($pattern,$replace,$str, $limit); } I I could not find a way to fix this and I would be happy for some help. Thank you in advance! Merlin -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] Different sessions, same client
-Original Message- From: Donovan Brooke [mailto:li...@euca.us] Sent: Monday, January 24, 2011 7:49 AM Cc: php-general@lists.php.net Subject: Re: [PHP] Different sessions, same client [snip] ?php session_name(uniqid()); session_start(); echo session_id(); ? YAY! it worked!! so then i tried this: ?php session_name(uniqid()); session_start(); $_SESSION['t_'. time()] = time(); echo session_id(); echo 'pre'; print_r($_SESSION); echo '/pre'; ? and it doesn't preserve the older session information... so I must be doing something wrong. I can assume that because the name is being regenerated new each time, that the old previous session is destroyed (which would make sense) but then how can *I* ensure that each session is going to be unique enough, but preserve old session information too? I know it has to be possible, as my bank doesn't allow multiple tabs while online banking. /sigh the joys of protecting users from themselves... Hello, What seems to be missing from this thread is talk about the root of the problem. You would never want to create the same cookie name for alike web-apps for the very reason Paul has discovered. Session_name works because it changes the name of the PHP session cookie. This is important for CMS builders, Forum builders, or other app builders etc.. That's exactly part of the 1st point of 3 points I've described in another thread. We don't exactly know the current/future requirements of the business, the different apps being used, who developed those apps, in what way are each app's data need be interconnected/shared, etc. So we can only give suggestions based on limited info disclosure for whatever the reason maybe, perhaps security or something else. Regards, Tommy Paul mentions: Storing any sort of login/auth data in cookies has regularly been panned on this list. The preference seems to be to store whatever login/auth information *must* be stored in the $_SESSION variable. Well, there are only 2 ways that I know of to retain *state* in a web app (no matter what web server-side language you are working with), which are cookies or passing a variable in all links... so I would re-phrase Paul's statement above to say, to retain state, there is *always* some reference to login data (whether direct or indirect (encrypted)), but right, it's not a good idea to store AUTH info. Extending Tedd's suggestion, Instead of a unique ID for a session name (most often session *cookie*), I really prefer a hash of something that results in a recognizable cookie name over something random. In my opinion only, it is a bit shady to create a cookie that is unrecognizable. At the least, when I am managing my own cookies, I will delete wierd cookie names. What I usually do for sessions is create a cookie name that is based on the domain, and also lists the word session... so a format something like: domain_session A format such as above lets the user know right away where the cookie comes from and what it does. I would post code, but I haven't written the hash in PHP yet. One last note about this hash, I always include a default to the IP address in the case of development, or if the site does not have a domain name. Oh, and one last last note, Accessing a web app with localhost does not work well with cookies either.. so in my hash, I redirect those who access my app from localhost to the localhost IP (127.0.0.1) right away. I know that last part is a bit complicated, but I help write the hash if the list is interested. I was really surprised to find no mention of this on the PHP's examples of sessions. Sorry for the long post! Donovan -- D Brooke -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] preg_replace question
Without seeing the code that creates the arrays, it's tough to see the problem. It looks like the first replacement is catching Beagle Welpen entirely since the closing /a tag gets placed after Welpen. Then the second replacement does just Welpen. Also, you should have quotes around link when building the $replace[] entry since the array access is outside quotes. Finally, you don't need $k here at all. // create internal links function internal_links($str, $links, $limit) { foreach($links AS $link){ $pattern[] = ~\b($link[phrase])\b~i; $replace[] = 'a href='.$link['link'].'\\1/a'; } return preg_replace($pattern,$replace,$str, $limit); } David
Re: [PHP] preg_replace question
If you declare your arrays, and set k to 0 first, put quotes around array values and use the correct limit (you can default to -1), you will get results, here is code and example (hopefully this helps you) ?php function internal_links($str, $links, $limit=-1) { $pattern=array(); $replace=array(); $k=0; foreach($links AS $link){ $pattern[$k] = ~\b({$link['phrase']})\b~i; $replace[$k] = 'a href='.$link['link'].'\\1/a'; $k++; } return preg_replace($pattern,$replace,$str, $limit); } echo internal_links(süße knuffige Beagle Welpen ab sofort, array(array('phrase'=beagle, 'link'=http://google.com;),array('phrase'=welpen, 'link'=http://wolframalpha.com;)), -1); Output: süße knuffige a href=http://google.com;Beagle/a a href= http://wolframalpha.com;Welpen/a ab ~Alex
Re: [PHP] preg_replace question
On 1/24/2011 8:00 AM, Merlin Morgenstern wrote: Hi there, I am trying to replace certain words inside a text with php. Unfortunatelly my function is creating invalid html as output. For example the words beagle and welpen have to be replaced inside this text: süße knuffige Beagle Welpen ab sofort My result looks like this: zwei süße knuffige a href=/bsp/hunde,beagleBeagle a href=/bsp/hundeWelpen/a/a The problem is, that my function is not closing the href tag before it starts to replace the next item. Here is the code: // create internal links function internal_links($str, $links, $limit) { foreach($links AS $link){ $pattern[$k] = ~\b($link[phrase])\b~i; $replace[$k] = 'a href='.$link[link].'\\1/a'; $k++; } return preg_replace($pattern,$replace,$str, $limit); } I I could not find a way to fix this and I would be happy for some help. Thank you in advance! Merlin Do you have control over the building of the initial phrase = link assoc? If so, reverse the order of these two items. Jim Lucas -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] Zend memory manager
I have asked also there..but no answerBut honestly i don't understand why you have reccomended me that forum..because i thougt these mailing lists are about php developing... Thanks,A.
Re: [PHP] Zend memory manager
On Mon, Jan 24, 2011 at 14:17, Adi Mutu adi_mut...@yahoo.com wrote: I have asked also there..but no answerBut honestly i don't understand why you have reccomended me that forum..because i thougt these mailing lists are about php developing... Because this is about developing in PHP in general, not what makes PHP work. You don't seem to be making the distinction. To clarify, again: This is not the place to ask. At best, you could use the Internals mailing list, but to be perfectly honest, I doubt you'll get the help you're seeking with what you've asked. Still, you can try: intern...@lists.php.net. -- /Daniel P. Brown Network Infrastructure Manager Documentation, Webmaster Teams http://www.php.net/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Mysql search query ignoring dots
Hi, Monday, January 24, 2011, 10:50:41 PM, you wrote: BP Hi all, BP I have to perform a mysql query in a table with millions of records. BP I've full-text indexed my search field and I'm searching with MATCH AGAINST. BP But there is a problem. In this field there are company names that BP contain dots, for istance I've PO.SE. srl and I want to find it if BP the user search for: POSE or PO.SE or P.O.S.E. etc. BP I googled in the web but I don't find any solution. I don't want to BP add a new field with the cleaned version of my string because I would BP like to solve with the query and I prefer that the mysql table not BP become too big. But if I will not find a different solution, I will BP use this escamotage. BP I've find a post that is similar but the solution don't seem to solve BP my situation. BP You can see it at the url: BP http://forums.mysql.com/read.php?10,395557,395584#msg-395584 BP In my case replace(email, '.', '') = replace(theSearchValue, '.', ''); BP is indifferent and don't change my results. BP My query, searching POSE, is: BP select aziende.* from aziende where 10 AND BP (MATCH(aziende.ragione_sociale) AGAINST('+POSE' IN BOOLEAN MODE) OR BP (replace(aziende.ragione_sociale, '.', '') = replace('POSE', '.', BP '')) order by aziende.ragione_sociale limit 0, 10 BP The alternative choice could be REGEXP but I've red that it make my BP query slow in a table of millions of records and I don't know how to BP exclude dots in the regular expression. BP Can anyone help me? BP Thanks in advance. BP Barbara BP -- BP BP Barbara Picci BP Micro srl BP viale Marconi 222, 09131 Cagliari - tel. (+39) 070400240 BP http://www.microsrl.com In the interest of speed it may be worth creating a table with just a link id and the text to search which you can cleanup before inserting. It will probably save you a headache in the future and will be quicker than complicated queries. The list of possible ids can then be tested against the full table for any other criteria which if the table is indexed properly will be fast too. -- regards, Tom -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php