- Home
- Categorie
- Coding e Sistemistica
- PHP
- Inserire METATAGS in un form
-
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!
-
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.
-
Mi sembra strana questa cosa, sicura che nel sorgente non ci sia proprio nulla?
Prova a togliere enctype="multipart/form-data" dal form.
-
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.gifse 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
-
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.
-
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 :()
-
grr.... grrrr.. NO METATAGS ma... TAGS!!!!!!!!!!
Scusate
-
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]
-
se inserisco il carattere "<":
string(0) "" se tolgo il carattere "<":
string(119) "img border="0" width="150" height="120" src="NOMELINK etc etc">"
-
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.
-
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.
-
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
-
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.