Visualizzazione risultati 1 fino 24 di 24

Discussione: Evitare di far inserire codice html

  1. #1
    Guest

    Predefinito Evitare di far inserire codice html

    Salve a tutti, sul mio sito ho inserito uno script con fwrite per far scrivere alcune frasi su di una pagina html:
    Codice PHP:
    <?php

    if ($testo == "")
    {
    echo
    "messaggio NON valido";
    }

    else
    {
    $nomefile="database.htm";
    eccedera....
    adesso vorrei sapere quale codice devo inserire nella funzione if, per far si che non vengano inseriti codici in html tipo <a href.... per evitare di far inserire collegamenti..


    helpme please.

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    strip_tags() se vuoi eliminarli del tutto, htmlspecialchars() se vuoi convertirli in semplice testo

  3. #3
    zulukwebsite non è connesso Utente attivo
    Data registrazione
    16-07-2006
    Messaggi
    290

    Predefinito

    puoi usare anche htmlentities() che sostituisce i caratteri nelle loro entità....il carattere tedesco Ö non viene convertito da htmlspecialchars() mentre htmlentities() sostituisce con l'entità &ouml

  4. #4
    Guest

    Predefinito

    Ma non era quello che ha chiesto l'autore del topic...


    Ciao!

  5. #5
    zulukwebsite non è connesso Utente attivo
    Data registrazione
    16-07-2006
    Messaggi
    290

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    Ma non era quello che ha chiesto l'autore del topic...


    Ciao!
    perchè nn può usare anche htmlentities per evitare di far inserire codice html??

  6. #6
    Guest

    Predefinito

    Non è che sia errata come funzione, ma non è la più adatta; htmlentities serve ad altri scopi, come quello che hai descritto tu prima.
    Per ciò che ha chiesto paternopolionair la funzione da usare è appunto htmlspecialchars.


    Ciao!

  7. #7
    Guest

    Predefinito

    Quindi dovrebbe essere:

    Codice PHP:
    <?php

    if ($testo == "htmlspecialchars")
    {
    echo
    "messaggio NON valido";
    }

    else
    {
    $nomefile="database.htm";
    ma non penso sia così, come devo modificare?

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    quindi dovresti leggere la guida e gli esempi di strip_tags() se vuoi eliminare dal testo i tag, oppure htmlspecialchars() se vuoi convertirli in semplice testo. Sono funzioni, quindi prendono testo in entrata e ti danno testo in uscita.
    Ultima modifica di dreadnaut : 24-07-2008 alle ore 12.49.23

  9. #9
    Guest

    Predefinito


    htmlspecialchars è una funzione php, quindi da applicare a del testo.
    Non la puoi utilizzare per fare dei confronti e per altri tipi di controlli.


    Ciaoo!!

  10. #10
    Guest

    Predefinito

    Codice PHP:
    <?php

    $new
    = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
    echo
    $new; // &lt;a href='test'&gt;Test&lt;/a&gt;

    $nomefile="database.htm";
    $vecchiofile=fopen($nomefile, "r");
    $contenuto_file=fread($vecchiofile, filesize($nomefile));
    fclose($vecchiofile);

    $f=fopen($nomefile, "w+");
    fwrite($f, $new\r\n");
    fclose(
    $f);
    ?>

    capito, quindi così dovrebbe andare.. (Non so)
    Ultima modifica di debug : 24-07-2008 alle ore 13.50.55

  11. #11
    Guest

    Predefinito

    Il codice sembra giusto, a parte una virgoletta mancante (come si evince dalla colorazione del tag che ho applicato al tuo post).

    Mi domando solo a cosa ti serve leggere il vecchio contenuto del file se poi lo vai a sovrascrivere.


    Ciao!

  12. #12
    Guest

    Predefinito

    NON va, ora posto l'intero script:
    Codice PHP:
    <?php

    if ($testo == "")
    {
    echo
    "messaggio NON valido";
    }
    elseif (
    $testo == "Inserisci qui il tuo messaggio")
    {
    echo
    "messaggio NON valido";
    }
    elseif (
    $testo == "<,a,href,>,")
    {
    echo
    "messaggio NON valido";
    }
    else
    {


    $testo = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
    echo
    $testo; // &lt;a href='test'&gt;Test&lt;/a&gt;

    $nomefile="database.htm";
    $vecchiofile=fopen($nomefile, "r");
    $contenuto_file=fread($vecchiofile, filesize($nomefile));
    fclose($vecchiofile);
    $data=(date("d-m-Y"));
    $ora=(date("H:i:s"));

    $f=fopen($nomefile, "w+");




    fwrite($f, "<span class=\"Stile15\"> - $testo </span> <span style=\"color: rgb(102, 0, 204);\"><strong>($ora)</strong></span>\r\n");
    fwrite($f, "$contenuto_file\r\n");
    fclose($f);
    header("location: http://www.paternopolionair.altervista.org/index.php");
    }
    ?>
    come modificarlo?

  13. #13
    Guest

    Predefinito

    Ci sono un paio di errori:
    - la seconda elseif non ha molto senso (più che altro non si sa da dove viene il testo che si controlla);
    - esegui due volte fwrite che, nel migliore dei casi, sovrascrive ciò che viene scritto la prima volta;
    - il redirect non può avvenire perchè esegui un'echo prima;


    Ciao!

  14. #14
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    no vabbeh, abbiamo capito che non ha idea di come scrivere il codice. Quelle due righe in mezzo sono copiate esattamente dall'esempio del manuale, senza neanche cambiare i nomi delle variabili, poi cambiandoli, ma non in modo sensato.

    Paternopolionair, non ci hai ancora detto se vuoi controllare se ci sono dei tag, eliminarli direttamente tenendo il resto del messaggio o convertirli in testo, rendendoli così visibili. Il tuo codice (o l'idea dietro di esso) varia fra due di queste soluzioni, ma se non ti spieghi con precisione un non può aiutarti oltre un certo limite

  15. #15
    Guest

    Predefinito

    così dovrebbe anadre
    Codice PHP:
    <?php

    if ($testo == "")
    {
    echo
    "messaggio NON valido";
    }
    elseif (
    $testo == "Inserisci qui il tuo messaggio")
    {
    echo
    "messaggio NON valido";
    }

    else
    {


    $testo = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
    echo
    $testo; // &lt;a href='test'&gt;Test&lt;/a&gt;

    $nomefile="database.htm";
    $vecchiofile=fopen($nomefile, "r");
    $contenuto_file=fread($vecchiofile, filesize($nomefile));
    fclose($vecchiofile);
    $data=(date("d-m-Y"));
    $ora=(date("H:i:s"));

    $f=fopen($nomefile, "w+");




    fwrite($f, "<span class=\"Stile15\"> - $testo </span> <span style=\"color: rgb(102, 0, 204);\"><strong>($ora)</strong></span>\r\n");

    fclose($f);

    }
    ?>
    ma non va lo stesso, nel senso che se io nel form testo vado a scrivere <a href...> sul file database.htm viene visualizzato il collegamento e non solo la scritta...

  16. #16
    Guest

    Predefinito

    Ma quando arrivi a echo $testo; cosa ti viene stampato?


    Ciao!

  17. #17
    Guest

    Predefinito

    stampa questo: <a href='test'>Test</a>

  18. #18
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    io non ho capito, tu prcisamente che output vuoi?

    input <a href="http...">testo</a> --> output --> testo ?

    input <a href="http...">testo</a> --> output --> #(vuoto) ?

    input <a href="http...">testo</a> --> output --> <a href="http...">testo</a> ?
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  19. #19
    Guest

    Predefinito

    Guarda il sorgente della pagina html e vedi se ti stampa i singlequote (i ' ) oppure l'entità html.


    Ciao!

  20. #20
    Guest

    Predefinito

    questo è il sorgente del file html che viene creato:
    Codice PHP:
    <span class="Stile15"> - &lt;a href=&#039;test'&gt;Test&lt;/a&gt; </span> <span style="color: rgb(102, 0, 204);"><strong>(14:56:08)</strong></span>

  21. #21
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    allora è giusto, tu che risultati vuoi invece?
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  22. #22
    Guest

    Predefinito

    No, devi guardare il sorgente della pagina php di cui hai postato il codice prima.


    Ciao!

  23. #23
    Guest

    Predefinito

    eccolo :
    Codice PHP:
    &lt;a href=&#039;test'&gt;Test&lt;/a&gt;

  24. #24
    Guest

    Predefinito Ci sono riuscito

    Ci sono riuscito, Grazie lo stesso.

Regole di scrittura

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