Visualizzazione risultati 1 fino 12 di 12

Discussione: escudere i <br> dai bbcode

  1. #1
    Guest

    Predefinito escudere i <br> dai bbcode

    Ho preso uno script gia fatto di gestione dei tutorial sul database e lo modificato a dovere solo che quando salva mi mette i tag <br> ovunque sono andato a capo vorrei fare in modo che tra i tag bbcode
    non inserisca alcun tag aggiuntivo
    si puo fare?
    vi posto il codice della pagina
    Codice PHP:
    <?php
    $titolo
    ="WebEasy - Form inserisci tutorial";
    $url="../";
    include(
    $url."inc/su.php");
    include (
    $url."inc/config.inc.php");
    $tipo=$_REQUEST['tipo'];
    $titolo=$_REQUEST['titolo'];
    $autore=$_REQUEST['autore'];
    $email=$_REQUEST['email'];
    $voto=$_REQUEST['voto'];
    $difficolta=$_REQUEST['difficolta'];
    $descrizione=$_REQUEST['descrizione'];
    $testo=$_REQUEST['testo'];
    $pass=$_REQUEST['pass'];
    $giorno=$_REQUEST['giorno'];
    $mese=$_REQUEST['mese'];
    $anno=$_REQUEST['anno'];

    if (
    $pass != $password): echo "Password errata";
    elseif (
    trim($titolo) == "" OR trim($testo) == ""):
    echo
    "I campi Titolo e Testo devono essere riempiti!";
    else :
    $titolo = addslashes(stripslashes($titolo));
    $autore = addslashes(stripslashes($autore));
    $email = addslashes(stripslashes($email));
    $descrizione = addslashes(stripslashes($descrizione));
    $testo = addslashes(stripslashes($testo));
    $titolo = str_replace("<", "&lt;", $titolo);
    $titolo = str_replace(">", "&gt;", $titolo);
    $autore = str_replace("<", "&lt;", $autore);
    $autore = str_replace(">", "&gt;", $autore);
    $descrizione = nl2br($descrizione);
    $testo = nl2br($testo);
    $testo = str_replace("[code]", "<textarea readonly=\"readonly\" class=\"codebox\">", $testo);
    $testo = str_replace("[/code]", "</textarea>", $testo);
    $giorno = date ("d");
    $mese = date ("m");
    $anno = date ("Y");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");

    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query = "INSERT INTO tuto_$tipo (titolo, autore, email, giorno, mese, anno, voto, difficolta, descrizione, testo) VALUES ('$titolo', '$autore', '$email', '$giorno', '$mese', '$anno', '$voto', '$difficolta', '$descrizione', '$testo')";
    if (
    mysql_query($query, $db))
    echo
    "L'articolo &egrave; stato inserito correttamente";
    else
    echo
    "Errore durante l'inserimento";

    //endif;
    mysql_close($db);
    endif;
    // chiude la verifica della presenza dei dati
    include($url."inc/giu.php");
    ?>

  2. #2
    Guest

    Predefinito

    Ultima modifica di gabryhacker : 03-01-2009 alle ore 11.34.00

  3. #3
    Guest

    Predefinito

    si ma con strip_tags()
    elimino i <br> in tutto il testo
    io invece voglio eliminare i <br> solo tra
    Codice:
     e
    si puo fare?
    te ne sarei grato se mi puo spiegare come fare
    grazie

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Definisci una variabile $stringa che contiente tutto il testo della pagina e poi modifica cosi con la funzione str_replace:
    Codice PHP:
    $testo_pagina = "..." // la parte del testo della pagina interessata ;
    $testo_pagina = str_replace("e<br>","e",$stringa) ;
    echo
    $testo_pagina ;
    Se non è quello che vuoi non saprei proprio come fare.
    Ultima modifica di sevenjeak : 03-01-2009 alle ore 16.46.35

    Sevenjeak
    Software developer and much more

  5. #5
    Guest

    Predefinito

    grazie ma i <br> vegono inseriti con
    Codice PHP:
    $testo = nl2br($testo);
    e fino li ci sono
    pero ho inserito anche questi codici
    Codice PHP:
    $testo = str_replace("[code]", "<textarea readonly=\"readonly\" class=\"codebox\">", $testo);
    $testo = str_replace("[/code]", "</textarea>", $testo);
    io vorrei che tra i bbcode non venisse aplicata la funzione nl2br()
    praticamente è quello che fa un normale forum
    quindi come faccio?

  6. #6
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    $testo = nl2br($testo);
    Non avevo notato questa parte di codice.

    Scusa se il testo non deve risultare fra nl2br(), cosa l'hai impostata a fare la funzione?

    P.S. : se voleve escludere la funzione quanto l'utente a finito lo spazio sulla textarea ed è costretto ad andare a copo di basta mettere una scroll orizondare alla textarea.
    Ultima modifica di sevenjeak : 03-01-2009 alle ore 17.46.06

    Sevenjeak
    Software developer and much more

  7. #7
    Guest

    Predefinito

    i testi che vengono inseriti sul database sono composti da codice tra
    e testo normale io devo fare in modo che nei codici non venga applicato nl2br() invece nel testo normale deve essere applicato

  8. #8
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Citazione Originalmente inviato da webeasy Visualizza messaggio
    i testi che vengono inseriti sul database sono composti da codice tra
    Tra cosa?

    Cmq se ho capito bene, nel testo normale deve essere applicati i codici normale mentre nel testo presente nel db devono essere con la funzione nl2br(), giusto?

    Se e cosi non ti basta separere il testo normare da quello inserito nel db in due variabili diverse (una con la funzione nl2br() e una senza).
    Ultima modifica di sevenjeak : 03-01-2009 alle ore 17.54.19

    Sevenjeak
    Software developer and much more

  9. #9
    Guest

    Predefinito

    scusa ma i tag bbcode se li inserisco me li visualizza come spazio di codice
    allora tra i tag [.code] e [./code](ho messo i punti cosi non li esegue) non deve essere aplicato nl2br() nel resto del testo nl2br() deve essere applicato
    adesso hai capito?

  10. #10
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Si, in poche palore tu dici che ti applica nl2br() dove non deve essere applicato?

    Scusa, ma perche non provi tu a fare uno script, invece di prendere quelli già fatti (tra la qualle la maggiorparte hanno degli errori).
    Ultima modifica di sevenjeak : 03-01-2009 alle ore 19.16.53

    Sevenjeak
    Software developer and much more

  11. #11
    Guest

    Predefinito

    Lo script l'ho preso gia fatto e l'ho modificato come serviva a me. aggiunte pero le righe di codice
    Codice PHP:
    $testo = str_replace("[code]", "<textarea readonly=\"readonly\" class=\"codebox\">", $testo);
    $testo = str_replace("[/code]", "</textarea>", $testo);
    sorge questo problema
    che tra il bbcode viene applicato il nl2br()
    si puo risolvere questo problema?

  12. #12
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Prova la funzione trim() se deve eliminare i spazi all'interno e alla fine della stringa o ltrim() se devi eliminare solo i spazi all'interno di essa.

    Se non sbaglio dovresti modificare cosi se devi eliminare solo i spazi all'interno della stringa:
    Codice PHP:
    $testo = str_replace("[code]", "<textarea readonly=\"readonly\" class=\"codebox\">", ltrim($testo));
    $testo = str_replace("[/code]", "</textarea>", ltrim($testo));
    Altrimenti se devi eliminare gli spazzi sia all'interno che alla fine modifica cosi:
    Codice PHP:
    $testo = str_replace("[code]", "<textarea readonly=\"readonly\" class=\"codebox\">", trim($testo));
    $testo = str_replace("[/code]", "</textarea>", trim($testo));
    Ultima modifica di sevenjeak : 04-01-2009 alle ore 10.46.37

    Sevenjeak
    Software developer and much more

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •