Rob, thank you for your suggestions. I should implement the if-then-else you suggested, that way the pages will work properly on every server.
Very useful! Thanks, Costas --- In [email protected], <[EMAIL PROTECTED]> wrote: > > ----- Original Message ----- > From: "costasb5" > > Hi fellow php'ers, > > I am developing a page and i have the following problem: > > In a form, i have a textarea element called "elem". When someone types > in there the string > > I've gone > > and submits, then: > 1. in my local, Easyphp implementation, > print $_POST['elem']; > correctly produces > I've gone > > 2. in my live implemention with a web hosting company: > print $_POST['elem']; > produces the altered > I\'ve gone > > (watch the backslash). Is there any way that I can get rid of that > extra backslash? It gets stored in the database, displayed everywhere, > just can't make it go away. I've tried htmlentities to filter the > $_POST['elem'], doesn't work. > > Anyone hjas seen this problem before? Easyphp does it right, as > expected. Why does my web hosting company mess it up? > > Thank you in advance, > Costas > ----------------------------- > Hi Costas, > This is the result of a php config setting "magic_quotes_gpc" > that cannot be changed at run time. > > You can do as someone else said and use stripslashes() on the output and it > will work on your server but it will not work on other servers that have a > different "magic_quotes_gpc" setting. > > The best way is to use one of the following. The example I have shows _POST > but the same applies to _GET. > > If you want an output that consistently does NOT have slashes then do this - > > if(get_magic_quotes_gpc()) > { > foreach($_POST as $key => $value) > { > $_POST[$key] = stripslashes($value); > } > } > > OR If you want an output that consistently does have slashes then do this - > > if(!get_magic_quotes_gpc()) > { > foreach($_POST as $key => $value) > { > $_POST[$key] = addslashes($value); > } > } > > The same applies to the GET method and cookies etc. > > Here is some code I found on php.net - > > <?php > if (get_magic_quotes_gpc()) { > function stripslashes_array($array) { > return is_array($array) ? array_map('stripslashes_array', $array) : > stripslashes($array); > } > > $_COOKIE = stripslashes_array($_COOKIE); > $_FILES = stripslashes_array($_FILES); > $_GET = stripslashes_array($_GET); > $_POST = stripslashes_array($_POST); > $_REQUEST = stripslashes_array($_REQUEST); > } > ?> > > I would use the above but without _FILES OR _COOKIE. _FILES should never > have slashes added and _COOKIE values should never need to have slashes > added. > > Thanks, Rob. >
