[PHP] Evitare la visualizzazione del carattere di nuova linea \r\n

Discussione in 'PHP' iniziata da elpirata, 1 Luglio 2017.

  1. elpirata

    elpirata Utente Attivo

    Registrato:
    18 Marzo 2009
    Messaggi:
    213
    Mi Piace Ricevuti:
    7
    Punteggio:
    18
    Un saluto a tutti,
    cortesemente mi dareste una mano a capire come fare per evitare che nel database venga registrato il carattere di \r\n

    In sostanza ho questa query:

    PHP:

    if (isset($_POST['submit'])) {

    /* RECUPERO I DATI DAL FORM INSERIMENTO*/
    $veicolo filter_input(INPUT_POST'veicolo'FILTER_SANITIZE_STRING);
    $cliente filter_input(INPUT_POST'cliente'FILTER_SANITIZE_STRING);
    $telefono filter_input(INPUT_POST'telefono'FILTER_SANITIZE_STRING);
    $note filter_input(INPUT_POST'note'FILTER_SANITIZE_STRING);

    $data mysqli_real_escape_string($mysqli$_POST['data']);
    $ora mysqli_real_escape_string($mysqli$_POST['ora']);
    $gestore mysqli_real_escape_string($mysqli$_POST['gestore']);
    $stato mysqli_real_escape_string($mysqli$_POST['stato']);

    /* SETTO I MAIUSCOLI */
    $veicolo strtoupper($veicolo);
    $cliente strtoupper($cliente);
    $note strtoupper($note);

    /* FILTRO LE ALTRE VARIABILI */
    $data trim(strip_tags(stripslashes($data)));
    $ora trim(strip_tags(stripslashes($ora)));
    $telefono trim(strip_tags(stripslashes($telefono)));
    $gestore trim(strip_tags(stripslashes(strtoupper($gestore))));
    $stato_pren trim(strip_tags(stripslashes(strtoupper($stato_pren))));
    /* FINE FILTRI e CONVERSIONI SULLE VARIABILI POST */

    /* QUERY DI INSERIMENTO SENZA UPPER, L'UPPER E' DEMANDATO AL COMANDO FOREACH */
    $sq1 "INSERT INTO appuntamenti (idappuntamento, cliente, gestore, veicolo, data, ora, stato, telefono, note) VALUES (NULL, '$cliente', '$gestore', '$veicolo', STR_TO_DATE('$data', '%d/%m/%Y'), '$ora', '$stato', '$telefono', '$note')";
    $rs1 $mysqli->query($sq1);
    quando registro i dati e poi vado a visualizzarli li vedo così:

     
  2. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.025
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    li vuoi far sparire o far funzionare?
    ti schematizzo i due casi
    PHP:
    $stringa="pinco\r\npallo";
    $cosa   = array("\r\n""\n""\r");
    $con ' ';//con spazio o altro
    echo str_replace($cosa$con$stringa);

    /*output
    pinco pallo
    */
    PHP:
    $stringa="pinco\r\npallo";
    echo 
    nl2br($stringa);//\r\n "\n \r -> <br />
    //se nl2br($stringa, false); \r\n "\n \r -> <br>

    /*output
    pinco
    pallo
    */
     
  3. elpirata

    elpirata Utente Attivo

    Registrato:
    18 Marzo 2009
    Messaggi:
    213
    Mi Piace Ricevuti:
    7
    Punteggio:
    18
    Buongiorno Borgo Italia,
    ho provato a fare in questo modo:

    PHP:
    $note filter_input(INPUT_POST'note'FILTER_SANITIZE_STRING);
    $note nl2br($note);
    $note strtoupper($note);
    ma dopo registrato visualizzo sempre gli "a capo" (e non vorrei visualizzarli)

    in sostanza in fase di visualizzazione escono sempre le scritte
    \r\n
     
  4. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.025
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    allora prova con l'altro metodo
    PHP:
    $stringa="pinco\r\npallo";
    [
    PHP]$cosa   = array("\\r\\n""\\n""\\r");
    $con = ' <br />';//con spazio o altro
    echo str_replace($cosa, $con, $stringa);[/PHP]
    eventualmente se non funzione prova a duplicare lo slash
     
  5. elpirata

    elpirata Utente Attivo

    Registrato:
    18 Marzo 2009
    Messaggi:
    213
    Mi Piace Ricevuti:
    7
    Punteggio:
    18
    Borgo Italia,
    in sostanza io ho un file inserisci.php che passa i campi post a salva.php e poi li recupero con visualizza.php
    e non riesco a capire dove fare l'escape del carattere newline :(

    Nell'inserisci ho una text area
    HTML:
    <tr>
    <td><b>Note</b></td>
    <td><textarea maxlength="90" name="note" placeholder="Max 90 caratteri" maxlength="90"></textarea></td>
    </tr>
    </table>
    </fieldset>
    
    <input type="submit" name="submit" class="bottone" value="Registra Appuntamento">
    <div class="clear"></div>
    </form>
    che recupero da salva.php

    PHP:
    <?php

    if (isset($_POST['submit'])) {

    /* RECUPERO I DATI DAL FORM INSERIMENTO*/
    $note filter_input(INPUT_POST'note'FILTER_SANITIZE_STRING);

    /* SETTO I MAIUSCOLI */
    $note strtoupper($note);

    /* QUERY DI INSERIMENTO SENZA UPPER, L'UPPER E' DEMANDATO AL COMANDO FOREACH */
    $sq1 "INSERT INTO appuntamenti (idappuntamento, note) VALUES (NULL, '$note')";
    $rs1 $mysqli->query($sq1);

    if (!
    $rs1) {
    echo 
    "<p style='margin-top: 40px;text-align:center;'>Ho trovato un errore nell'esecuzione della <b>QUERY</b></p>";
    die(
    "Errore nella query $sq1: " mysqli_error());

    }else{

    /* Redirect alla pagina principale */
    $messaggio "<div class='success'>Appuntamento registrato con successo! Attendi..</div>";
    echo 
    "<meta http-equiv='refresh' content='2;url=index.php?page=lista_appuntamenti_oggi&tipo=tutti&data=oggi'>";

     }
    }

    ?>

    <? echo $messaggio; ?>
    PHP:

    <?php

    ... eseguo la query per recuperare il campo note dal database ...


    echo 
    "<div class = 'container-ricerca-nulla'>";
    echo 
    "<div class ='row'><p class='btn btn-danger center-button'>Nessun appuntamento presente</p></div>";
    echo 
    "</div>";

    }else{
        
    echo 
    "<div class ='container-appuntamento'>";
    echo 
    "<table class='table table-responsive table-striped'>";
    echo 
    "<tr>";
    echo 
    "<th>Note</th>";
    echo 
    "<th>Aggiorna</th>";
    echo 
    "</tr>";

    while (
    $row $res->fetch_array(MYSQLI_ASSOC)) {
    $idappuntamento mysqli_real_escape_string($mysqli$row['idappuntamento']);
    $note mysqli_real_escape_string($mysqli$row['note']);

    /* FILTRI e CONVERSIONI SULLE VARIABILI POST */
    $note trim(strip_tags(stripslashes($note)));

    /* FINE FILTRI e CONVERSIONI SULLE VARIABILI POST */

    if ($stato == 'ACCETTAZIONE') { $classe 'accettazione'; }
    if (
    $stato == 'LAVORAZIONE') { $classe 'lavorazione'; }
    if (
    $stato == 'TERMINATO') { $classe 'terminato'; }
    ?>

    <tr>
    <td><? echo $note = nl2br($note); ?></td>
    <td><? echo "<a href='index.php?page=aggiorna_appuntamento&idappuntamento=$idappuntamento' target='_blank'><img src='images/edit.png' alt=''></a>"; ?></td>
    </tr>

    <?
     }
    echo "</table>";
    echo "</div>";
    }
    ?>
     
  6. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.025
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    se non vedo male (sono un po' di corsa)
    PHP:
    <td><?php echo  nl2br($note); ?></td>
    p.s.
    non usare lo shorttag <? ma <?php
     
Sto caricando...

Condividi questa Pagina