• User

    Inserire METATAGS in un form

    Ho creato un form dove inserire diversi campi, uno di questi contiene dei METATAGS e questo e' un esempio:
    [html]<img border="0" width="150" height="150" src="indirizzo_web_immagine">[/html]questa e' una parte di codice del form:
    [html]<form align="right" action="nomesito.php" method="POST" enctype="multipart/form-data">
    <input type="text" size="146" name="immagine" value="[var.immagine]">[/html]Ora, quando vado a leggere la variabile dal programma PHP con il comando:
    [php]$immagine = mysql_real_escape_string($_POST['immagine']);
    echo $immagine;[/php]questa non viene trasmessa.

    Se invece tolgo il carattere "<" allora posso ricevere la variabile inserita nel form.
    Come posso risolvere questo problema, calcolando che il codice inserito nel form NON PUO ESSERE MODIFICATO IN NESSUN MODO?

    Colgo l'occasione per augurarvi a tutti quanti una BUONA PASQUA.


  • ModSenior

    Ciao criccroc,
    forse intendi un tag html, quello non mi sembra un metatag.
    Se tu invi <img border="0" width="150" height="150" src="indirizzo_web_immagine"> l'echo cosa ti dà nel sorgente della pagina?

    Buon Pasqua anche a te!


  • User

    ops.. scusa hai ragione.. TAG!!!!!! (ero assonnato ehehe)

    Se inserisco i TAG nella casella di testo, la variabile risultera' vuota (praticamente vengono FILTRATI) e di conseguenza il comando ECHO mi mostrerà NULLA.


  • ModSenior

    Mi sembra strana questa cosa, sicura che nel sorgente non ci sia proprio nulla?
    Prova a togliere enctype="multipart/form-data" dal form.


  • User

    Ciao, ho provato a fare come hai detto tu ma il risultato e' lo stesso.

    Te la faccio piu semplice cosi mi spiego meglio:
    Immagina che hai un form dove inserire dei campi ed uno di questi si chiama IMMAGINE, quindi avrai sulla tua pagina web una cosa simile a questa:
    Inserisci immagine : .......................
    e al posto dei puntini avrai una casella di testo.

    ora, se in questa casella ci scrivi : immagine.gif va bene. Infatti da PHP scriverei:
    [php]$immagine = mysql_real_escape_string($_POST['immagine']);
    echo "Il link dell'immagine e':" . $immagine ; [/php]il risultato sara': Il link dell'immagine e': immagine.gif

    se invece ci scrivi qualcosa che contiene un TAG (in questo caso <img...> NON FUNZIONA

    quindi la domanda e':
    Come posso inserire in una casella di testo qualcosa che contiene TAGS (<img>) e metterla in una variabile ($immagine) con il comando POST?

    Se non sono stato chiaro ancora una volta mettero' il codice eheh
    CIAOOO


  • ModSenior

    Il fatto è che io credo non sia come dici tu, cioè nel sorgente tu non hai il nulla ma hai il codice che però punta ad un immagine che non esiste altrimenti ciò non si spiegherebbe.
    Se invece di:
    [php]
    echo "Il link dell'immagine e':" . $immagine ;
    [/php]
    Metti:
    [php]
    echo "Il link dell'immagine e':" . htmlentities($immagine) ;
    [/php]
    Io credo vedrai il codice. Prova cosi e vediamo che succede.


  • User

    SIGH SIGH A QUANTO PARE E' UNA PROTEZIONE (O QUALCHE ALTRA COSA) CHE HO SUL MIO SITO ....
    Ho fatto un piccolo programma in php (prova11.php) che emula quello che devo fare io:

    [php]<?php
    $immagine = $_POST[immagine];
    echo "Hai inserito:" . htmlentities($immagine);
    ?>
    <html>

    <form align="right" action="prova11.php" method="POST">
    <div align="center">
    <b>Inserisci link-immagine:</b>
    <br>
    <input type="text" size="146" name="immagine" value="">
    </div>
    </form>

    </html>[/php]lo ho pubblicato sul mio server e lanciato e FUNZIONA anche se inserisco dei metatags (ho inserito ad esempio questo: <HTML>)

    se invece inserisco LO STESSO CODICE sulla mia applicazione NON FUZIONA!! praticamente mi filtra in input il carattere "<" e tutto quello che segue non viene considerato :()


  • User

    grr.... grrrr.. NO METATAGS ma... TAGS!!!!!!!!!!
    Scusate


  • ModSenior

    A me non viene in mente nessuna possibile configurazione di php che generi questo problema, puoi postare l'output esatto di var_dump?
    [php]
    $immagine = $_POST['immagine'];
    var_dump($immagine);
    [/php]


  • User

    se inserisco il carattere "<":
    string(0) "" 

    se tolgo il carattere "<":
    string(119) "img border="0" width="150" height="120" src="NOMELINK etc etc">" 


  • User

    CONFERMATO CIO CHE PENSAVO!!!

    Tornando all'intero programmino (prova11.php) che ho pubblicato un paio di messaggi fa....

    .. scrivevo appunto che C'E' QUALCOSA CHE NON MI FA INSERIRE IN INPUT IL CARATTERE "<".

    Infatti.. basta aggiungere all'inizio del programma la seguente riga:
    [php]include_once ('classes/config.php');[/php]e... non si può più inserire il carattere "<".

    Purtroppo questo programma e' criptato e quindi non posso stabilire dove sia inserito questo controllo. Inoltre sono OBBLIGATO ad utilizzare questo INCLUDE, altrimenti non funzionerebbe tutto il resto 😞

    Spero solo una risposta da chi ha creato questo programma perchè penso che non ho altre alternative.


  • ModSenior

    Sicuramente quel file fà un strip_tags su tutti i POST e GET.
    Per aggirare il problema prima dell'include metterei $POST = $_POST; e utilizzerei $POST successivamente.


  • User

    ciao Thedarkita, intanto ti ringrazio per continuarmi a supportare 😄
    Forse ci siamo quasi...grazie ad una idea che mi hai dato. Vado a spiegarti come ho modificato il programma:

    prima di include_once, praticamente alla riga subito dopo <?php, ho inserito
    [php]$immagine = $_POST['immagine']; (cosi mi "rubo" immediatamente la variabile prima che venga ripulita da include_once")
    echo "Immagine=" . $immagine; (per vedere la variabile)[/php] e a seguire i vari include che mi servono.

    nel form di input invece ho inserito il link corretto:
    [html]<img border="0" width="150" height="120" src="indirizzo web immagine blablabla"> [/html] CON I RELATIVI TAGS DI APERTURA E CHIUSURA (<..>)!!

    Nel comando ECHO ricevo nella variabile $immagine il riquadro dell'immagine BIANCA (questo indica che la variabile non e' andata perduta) con una piccola aggiunta:

    [html]ilmiosito/%5C%22indirizzoimmagine%5C%22 [/html]A mio avviso, visto che indirizzoimmagine e' CORRETTO, mi basterebbe ricreare la variabile cosi come mi serve per poi inserirla nel database.

    Che ne pensi della mia idea? 🙂 Mentre tu riceverai questo messaggio io vado a provare e ti farò sapere.

    Per ora ti ringrazio INFINITAMENTE ehehehe
    Ciao.
    Carlo


  • User

    Copio ed incollo la risposta che ho dato anche in altri forum alle persone che mi hanno seguito:

    Abbiamo capito che il file config.php contiene una routine nascosta che fa in modo di filtrare in QUALSIASI FORM del mio sito l'immissione del carattere "<" (viene visto come INIZIO TAG e quindi per PROTEZIONE annulla tutto ciò che segue).

    L'idea, come avevo detto in precedenza, era di "RUBARE" la variabile $immagine PRIMA che venisse caricato INCLUDE_ONCE (in questo modo non passava per config.php) per poi utilizzarla nella mia SQL di aggiornamento, ma anche questo non funziona perchè ci sono dei caratteri in questa variabile che comunque riportano una variabile vuota (non chiedetemi quali sono ehehe).

    Ecco quindi come ho risolto il problema:

    [php]<?php
    $sub = explode("http", $_POST['immagine']);
    include_once ('classes/config.php');
    $prima_parte = $sub[0];
    $seconda_parte = $sub[1];
    $immagine = STRIPSLASHES($prima_parte) . "http" . STRIPSLASHES($seconda_parte);
    .....
    ....
    ....[/php]Praticamente ho suddiviso la stringa in due parti con EXPLODE facendo riferimento a "http", poi la ho ricomposta e cosi facendo FUNZIONA TUTTO!

    So che questo può sembrare STRANO (è stato strano anche per me) ma cosi funziona!

    Grazie anche a te Thedarkita del tuo interessamento e delle tue risposte!
    Ciao.
    Carlo.