• User Newbie

    13 10 su mysql

    ciao a tutti
    sono nuovo di queste parti.

    ho un problema con la registrazione di news in un database mysql,
    se nel testo vado a capo (ascii 13 e 10 no?) il db mi registra male la news,
    qualcuno sa come potrei fare ad ovviare a questo problema?
    grazie!..


  • User

    immagino che per la news tu stia usando una "textarea" di inserimento, e che poi nella tabella hai un campo di tipo "text"...

    quando devo visualizzare il messaggio della news traduco i caratteri nel codice opportuno:
    supponiamo che da una query nella tabella ti sei preso la news da visualizzare:

    $testonews=recordset['testonews']
    $testonews= stripcslashes($testonews);
    $testonews= htmlspecialchars($testonews);
    $testonews= str_replace("\t","   ",$testonews);
    $testonews= str_replace("\r","",$testonews);
    $testonews= str_replace("\n","<br>",$testonews);

    puoi usare altre funzioni tipo quelle che usano le espressioni regolari se vuoi farlo con una sola riga di codice, qui è solo un esempio per mostrarti cosa devi sostituire, i caratteri di tabulazione vengono sostituiti con degli spazi, il carattere CR -> "\r" viene eliminato, e il carattere NewLine->"\n" viene sostituito dal codice html "<br>"

    le altre due istruzioni stripcslashes e htmlspecialchars servono a convertire eventuali caratteri, la prima toglie i quotes aggiunti con addslashes e la seconda trasforma quei caratteri che devono essere convertiti nella notazione estesa html, tipo '&' (ampersand) diventa '&' .