ID:               43549
 Comment by:       yossi_shelli at cso dot co dot il
 Reported By:      mariusads at helpedia dot com
 Status:           Open
 Bug Type:         Strings related
 Operating System: Redhat?,  Linux
 PHP Version:      5.2.5
 New Comment:

i have the same problem.

I'm using apache server on windows xp to develop my website.
while developing i had php 5.2.2 installed and all worked. today, while
showing the site to a friend of mine, i found out the text outputs, of
the user comments are not showing.

after playing a-bit. i found out the the htmlentities is the problem,
which worked fine before.

also, found out, that removing UTF-8 , will show text, but not in the
encoding which is needed to my website, which is hebrew.

from the first place, htmlentities , did not had a hebrew chars
support, so i used utf-8 which worked fine for me. now, utf-8 setting on
htmlentities resulting in NULL strings, and i don't have a solution to
my problem.


Previous Comments:
------------------------------------------------------------------------

[2008-01-03 11:10:20] adam at shiftcreate dot com

I have the same problem - worked before 5.2.5

------------------------------------------------------------------------

[2007-12-11 13:33:12] mariusads at helpedia dot com

small update: problem is solved kind of) if I don't specify 'UTF-8' or
if I use htmlspecialchars without 'UTF-8' (though the document looks
different than before, but I guess I'll just have to replace those ascii
characters with images, probably).

------------------------------------------------------------------------

[2007-12-11 13:23:52] mariusads at helpedia dot com

The example you gave me does work but my issue has nothing to do with
receiving data in textarea or input boxes.

The page here:
hxxp://www.tgdb.net/pc/faq/5845/Diablo-page1.html

tries to open a text document from a certain location on the drive
which was previously uploaded by the user in a zip file.

If I change the example you gave me to read the text from a file:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<pre>
<?php
$text = file_get_contents('a.txt');
  
var_dump($text);
var_dump(htmlentities($text,ENT_QUOTES,'UTF-8'));

?>
</pre>
<form name="A" method="post">
<textarea name="text"></textarea>
<input name="sub" type="submit" value="submit"/>
</form>
</body></html>

which basically gets the text from the text file, htmlentities no
longer works as I expected it. I guess with your example, the browser
corrects the text pasted in the form before sending it to the script.

Almost all files I have are like the NFO files in scene releases, they
contain drawings made with ASCII characters, but I need them escaped
because the whole page is sent as UTF-8. They don't have multibyte stuff
on purpose and they're not corrupted or something like that.

It's also not feasible to tell the user to paste them in a text area in
a form, almost all submitted content is sent in a ZIP file and my
scripts extract the text file. Some files are also about 4-600KB in size
(walkthroughs) so using text area is out of the question.

I'm surprised to see that htmlentities returns a blank string and I
honestly don't know how to fix this so any help would be great.
Shouldn't it return the string up until the point where multibyte
characters are, whatever that means?

Could my problem be solved if I don't use the charset argument or if I
use htmlspecialchars? (i'll test...) Or is there another solution to my
predicament?

Thank you again for replying to my questions. I had bad experiences in
the past where other people just ignored my messages after replying with
"works for me". I really appreciate it.

------------------------------------------------------------------------

[2007-12-11 12:28:40] [EMAIL PROTECTED]

You never specified the charset for the page. This works fine:

<html>
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<pre>
<?php
$text = isset($_REQUEST['text']) ? $_REQUEST['text'] : '';
  
var_dump($text);
var_dump(htmlentities($text,ENT_QUOTES,'UTF-8'));

?>
</pre>
<form name="A" method="post">
<textarea name="text"></textarea>
<input name="sub" type="submit" value="submit"/>
</form>
</body></html>


------------------------------------------------------------------------

[2007-12-10 11:45:38] mariusads at helpedia dot com

Just downloaded on my computer (Windows 2003, PHP 5.2.5 from website)
and the same problem occurs.

For example this one works: 

hxtp://devtgdb.definethis.org:90/pc/faq/5842/Diablo-page1.html

but this one doesn't:

hxtp://devtgdb.definethis.org:90/pc/faq/5845/Diablo-page1.html

The source code is identical, only difference is ads are disabled from
site config.
Also, if the links don't work, sorry, you may read this while I'm
sleeping and my computer is turned off. Otherwise, it's cable
4mbps/512kbps so they should work.

(again, please replace hxtp with http)

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/43549

-- 
Edit this bug report at http://bugs.php.net/?id=43549&edit=1

Reply via email to