problems with saving and retrieving data with new line (\n and \r\n)and slashes from mysql database

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • JM

    problems with saving and retrieving data with new line (\n and \r\n)and slashes from mysql database

    Before storing information from a form in database I perform follwing
    operations on it :
    $path =
    mysql_real_esca pe_string(strip _tags(trim(urld ecode($_POST['path']))));
    $summary =
    mysql_real_esca pe_string(strip _tags(trim(urld ecode($_POST['summary']))))

    When I look in database I see '\r\n' in the text for the summary
    wherever I pressed return-key.
    When i retrieve the information from database and display it on webpage
    '\r\n' is displayed even when I use
    nl2br or
    str_replace("\r \n", "<br/>", $content) or
    str_replace(arr ay("\r\n", "\n", "\r"), "<br>", $text) or
    preg_replace("/\r\n|\n|\r/", "<br>", $text)
    the '\r\n' is replaced with a <br>.
    How is the possible ? The functions work when I let them handle a string
    like "A little bit of\r\ntext".

    A folder is stored as 'H:\\\\My Pictures\\\\Ane mone.jpg' in the
    database. When I want to display the folder I use the function
    stripslashes first but then I still get 'H:\\My Pictures\\Anemo ne.jpg'.
    Why should I apply stripslashes twice ?

    Hope you can help me,

    JM!
  • Koncept

    #2
    Re: problems with saving and retrieving data with new line (\n and \r\n) and slashes from mysql database

    In article <Haadnd6dl8LDhj TYRVnyigA@scarl et.biz>, JM <reply@group.sv p>
    wrote:
    Before storing information from a form in database I perform follwing
    operations on it :
    $path =
    mysql_real_esca pe_string(strip _tags(trim(urld ecode($_POST['path']))));
    $summary =
    mysql_real_esca pe_string(strip _tags(trim(urld ecode($_POST['summary']))))
    >
    When I look in database I see '\r\n' in the text for the summary
    wherever I pressed return-key.
    When i retrieve the information from database and display it on webpage
    '\r\n' is displayed even when I use
    nl2br or
    str_replace("\r \n", "<br/>", $content) or
    str_replace(arr ay("\r\n", "\n", "\r"), "<br>", $text) or
    preg_replace("/\r\n|\n|\r/", "<br>", $text)
    the '\r\n' is replaced with a <br>.
    How is the possible ? The functions work when I let them handle a string
    like "A little bit of\r\ntext".
    >
    A folder is stored as 'H:\\\\My Pictures\\\\Ane mone.jpg' in the
    database. When I want to display the folder I use the function
    stripslashes first but then I still get 'H:\\My Pictures\\Anemo ne.jpg'.
    Why should I apply stripslashes twice ?
    >
    Hope you can help me,
    >
    JM!
    <snip>
    magic_quotes_ru ntime boolean

    If magic_quotes_ru ntime is enabled, most functions that return data
    from any sort of external source including databases and text files
    will have quotes escaped with a backslash.
    </snip>

    See get_magic_quote s_gpc() in the docs.

    You can easily add code to account for this possibility:
    get_magic_quote s_gpc() && $str = strip_tags( $str );

    I'm also willing to bet that your line breaks are currently double
    escaped e.g. "\\r\\n".

    --
    Koncept <<
    "The snake that cannot shed its skin perishes. So do the spirits who are
    prevented from changing their opinions; they cease to be a spirit." -Nietzsche

    Comment

    • JM

      #3
      Re: How to correctly store and retrieve input from a textarea (withLF and CR) in MySQL ?

      Koncept wrote:
      In article <Haadnd6dl8LDhj TYRVnyigA@scarl et.biz>, JM <reply@group.sv p>
      wrote:
      >
      >Before storing information from a form in database I perform follwing
      >operations on it :
      >$path =
      >mysql_real_esc ape_string(stri p_tags(trim(url decode($_POST['path']))));
      >$summary =
      >mysql_real_esc ape_string(stri p_tags(trim(url decode($_POST['summary']))))
      >>
      >When I look in database I see '\r\n' in the text for the summary
      >wherever I pressed return-key.
      >When i retrieve the information from database and display it on webpage
      > '\r\n' is displayed even when I use
      >nl2br or
      >str_replace("\ r\n", "<br/>", $content) or
      >str_replace(ar ray("\r\n", "\n", "\r"), "<br>", $text) or
      >preg_replace ("/\r\n|\n|\r/", "<br>", $text)
      >the '\r\n' is replaced with a <br>.
      >How is the possible ? The functions work when I let them handle a string
      >like "A little bit of\r\ntext".
      >>
      >A folder is stored as 'H:\\\\My Pictures\\\\Ane mone.jpg' in the
      >database. When I want to display the folder I use the function
      >stripslashes first but then I still get 'H:\\My Pictures\\Anemo ne.jpg'.
      >Why should I apply stripslashes twice ?
      >>
      >Hope you can help me,
      >>
      >JM!
      >
      <snip>
      magic_quotes_ru ntime boolean
      >
      If magic_quotes_ru ntime is enabled, most functions that return data
      from any sort of external source including databases and text files
      will have quotes escaped with a backslash.
      </snip>
      >
      See get_magic_quote s_gpc() in the docs.
      >
      You can easily add code to account for this possibility:
      get_magic_quote s_gpc() && $str = strip_tags( $str );
      >
      I'm also willing to bet that your line breaks are currently double
      escaped e.g. "\\r\\n".
      >
      If I take get_magic_quote s_gpc() into consideration it now works fine
      except for line feeds and carriage returns.

      if (get_magic_quot es_gpc()) {
      $sq = stripslashes($_ POST['Summary']));
      } else {
      $sq = $_POST['ShortDesc'];
      }
      $Summary = mysql_real_esca pe_string(strip _tags(trim(urld ecode($sq))));

      This code works for quotes en uri's. But whatever combinations I've
      tried including using nl2br on storing and/or retrieving. It doesn't
      work for line feeds and carriage returns.
      Either \r\n is displayed on webpage or rn.

      How to correctly store and retrieve input from a textarea (with LF and
      CR) in MySQL ?

      JM

      Comment

      • Carl Pearson

        #4
        Re: How to correctly store and retrieve input from a textarea (withLF and CR) in MySQL ?

        Try this: http://www.michikono.com/code/DbSafe/DbSafe.php

        Comment

        Working...