Joomla.it Forum
Non solo Joomla... => Sviluppo => : iacoposk8 06 Sep 2012, 20:10:36
-
ciao a tutti! sto sviluppando un'estensione per joomla 2.5 ma mi da questo errore
500 - Passed array does not specify a callable static method (cannot access private method JLoader::_autoload())
il problema è sicuramente dato da html purifier, perchè se commento le relative righe tutto funziona perfettamente! cosa può essere? e come risolvo?
ps: avendo un campo di testo libero dove si può anche formattare il testo e mettere link e immagini devo per forza filtrare il dato
-
html purifier filtra l'html non il php
html purifier filtra l'output non il codice
M.
-
non ho capito... quale può essere il problema? anche in visione dell'errore?
-
io ho filtrato solo una variabile post, non il codice... perchè da questo errore?
-
html purifier filtra l'html non il php
html purifier filtra l'output non il codice
M.
perchè se non sai a cosa serve html purifier succede... te l'ho già detto sopra... ma puoi anche continuare se ti piace
poi in joomla i $_POST e i $_GET non esistono e non devono esistere, i dati si prendono e si filtrano in altro modo, lato client con js e lato server con le regex ... mai letto la guida di sviluppo componenti? ...c'è un intero paragrafo sul filtro dei dati.
per i form:
http://docs.joomla.org/Developing_a_Model-View-Controller_Component/2.5/Adding_verifications
per le variabili della request:
http://docs.joomla.org/Secure_coding_guidelines
http://docs.joomla.org/Retrieving_and_Filtering_GET_and_POST_requests_with_JRequest::getVar
http://docs.joomla.org/Retrieving_request_data_using_JInput
M.
-
Si ma non ti incavolare! non son stato aggressivo verso di te, ho solo fatto una domanda... e tutte quelle cose che gentilmente mi hai linkato, le conosco, ma per esempio, JRequest::getvar se la imposto in modo che mi preleva la variabile POST con nome "descrizione" che proviene da una textarea del tinyMCE, se l'utente in quest'area di testo inserisce dei link (per fare un esempio) mi filtra troppa roba! nel senso rimuove tutti i tag! se c'è <a href='....'>testo[/url] mi rimane solo testo, per questo sto provando con html purifier
-
vuoi fare la stessa cosa che probabilmente fa tiny quando salva un articolo.. più facile di così, basta copiare.
M.
-
Però ci son due cose che non mi sono chiare allora:
1) se il filtro dei dati me lo fa già l'editor, senza usare JRequest::getvar, poi come prelevo la variabile?devo usare $_POST? (immagino di no ma non saprei cos'altro)
2) I controlli lato client son facilmente bypassabili, anche io saprei scrivere una cosa in una textarea e poi inviare tutt'altra cosa... quindi anche xxs e sql injection
-
dovrei aver risolto, chiedo solo una conferma se questo è il modo giusto.
Avevo visto che scrivendo
$post = JRequest::getVar('content', 'post');
la variabile post era senza <a href.....
mentre scrivendo: $post = JRequest::getVar('content', '', 'post', 'string', JREQUEST_ALLOWHTML);
i link sono funzionanti ma comunque com una cosa tipo
<script>alert("ciao");</script>
si arriva ad avere una variabile uguale ma senza i tag script...
Quindi è corretto prelevare i dati dal form in questo modo?
-
no... ma tanto ti ostini a non studiare ... che te lo dico a fare? ti dovrei dire che lo strumento per i form è Jform e di leggere come funzionano i form in joomla...
Tu non stai sviluppando con Joomla ne con il suo framework, non usi il pattern corretto (mvc) e questo porta tutto ciò che scrivi ad essere puramente una perdita di tempo.
Secondo me la lacuna principale ce l'hai con le classi e l'oop, capito questo concetto puoi riuscire a comprendere ed usare l'mvc...
ovvio che joomla funziona se prendi i dati dal post... a qs punto e in questo modo puoi sviluppare (o credere di farlo) per tutto.
M.