2009/6/24 Alex McAuley <webmas...@thecarmarketplace.com>:
>
> I really think you are overthinking this!
>
> If you want to echo out "<?php echo('FOO'); ?> for instance and have the
> preprocessor parse it... you need to (dangerously) eval it ....
>
> $variable="<?php echo('<p>foo</p>'); ?>";
>
> eval($variable);
>
> ....... "<p>foo</p>" is returned to the browser...
>
> So (and i highly do not recommend this unless you truely trust the text in
> your database and the files it is opening) u must use php's eval();
>
> Like so ... (using your variables)
>
> eval($retstr);
>
> then anything inside that variable or file will be evall'd as opcode and
> passed through the pre-processor and you will be left with html or whatever
> your php code spits out!
>
> HTH
>
> Alex
>
>
>
>
>
> ----- Original Message -----
> From: "Robaj" <robrass...@gmail.com>
> To: "Prototype & script.aculo.us" <prototype-scriptaculous@googlegroups.com>
> Sent: Wednesday, June 24, 2009 7:44 AM
> Subject: [Proto-Scripty] Re: php in files
>
>
>
> Ok, let me put my idea to you and see if there is a way without
> reloading the whole page -
>
> I use prototype.js and project.js. project.js is just my entensions
> for each project, which I have narrowed down to two functions,  -
>
>            function myRequest( text ) {
>                new Ajax.Request('requests.php',
>                {
>                    method: 'post',
>                    postBody: text,
>                    onComplete: myResponse
>                });
>
>            }
>            function myResponse(req) {
>                $(targetdiv).innerHTML= req.responseText;
>            }
> Where text is supplied from the controls, such as 'page=home'.
> request.php is the only php file called directly, it decides which
> response is wanted and returns the text for a control or entire body
> for <div id='mainbody'></div>
>
> All of my pages and controls within them are created in php from the
> database. This is very easy to maintain and update, so a nice base for
> all kinds of applications
>
> All works well if I only respond with html including the ajax side
> that recalls requests.php, the only problem is that I intended some of
> the pages to be applications, so I want them to have php and can not
> see a way to pass it through the preprocessor.
>
> My request.php at the server side is like this -
>
>
> $Home=$button=$update=$testButton=$menuItem="";
> extract($_POST,EXTR_IF_EXISTS);
>
> if($menuItem != "")
> {
>    $retstr = "";
>
>    $dbconn = getdbconnection();
>
> //find page associated with this menu item
>    $query = 'SELECT body FROM menu WHERE name=\''.$menuItem.'\'';
>    $result = pg_query($dbconn,$query) or die('Query failed: ' .
> pg_last_error());
>    $row = pg_fetch_row($result);
>    //read in the file
>    if(file_exists($row[0]))
>    {
>        $handle = fopen($row[0],"r");
>        $retstr = fread($handle,filesize($row[0]));
>        fclose($handle);
> //failed attempt to use include instead
>        //$retstr = "<?php include ".$row[0]."; ?>";
>    }
>    else
>    {
>        $retstr = "File not created yet";
>    }
>    pg_close($dbconn);
>    echo $retstr;
> }
>
> In the end this would leave me with only one main page index.php and
> all other pages called up via ajax and created or loaded via php.
>
> I have the feeling now that I have to update the whole page, not a
> terrible tragedy, but I just have the feeling that I can somehow put
> my fread() file through the php preprocessor.
>
> On Jun 23, 3:09 pm, Richard Quadling <rquadl...@googlemail.com> wrote:
>> 2009/6/23 Robaj <robrass...@gmail.com>:
>>
>>
>>
>>
>>
>> > I know this isn't strictly speaking a Prototype issue, but this is the
>> > only group I am in and a few topics do skirt around the edges of your
>> > main topic.
>>
>> > If I have a file -
>> > home.php
>> > <?php
>> > echo "<h1>A very interesting home page</h1>";
>> > ?>
>>
>> > Then the file is returned to go into <div id="mainbody"></div> with a
>> > plain fread() into a variable which is 'echo'd back to the client.
>>
>> > 'include'ing this file is fine, but then it passes through php at the
>> > same time as everything else.
>>
>> > But any such file loaded as the action of an Ajax call is not fine. It
>> > doesn't get passed via php, or at least I don't think it does -
>> > because in 'mainbody' I get part of it such as
>>
>> > Interesting"; ?>
>>
>> > Confusing because if it were being passed through php I would expect
>> > 'Interesting'. but if it were not, then I would expect the whole file
>> > in plain text.
>>
>> > I knew when I did this with fread I was probably heading for trouble,
>> > but which is happening,
>> > partial php parseing,
>> > no php parseing or
>> > ..... ?
>>
>> If you use fread(), you are reading a file. Any file. Nothing magic.
>> No processing.
>> If you use include()/require()/include_once()/require_once(), then PHP
>> will process that file if it contains a valid opening tag (<?php).
>>
>> Uploading a file does NOT process the file. The file is only processed
>> when it is requested.
>>
>> Can you provide any more information about what you are trying to do?
>>
>> Maybe using the PHP General list would also be a better place for this
>> thread? (http://docs.php.net/mailing-lists.php)
>>
>> Regards,
>>
>> Richard.
>>
>> --
>> -----
>> Richard Quadling
>> Zend Certified Engineer :http://zend.com/zce.php?c=ZEND002498&r=213474731
>> "Standing on the shoulders of some very clever giants!"
>
>
>
> >
>

Rather than ...

       $handle = fopen($row[0],"r");
       $retstr = fread($handle,filesize($row[0]));
       fclose($handle);
//failed attempt to use include instead
       //$retstr = "<?php include ".$row[0]."; ?>";

Try ...

       $retstr = include $row[0];

I don't know what $row[0] contains. Nor what the file $row[0]
contains. That would be required for a better idea.

Ideally you should follow a pattern (or a rule). Files with .php are
included otherwise they are raw content and should be ...

$retstr = file_get_contents($row[0]);

sort of thing.

-- 
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to