Henrik,
I think your problem is jsimply that you are not getting variable substitution
of $HTTP_GET_VARS["whatever"] inside double quotes.
print "whatever is $HTTP_GET_VARS["whatever"]";
is not safe.
You need
print "whatever is {$HTTP_GET_VARS["whatever"]}";
or, (IMHO better),
print 'whatever is '.$HTTP_GET_VARS["whatever"];
The fact that you are actually evaluating an assignment is I think irrelevant, it's
just the
variable substitution that's failing. See the variable parsing section of
http://www.php.net/manual/en/language.types.string.php
George
Henrik Hudson wrote:
>
> Hey List-
>
> Working on a program and I seem to have run into a problem with
> HTTP_POST_VARS. Are the HTTP_VARS considered "special"?
>
> Here is what I am doing, reading in from a file into an array and then
> grabbing each line and looking for ]string[ and replacing that with
> $HTTP_POST_VARS["string"]
>
> The first echo prints out the lines correctly, but the echo after the eval
> prints out the same lines. My error log shows this:
>
> PHP Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or
> `T_NUM_STRING' in
> /data/www/webpages/test.rhavenn.net/public_html/formmail/formmail.php(164) :
> eval()'d code on line 1
>
> So, its having problems doing an eval on the HTTP_POST? If I replace the
> HTTP_POST stuff with just $\\1 and then define $string =
> $HTTP_POST_VARS["string"] it works just fine, but I can't do this since I
> don't know what string is going to be, just that it is between ] [ chars and
> there can be multiple ] [ on one line.
>
> Any thoughts? Code is below.
>
> //Read the array
> $form_data = "";
> for($i=0; $i < count($filearr); $i++){
> $line = $filearr[$i];
> //Strip the ] [ from around the variables so they will be interpreted
> $line = eregi_replace("\]([^\[]+)\[", "\$HTTP_POST_VARS['\\1']",
> $line);
> echo "Line: $line<BR>";
> //eval the variables from $line into themselves and they become
> literal
> eval ("\$line = \"$line\";");
> echo "Lineafterwards: $line<BR>\n";
> //Write the line back into a single variable
> $form_data = $form_data . $line;
> }
> exit;
>
> Thanks!
>
> Henrik
> --
>
> Henrik Hudson
> [EMAIL PROTECTED]
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]