Re: Mangled Data

[email protected] (Alexandru Pătrănescu)
Newsgroups php.general
Message-ID <CAAwdEzCCb8u_Vbym_GHkJJChWoky25BgDycJXamV8KL1Vh_3Hg@mail.gmail.com>
Hey John,

On Tue, Oct 19, 2021 at 3:55 AM John <[email protected]> wrote:

> Thanks for the suggestion Christopher; I was unaware of that format.
>
> If you wouldn't mind, could you please explain why it works with
> regard to the actual code line "<?=htmlspecialchars($data)?>"  ?

<snip>

> Can you suggest somewhere in the manual where this is explained in detail?



The information provided here should be clear, IMO:
https://www.php.net/manual/en/language.basic-syntax.phptags.php
I would like to know if this was somehow not easy to find or is not clear
and how to improve the documentation and it's searchability.


> my questions:
> - what is the = sign assigning the value to; it appears to be a token
> for echo?
> - When I tried it I noticed that the = sign cannot have any white
> space around it; that is, <?=htmlspacialchars(... and not
> <? =htmlspecialchars(...
> - I have the web site set up so that the full PHP invocation MUST be
> used, that is <?php and not <?  , yet when I tried this
> <?php=htmlspecialchars(...  doesn't work, I MUST use the short form.
>

I can see the confusion.
<?php ...script... ?> and <?= expression ?> are normal tags syntax
<? ...script... ?> is short tags syntax
there is no such thing as <?php= expression ?>

Also, <?= expression ?> is equivalent with <?php echo expression; ?> and
used in php files that are mostly html code where you want to simply inline
a value.


> Thanks in advance.
>
> John
>

A recommendation from me would be to disable the short tags syntax. It
might bite you when you have other tags like <?xml.
This can be done using the ini configuration:
https://www.php.net/manual/en/ini.core.php#ini.short-open-tag
This also depends on where the PHP is hosted and how much control you have
over the configuration.

Alex


> ============
> On Mon, 2021-10-18 at 22:23 +0200, Christoph M. Becker wrote:
> > On 18.10.2021 at 18:59, John wrote:
> >
> > > Solution, forwarded to PHP list:
> > > ================================
> > >
> > > OK, solved this.
> > >
> > > The form input MUST be contained in SINGLE quotes; probably to
> > > avoid
> > > being manipulated by the PHP parser.  Double quotes or no quotes
> > > don't
> > > work.
> > >
> > > Example:
> > >
> > > <input type="hidden" name="trans" id="trans" value='<?php echo
> > > $data ?>'>
> > >
> > > where $data is the incoming JSON data string.
> > >
> > > Thanks for your assistance.
> >
> > Thanks for providing a solution, but I suggest to properly entity-
> > encode
> > $data anyway, e.g. like
> >
> >   <input type="hidden" name="trans" id="trans"
> > value="<?=htmlspecialchars($data)?>">
> >
> > --
> > Christoph M. Becker
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.