Re: [SMARTY] Basic question
Howler <[email protected]>
| Newsgroups | gmane.comp.php.smarty.general |
|---|---|
| Message-ID | <[email protected]> |
Monte,
Thanks for your time, I'll definitely upgrade!
Thanks again,
John Brosan
Monte Ohrt wrote:
> That doesn't look anything like line 180, try upgrading Smarty.
>
> Howler wrote:
>
>> Monte,
>>
>> I am using Smarty 2.6.10 PHP 4.3.11 hosted by www.pronicsolutions.com
>> I clipped out line 180 in context.
>>
>>
>> /* loop
>>
>> through text blocks */
>> for ($curr_tb = 0, $for_max = count($text_blocks); $curr_tb <
>> $for_max; $curr_tb++) {
>> /* match anything resembling php tags */
>> if
>> (preg_match_all('~(<\?(?:\w+|=)?|\?>|language\s*=\s*[\"\']?php[\"\']?)~is',
>>
>> $text_blocks[$curr_tb], $sp_match)) {
>> /* replace tags with placeholders to prevent recursive
>> replacements */
>> $sp_match[1] = array_unique($sp_match[1]);
>> usort($sp_match[1], '_smarty_sort_length');
>> for ($curr_sp = 0, $for_max2 = count($sp_match[1]);
>> $curr_sp < $for_max2; $curr_sp++) {
>> LINE 180 ------> $text_blocks[$curr_tb] =
>> str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$text_blocks[$curr_tb]);
>>
>> }
>> /* process each one */
>> for ($curr_sp = 0, $for_max2 = count($sp_match[1]);
>> $curr_sp < $for_max2; $curr_sp++) {
>> if ($this->php_handling == SMARTY_PHP_PASSTHRU) {
>> /* echo php contents */
>> $text_blocks[$curr_tb] =
>> str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '<?php echo
>> \''.str_replace("'", "\'", $sp_match[1][$curr_sp]).'\'; ?>'."\n",
>> $text_blocks[$curr_tb]);
>> } else if ($this->php_handling == SMARTY_PHP_QUOTE) {
>> /* quote php tags */
>> $text_blocks[$curr_tb] =
>> str_replace('%%%SMARTYSP'.$curr_sp.'%%%',
>> htmlspecialchars($sp_match[1][$curr_sp]), $text_blocks[$curr_tb]);
>> } else if ($this->php_handling ==
>> SMARTY_PHP_REMOVE) {
>> /* remove php tags */
>> $text_blocks[$curr_tb] =
>> str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '', $text_blocks[$curr_tb]);
>> } else {
>> /* SMARTY_PHP_ALLOW, but echo non php starting
>> tags */
>> $sp_match[1][$curr_sp] =
>> preg_replace('~(<\?(?!php|=|$))~i', '<?php echo \'\\1\'?>'."\n",
>> $sp_match[1][$curr_sp]);
>> $text_blocks[$curr_tb] =
>> str_replace('%%%SMARTYSP'.$curr_sp.'%%%', $sp_match[1][$curr_sp],
>> $text_blocks[$curr_tb]);
>> }
>> }
>> }
>> }
>>
>>
>>
>> Monte Ohrt wrote:
>>
>>
>>
>>> no, wrong file. try Smarty_Compiler.class.php
>>>
>>> also, what is your smarty and php versions?
>>>
>>> Howler wrote:
>>>
>>>
>>>
>>>> Its a comment line, so my guess is that the real culprit is line 178.
>>>>
>>>> 169 /**
>>>> 170 * This is the number of seconds cached content will persist.
>>>> 171 * <ul>
>>>> 172 * <li>0 = always regenerate cache</li>
>>>> 173 * <li>-1 = never expires</li>
>>>> 174 * </ul>
>>>> 175 *
>>>> 176 * @var integer
>>>> 177 */
>>>> 178 var $cache_lifetime = 3600;
>>>> 179
>>>> 180 /**
>>>> 181 * Only used when $caching is enabled. If true, then
>>>> If-Modified-Since headers
>>>> 182 * are respected with cached content, and appropriate HTTP
>>>> headers are sent.
>>>> 183 * This way repeated hits to a cached page do not send the
>>>> entire
>>>> page to the
>>>> 184 * client every time.
>>>> 185 *
>>>> 186 * @var boolean
>>>> 187 */
>>>> 188 var $cache_modified_check = false;
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Monte Ohrt wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> what does line 180 look like?
>>>>>
>>>>>
>>>>>
>>>>> Howler wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Monte,
>>>>>>
>>>>>> Thanks, that turned off the |magic_quotes_runtime but I am still
>>>>>> getting
>>>>>> the error. :-/|
>>>>>>
>>>>>> *Warning*: Unexpected character in input: '\' (ASCII=92) state=1 in
>>>>>> */home/vomramha/smarty/Smarty_Compiler.class.php* on line *180*
>>>>>>
>>>>>> *Parse error*: parse error, unexpected ')', expecting ',' or ';' in
>>>>>> */home/myhomedir/smarty/Smarty_Compiler.class.php* on line *180*
>>>>>>
>>>>>>
>>>>>>
>>>>>> Monte Ohrt wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> http://www.phpinsider.com/smarty-forum/viewtopic.php?t=4936
>>>>>>>
>>>>>>> Howler wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> The line:
>>>>>>>>
>>>>>>>> ini_set('magic_quotes_gpc',0);
>>>>>>>>
>>>>>>>> Doesn't seem to turn off magic_quotes, perhaps this is something
>>>>>>>> that
>>>>>>>> needs to be set in the php.ini. I don't have access to the global
>>>>>>>> php.ini, but my understanding is that the script will look in the
>>>>>>>> current directory for a php.ini, then wwwroot, and then the global
>>>>>>>> position. Is this correct? My hosting service provider put a
>>>>>>>> copy of
>>>>>>>> php.ini in my directory for me, and I turned off magic_quotes in
>>>>>>>> it, but
>>>>>>>> still no joy.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> John
>>>>>>>>
>>>>>>>>
>>>>>>>> Monte Ohrt wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> I think so, see the PHP docs.
>>>>>>>>>
>>>>>>>>> Howler wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Monte,
>>>>>>>>>>
>>>>>>>>>> Thanks, is this something that I can turn off via ini_set()?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Monte Ohrt wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> A hunch, turn off PHP magic quotes?
>>>>>>>>>>>
>>>>>>>>>>> Howler wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> Hello Everyone,
>>>>>>>>>>>>
>>>>>>>>>>>> I apologize in advance as I am sure that this question has
>>>>>>>>>>>> been
>>>>>>>>>>>> answered
>>>>>>>>>>>> before. I have searched through mail lists and news groups and
>>>>>>>>>>>> have
>>>>>>>>>>>> not
>>>>>>>>>>>> found a satifactory answer.
>>>>>>>>>>>>
>>>>>>>>>>>> I am still pretty new to PHP/Smarty so please be patient.
>>>>>>>>>>>>
>>>>>>>>>>>> I have installed Smarty to my Linux hosting server. I
>>>>>>>>>>>> installed it
>>>>>>>>>>>> outside of the www directory per the recommendations.
>>>>>>>>>>>> /www
>>>>>>>>>>>> |_______>myappstuff
>>>>>>>>>>>> |_______>lib
>>>>>>>>>>>> .
>>>>>>>>>>>> .
>>>>>>>>>>>> .
>>>>>>>>>>>> /Smarty
>>>>>>>>>>>> |_____> internals
>>>>>>>>>>>> |_____>plugins
>>>>>>>>>>>> |_____>myappstuff
>>>>>>>>>>>> | |________>cache
>>>>>>>>>>>> | |________>configs
>>>>>>>>>>>> | |________>templates
>>>>>>>>>>>> | |________>templates_c
>>>>>>>>>>>> |
>>>>>>>>>>>> |
>>>>>>>>>>>> |________________>Config_file.class.php
>>>>>>>>>>>> |________________>debug.tpl
>>>>>>>>>>>> |________________>Smarty.class.php
>>>>>>>>>>>> |________________>Smarty_Compiler.class.php
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> I set the path using the ini_set and I can find the
>>>>>>>>>>>> Smarty.class.php
>>>>>>>>>>>> without issue, what seems to be the problem is that when my
>>>>>>>>>>>> PHP
>>>>>>>>>>>> code
>>>>>>>>>>>> performs the $smSmarty->display('index.tpl'); I get the
>>>>>>>>>>>> following
>>>>>>>>>>>> error:
>>>>>>>>>>>>
>>>>>>>>>>>> =================
>>>>>>>>>>>>
>>>>>>>>>>>> *Warning*: Unexpected character in input: '\' (ASCII=92)
>>>>>>>>>>>> state=1 in
>>>>>>>>>>>> */home/vomramha/smarty/Smarty_Compiler.class.php* on line
>>>>>>>>>>>> *180*
>>>>>>>>>>>>
>>>>>>>>>>>> *Parse error*: parse error, unexpected ')', expecting ',' or
>>>>>>>>>>>> ';' in
>>>>>>>>>>>> */home/myhomedir/smarty/Smarty_Compiler.class.php* on line
>>>>>>>>>>>> *180*
>>>>>>>>>>>>
>>>>>>>>>>>> ==================
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> I believe that I have the permissions set correctly but I
>>>>>>>>>>>> am not
>>>>>>>>>>>> sure,
>>>>>>>>>>>> it could be something that I missed in my code.
>>>>>>>>>>>>
>>>>>>>>>>>> ==================
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> index.php
>>>>>>>>>>>>
>>>>>>>>>>>> <?php
>>>>>>>>>>>>
>>>>>>>>>>>> ini_set
>>>>>>>>>>>> ('include_path',".:/usr/lib/php:/usr/local/lib/php:/home/myhomedir/smarty");
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> require_once ('Smarty.class.php');
>>>>>>>>>>>> require_once ('lib/my_dbconnect.php');
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> $smSmarty = new Smarty;
>>>>>>>>>>>>
>>>>>>>>>>>> $smSmarty->compile_check = true;
>>>>>>>>>>>> $smSmarty->debugging = true;
>>>>>>>>>>>>
>>>>>>>>>>>> $smSmarty->template_dir =
>>>>>>>>>>>> '/home/myhomedir/www/myappstuff/templates/';
>>>>>>>>>>>> $smSmarty->compile_dir =
>>>>>>>>>>>> '/home/myhomedir/www/myappstuff/templates_c/';
>>>>>>>>>>>> $smSmarty->cache_dir =
>>>>>>>>>>>> '/home/myhomedir/www/myappstuff/cache/';
>>>>>>>>>>>> $smSmarty->config_dir =
>>>>>>>>>>>> '/home/myhomedir/www/myappstuff/configs/';
>>>>>>>>>>>> $smSmarty->force_compile = true;
>>>>>>>>>>>>
>>>>>>>>>>>> $smSmarty->assign('Name', 'Joe');
>>>>>>>>>>>>
>>>>>>>>>>>> if ($smSmarty->template_exists('index.tpl'))
>>>>>>>>>>>> {
>>>>>>>>>>>> if(!$smSmarty->is_cached('index.tpl'))
>>>>>>>>>>>> {
>>>>>>>>>>>> $smSmarty->display('index.tpl');
>>>>>>>>>>>> }
>>>>>>>>>>>> }
>>>>>>>>>>>> else
>>>>>>>>>>>> {
>>>>>>>>>>>> $smSmarty->display('debug.tpl');
>>>>>>>>>>>> phpinfo();
>>>>>>>>>>>> }
>>>>>>>>>>>> ?>
>>>>>>>>>>>>
>>>>>>>>>>>> index.tpl
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <html>
>>>>>>>>>>>> <head>
>>>>>>>>>>>> <title>My Smarty test App</title>
>>>>>>>>>>>> </head>
>>>>>>>>>>>>
>>>>>>>>>>>> <body>
>>>>>>>>>>>> This is a test: {$Name}
>>>>>>>>>>>> </body>
>>>>>>>>>>>> </html>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> ==================
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> index.php does find the template and executes the correct
>>>>>>>>>>>> code,
>>>>>>>>>>>> however
>>>>>>>>>>>> when the line:
>>>>>>>>>>>>
>>>>>>>>>>>> $smSmarty->display('index.tpl');
>>>>>>>>>>>>
>>>>>>>>>>>> is executed I get the error.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Any assistance would be greatly appreciated.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks in advance!
>>>>>>>>>>>> John
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
>
>
--
Smarty General Mailing List (http://smarty.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php