Re: echo other way to output a constant? [message #169486 is a reply to message #169482] |
Wed, 15 September 2010 01:52 |
MikeB
Messages: 65 Registered: September 2010
Karma:
|
Member |
|
|
Peter H. Coffin wrote:
> On Tue, 14 Sep 2010 17:12:38 -0500, MikeB wrote:
>> Say I have the following code:
>>
>> <?php
>>
>>
>> define('MAX_FILE_SIZE', 300);
>>
>> echo<<<_END
>> <html><head><title>PHP Form Upload</title></head><body>
>> <form method='post' action='UploadFile2.php' enctype='multipart/form-data'>
>> <!-- MAX_FILE_SIZE must precede the file input field -->
>> <input type="hidden" name="MAX_FILE_SIZE" value="" />
>> Select a JPG, GIF, PNG or TIF File:
>> <input type='file' name='filename' size='60' />
>> <br/><input type='submit' value='Upload' /></form>
>> _END;
>>
>> echo "</body></html>";
>> ?>
>>
>> How can I get PHP to place the value of the constant MAX_FILE_SIZE in
>> the value attribute for the hidden field MAX_FILE_SIZE?
>>
>> Since it does not start with a $-sign it is not interpreted as a
>> variable. I tried putting it in curly braces {}, which sometimes work,
>> but that didn't do the trick either.
>>
>> I was hoping that print_r() would do it, but I could not get PHP to
>> interpret that either.
>>
>> So any way or do I have to a) put the constant in a variable or b) echo
>> each line individually so that I can do concatenation of the output lines?
>
> PHP puts responses to forms sent using method post into a special array
> called "_POST". So, to get at the contents of an input control called
> "MAX_FILE_SIZE", you use the variable $_POST['MAX_FILE_SIZE']. There is
> some trickiness with input types that can return multiple values, but we
> can get to that once you've gotten the above bits working and are
> comfortable with them.
>
Perhaps I expressed myself poorly.
I want PHP to send html to the browser.
It should look like this:
<input type="hidden" name="MAX_FILE_SIZE" value="300" />
This is as part of an echo <<<_END statement.
The number 300 in the above instance is a constant in my PHP code
defined as:
define('MAX_FILE_SIZE', 300);
If I try to put the following in my program, the literal MAX_FILE_SIZE
appears in the html:
echo <<<_END
<input type="hidden" name="MAX_FILE_SIZE" value="MAX_FILE_SIZE" />
_END
if I do this, I get what I want:
$mfs = MAX_FILE_SIZE;
echo <<<_END
<input type="hidden" name="MAX_FILE_SIZE" value="$mfs" />
_END
So are you saying that an alternate method is to initialize the
MAX_FILE_SIZE element in the _POST array and do it that way?
Thanks.
|
|
|