Jump to content

Smart Quotes = ‘ ??


neoform

Recommended Posts

For some reason, when i submit a textfield with this: [quote]“spies” ‘ticket’[/quote] as the value through a POST form, then insert it into a mysql table, this is what ends up in the table: [quote]‘spies’ “ticket”[/quote]

To sanitize my forms i use this:

[code]function safe_string($str)
{
if (get_magic_quotes_gpc())
$str = stripslashes($str);

//tried this to replace the smart quotes..  no good. :(
$search = array('‘','’','“','”');
    $replace = array("'","'",'"','"');
$str = ereg_replace($search, $replace, $str);

return mysql_real_escape_string(trim($str));
}[/code]

Anyone know why this might be happening? My table is using "latin1 -- cp1252 West European" as the charset, and i checked PHP, it's using UTF8..  it's breaking my brain since i've been messing with this for about 10 hours now and I still can't figure it out..
Link to comment
https://forums.phpfreaks.com/topic/24093-smart-quotes-%C3%A2%E2%82%AC%CB%9C/
Share on other sites

Latin 1 - 1252 has:

[quote]
91 2018 LEFT SINGLE QUOTATION MARK
92 2019 RIGHT SINGLE QUOTATION MARK
93 201C LEFT DOUBLE QUOTATION MARK
94 201D RIGHT DOUBLE QUOTATION MARK
[/quote]

Try:

[code]
$str = preg_replace('/[\x91-\x92]/', "'", $str);
$str = preg_replace('/[\x93-\x94]/', '"', $str);
[/code]
Are you specifying the charset in your meta? This works for me:

[code]
<meta charset="cp1252">
<pre>
<?php
print_r($_POST);
foreach ($_POST as $k => &$v) {
$v = preg_replace('/[\x93-\x94]/', '"', $v);
}
print_r($_POST);
?>
</pre>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<textarea name="test"><?php echo "\x93test\x94"; ?></textarea>
<input type="submit"/>
</form>
[/code]
omg! that's it!!

THAT's what it was..  the page's content type. ack, i just copied/pasted it from another page.. ehhh

[code]<meta http-equiv="Content-Type" content="text/html; charset=utf-8">[/code]

every other site on my server uses

[code]<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">[/code]

Which explains why this problem has never cropped up on me.. :P

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.