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]