Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Un rompicapo che mi sta facendo impazzire: URL cliccabili e blocco HTML nei messaggi

    In un'area messaggio di un guestbook in php c'è:

    [1] Questo codice che mi trasforma le URL inserite in link cliccabili:

    Codice PHP:
    $pattern1="([url]http://[/url])([-+%&a-z0-9\.-_]+)|(www\.)([-+%&a-z0-9\.-_]+)";

    if(
    eregi($pattern1,$message)){
    $message=eregi_replace($pattern1"<a href=\"http://\\2\\3\\4\">LINK</a>"$message);


    [2] ... e questo codice che, se "attivato" con $html_allowed=0, mi blocca l'esecuzione di codice HTML nel messaggio:

    Codice PHP:
    if($html_allowed == "0") {

        
    $message str_replace(array("<"">"), array("&lt;""&gt;"), $message);

        
    $message strip_tags(stripslashes($_POST["message"]));

        } 
    Ora, se attivo [2] automaticamente non funziona [1], e quindi se voglio [1] devo necessariamente concedere l'esecuzione del codice html nel messaggio.

    La mia domanda è: posso in qualche modo avere contemporaneamente [1] (URL cliccabili) e [2] (blocco del codice HTML), cioè attivare il codice HTML nel messaggio solo per rendere le URL cliccabili ???

    Possibile che non ci sia una soluzione???
    Hellp! (grazie)

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Re: Un rompicapo che mi sta facendo impazzire: URL cliccabili e blocco HTML nei messa

    Originariamente inviato da antiriad
    In un'area messaggio di un guestbook in php c'è:

    [1] Questo codice che mi trasforma le URL inserite in link cliccabili:

    Codice PHP:
    $pattern1="([url]http://[/url])([-+%&a-z0-9\.-_]+)|(www\.)([-+%&a-z0-9\.-_]+)";

    if(
    eregi($pattern1,$message)){
    $message=eregi_replace($pattern1"<a href=\"http://\\2\\3\\4\">LINK</a>"$message);


    [2] ... e questo codice che, se "attivato" con $html_allowed=0, mi blocca l'esecuzione di codice HTML nel messaggio:

    Codice PHP:
    if($html_allowed == "0") {

        
    $message str_replace(array("<"">"), array("&lt;""&gt;"), $message);

        
    $message strip_tags(stripslashes($_POST["message"]));

        } 
    Ora, se attivo [2] automaticamente non funziona [1], e quindi se voglio [1] devo necessariamente concedere l'esecuzione del codice html nel messaggio.

    La mia domanda è: posso in qualche modo avere contemporaneamente [1] (URL cliccabili) e [2] (blocco del codice HTML), cioè attivare il codice HTML nel messaggio solo per rendere le URL cliccabili ???

    Possibile che non ci sia una soluzione???
    Hellp! (grazie)
    hai provato a eseguire prima la funzione 2 e poi la 1?

    dovrebbe funzionare...

    Per quanto riguarda la 2 poi, meglio usare htmlentities che è fatta apposta

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    SI basta che controlli,nel secondo pezzo di codice, per ogni tag presente nel
    testo se e' di tipo <a> o <a herf="xxx"> non fai la sostituzione
    diversamente la fai.

    Pero non te la cavi con un str_replace.


    Andrea

  4. #4
    Ciao a tutti,
    innanzitutto GRAZIE delle risposte!

    Come avrete intuito di PHP so praticamente nulla... quindi perdonatemi se fraintendo qualcosa di quello che aete scritto! Cmq, vediamo se ho capito!

    Allora, innazitutto provo ad invertire l'ordine delle porzioni di codice per eseguire prima la funzione 2 e poi la 1.

    Se non dovesse funzionare tento la sostituzione di tutto fuorché <a> e <a href="">.

    Poi già che ci sono mi informo su htmlentities.

    Vi faccio sapere! Thanks!


  5. #5
    LOLLE invertendo il codice sembra funzionare perfettamente !!!

    Daiii non può essere così semplice!!!

    THANKS!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.