pass variable in php construct [message #172174] |
Thu, 03 February 2011 04:27 |
juliani(dot)moon(at)gmail(dot)co
Messages: 6 Registered: January 2011
Karma: 0
|
Junior Member |
|
|
I have these simple lines in my php script:
<?php
if (!empty($_GET[req])) {
print "<h2>$_GET[req]</h2>";
?>
<h3>"$_GET[req]"</h3>
<?php
} else {
...
}
?>
I wonder why the $_GET[req] value shows up within the php code block
(print to <h2> tags), but not showing up in the html block (between
<h3> tags)? Is it suppose so or I missed something? (I tried to pass
it to a local defined variable but still cannot be used in 'html'
block).
Thanks in advance,
joe
|
|
|
Re: pass variable in php construct [message #172175 is a reply to message #172174] |
Thu, 03 February 2011 05:04 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 2/2/2011 11:27 PM, Joe wrote:
> I have these simple lines in my php script:
>
> <?php
> if (!empty($_GET[req])) {
> print "<h2>$_GET[req]</h2>";
> ?>
> <h3>"$_GET[req]"</h3>
> <?php
> } else {
> ...
> }
> ?>
>
> I wonder why the $_GET[req] value shows up within the php code block
> (print to<h2> tags), but not showing up in the html block (between
> <h3> tags)? Is it suppose so or I missed something? (I tried to pass
> it to a local defined variable but still cannot be used in 'html'
> block).
>
> Thanks in advance,
> joe
First thing is to turn on all errors and notices on your development
system (you DO have a development system, don't you?)
This will give you an E_NOTICE on the line
print "<h2>$_GET[req]</h2>"
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: pass variable in php construct [message #172176 is a reply to message #172174] |
Thu, 03 February 2011 06:36 |
Curtis Dyer
Messages: 34 Registered: January 2011
Karma: 0
|
Member |
|
|
Joe <juliani(dot)moon(at)gmail(dot)com> wrote:
> I have these simple lines in my php script:
>
> <?php
> if (!empty($_GET[req])) {
You need quotes around ``req''.
> print "<h2>$_GET[req]</h2>";
Here, too.
As Jerry suggests, make sure your error reporting is enabled and
you have "display_errors" on in php.ini on your development
environment.
> ?>
> <h3>"$_GET[req]"</h3>
This is simply output, and never parsed.
See: <http://php.net/manual/en/language.basic-syntax.phpmode.php>
> <?php
> } else {
> ...
> }
> ?>
>
> I wonder why the $_GET[req] value shows up within the php code
> block (print to <h2> tags), but not showing up in the html block
> (between <h3> tags)?
You might consider starting at the beginning to get a better feel
for PHP:
<http://php.net/manual/en/tutorial.php>
> Is it suppose so or I missed something? (I
> tried to pass it to a local defined variable but still cannot be
> used in 'html' block).
It seems to me, you just need a bit more time to get acclimated to
PHP.
> Thanks in advance,
> joe
HTH
--
Curtis Dyer
<?$x='<?$x=%c%s%c;printf($x,39,$x,39);?>';printf($x,39,$x,39);?>
|
|
|
Re: pass variable in php construct [message #172177 is a reply to message #172174] |
Thu, 03 February 2011 08:39 |
alvaro.NOSPAMTHANX
Messages: 277 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
El 03/02/2011 5:27, Joe escribió/wrote:
> I have these simple lines in my php script:
>
> <?php
> if (!empty($_GET[req])) {
> print "<h2>$_GET[req]</h2>";
> ?>
> <h3>"$_GET[req]"</h3>
> <?php
> } else {
> ...
> }
> ?>
>
> I wonder why the $_GET[req] value shows up within the php code block
> (print to<h2> tags), but not showing up in the html block (between
> <h3> tags)? Is it suppose so or I missed something? (I tried to pass
> it to a local defined variable but still cannot be used in 'html'
> block).
That's the whole point of having PHP blocks. If PHP was parsed and
executed everywhere in the file, why would you need them?
You should also note the difference between 'foo' (a string) and foo (a
constant). I suggest you read the "Language Reference" chapters in the
PHP manual. It explains very important basics about the language:
http://es.php.net/manual/en/langref.php
--
-- http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programación web: http://borrame.com
-- Mi web de humor satinado: http://www.demogracia.com
--
|
|
|
Re: pass variable in php construct [message #172184 is a reply to message #172175] |
Thu, 03 February 2011 13:54 |
sheldonlg
Messages: 166 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 2/3/2011 12:04 AM, Jerry Stuckle wrote:
> On 2/2/2011 11:27 PM, Joe wrote:
>> I have these simple lines in my php script:
>>
>> <?php
>> if (!empty($_GET[req])) {
>> print "<h2>$_GET[req]</h2>";
>> ?>
>> <h3>"$_GET[req]"</h3>
>> <?php
>> } else {
>> ...
>> }
>> ?>
>>
>> I wonder why the $_GET[req] value shows up within the php code block
>> (print to<h2> tags), but not showing up in the html block (between
>> <h3> tags)? Is it suppose so or I missed something? (I tried to pass
>> it to a local defined variable but still cannot be used in 'html'
>> block).
>>
>> Thanks in advance,
>> joe
>
> First thing is to turn on all errors and notices on your development
> system (you DO have a development system, don't you?)
>
> This will give you an E_NOTICE on the line
>
> print "<h2>$_GET[req]</h2>"
>
>
If you wanted your line to get the $_GET then you needed to do:
<h3><?php print $_GET['foo']; ?></h3>
or simply moved your firs ?> to after the <h3> stuff and use another print.
PHP _ONLY_ does PHP stuff inside <?php ..... ?>. Outside those blocks
it is simply text like any other text.
--
Shelly
|
|
|
|
Re: pass variable in php construct [message #172214 is a reply to message #172176] |
Fri, 04 February 2011 15:42 |
Michael Fesser
Messages: 215 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
.oO(Curtis Dyer)
> Joe <juliani(dot)moon(at)gmail(dot)com> wrote:
>
>> I have these simple lines in my php script:
>>
>> <?php
>> if (!empty($_GET[req])) {
>
> You need quotes around ``req''.
Yes.
>> print "<h2>$_GET[req]</h2>";
>
> Here, too.
No. Note the double quotes around the string. Quotes around the array
key are not allowed here, unless you use curly syntax. So both of these
ways are correct:
print "<h2>$_GET[req]</h2>";
print "<h2>{$_GET['req']}</h2>";
Micha
|
|
|
Re: pass variable in php construct [message #172215 is a reply to message #172214] |
Fri, 04 February 2011 16:29 |
Luuk
Messages: 329 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 04-02-11 16:42, Michael Fesser wrote:
> .oO(Curtis Dyer)
>
>> Joe <juliani(dot)moon(at)gmail(dot)com> wrote:
>>
>>> I have these simple lines in my php script:
>>>
>>> <?php
>>> if (!empty($_GET[req])) {
>>
>> You need quotes around ``req''.
>
> Yes.
>
>>> print "<h2>$_GET[req]</h2>";
>>
>> Here, too.
>
> No. Note the double quotes around the string. Quotes around the array
> key are not allowed here, unless you use curly syntax. So both of these
> ways are correct:
>
> print "<h2>$_GET[req]</h2>";
confusing syntax this is.....
But it works, and even better:
print "<h2>$_GET['req']</h2>"; <== produces an error
(PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE,
expecting T_STRING or T_VARIABLE or T_NUM_STRING)
> print "<h2>{$_GET['req']}</h2>";
>
> Micha
--
Luuk
|
|
|
Re: pass variable in php construct [message #172218 is a reply to message #172214] |
Fri, 04 February 2011 22:11 |
Curtis Dyer
Messages: 34 Registered: January 2011
Karma: 0
|
Member |
|
|
Michael Fesser <netizen(at)gmx(dot)de> wrote:
> .oO(Curtis Dyer)
>
>> Joe <juliani(dot)moon(at)gmail(dot)com> wrote:
<snip>
>>> <?php
>>> if (!empty($_GET[req])) {
>>
>> You need quotes around ``req''.
>
> Yes.
>
>>> print "<h2>$_GET[req]</h2>";
>>
>> Here, too.
>
> No. Note the double quotes around the string. Quotes around the
> array key are not allowed here, unless you use curly syntax. So
> both of these ways are correct:
Thanks, good catch. Been away from PHP too long, I guess.
> Micha
--
Curtis Dyer
<?$x='<?$x=%c%s%c;printf($x,39,$x,39);?>';printf($x,39,$x,39);?>
|
|
|
Re: pass variable in php construct [message #172219 is a reply to message #172215] |
Fri, 04 February 2011 22:17 |
sheldonlg
Messages: 166 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 2/4/2011 11:29 AM, Luuk wrote:
> On 04-02-11 16:42, Michael Fesser wrote:
>> .oO(Curtis Dyer)
>>
>>> Joe<juliani(dot)moon(at)gmail(dot)com> wrote:
>>>
>>>> I have these simple lines in my php script:
>>>>
>>>> <?php
>>>> if (!empty($_GET[req])) {
>>>
>>> You need quotes around ``req''.
>>
>> Yes.
>>
>>>> print "<h2>$_GET[req]</h2>";
>>>
>>> Here, too.
>>
>> No. Note the double quotes around the string. Quotes around the array
>> key are not allowed here, unless you use curly syntax. So both of these
>> ways are correct:
>>
>> print "<h2>$_GET[req]</h2>";
> confusing syntax this is.....
>
> But it works, and even better:
> print "<h2>$_GET['req']</h2>";<== produces an error
> (PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE,
> expecting T_STRING or T_VARIABLE or T_NUM_STRING)
>
>
>> print "<h2>{$_GET['req']}</h2>";
>>
>> Micha
>
>
I prefer:
print "<h2>" . $_GET['req'] . "</h2>";
No confusion thee.
--
Shelly
|
|
|