Franque Posted June 29, 2014 Share Posted June 29, 2014 (edited) Bonjour, N'ayant pas trouvé la réponse sur le forum, je me permets de poster un nouveau topic. Je souhaite intégrer le code ci dessous dans une description d'un produit que je vend sur ma boutique. Or quand je le rentre, cela ne fonctionne pas et m'indique " Le champ description (Français (French)) est invalide. ". <form> <input type="text" id="nbhl" placeholder="Nombre de m2 à traiter" autofocus/> <input type="button" value="Calculer" onclick="javascript:document.getElementById('resultat').innerHTML=document.getElementById('nbhl').value/30+' L d\'anti-mousse.';"/> <p id="resultat"></p> </form> Avez vous une idée de comment faire pour que cela fonctionne ? Merci d'avance. Edited June 30, 2014 by Franque (see edit history) Link to comment Share on other sites More sharing options...
Szed Posted June 30, 2014 Share Posted June 30, 2014 Les scripts sont bloqué c'est normal. Dans la classe Validate.php, vous avez quelque part une fonction isCleanHtml : public static function isCleanHtml($html, $allow_iframe = false) { $events = 'onmousedown|onmousemove|onmmouseup|onmouseover|onmouseout|onload|onunload|onfocus|onblur|onchange'; $events .= '|onsubmit|ondblclick|onclick|onkeydown|onkeyup|onkeypress|onmouseenter|onmouseleave|onerror|onselect|onreset|onabort|ondragdrop|onresize|onactivate|onafterprint|onmoveend'; $events .= '|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onmove'; $events .= '|onbounce|oncellchange|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondeactivate|ondrag|ondragend|ondragenter|onmousewheel'; $events .= '|ondragleave|ondragover|ondragstart|ondrop|onerrorupdate|onfilterchange|onfinish|onfocusin|onfocusout|onhashchange|onhelp|oninput|onlosecapture|onmessage|onmouseup|onmovestart'; $events .= '|onoffline|ononline|onpaste|onpropertychange|onreadystatechange|onresizeend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onsearch|onselectionchange'; $events .= '|onselectstart|onstart|onstop'; if (preg_match('/<[\s]*script/ims', $html) || preg_match('/('.$events.')[\s]*=/ims', $html) || preg_match('/.*script\:/ims', $html)) return false; if (!$allow_iframe && preg_match('/<[\s]*(i?frame|form|input|embed|object)/ims', $html)) return false; return true; } Le premier preg_match vérifie la présence de balise <script> dans vos description. Et si il en trouve, boooom : return false! Votre description ne passe pas. Link to comment Share on other sites More sharing options...
Franque Posted June 30, 2014 Author Share Posted June 30, 2014 Merci pour votre réponse rapide, je vais modifier cela immédiatement afin que les scripts puissent être acceptés. Link to comment Share on other sites More sharing options...
Szed Posted June 30, 2014 Share Posted June 30, 2014 LA bonne pratique serait de faire un override de la classe Validate, et de modifier cette fonction. Link to comment Share on other sites More sharing options...
Franque Posted June 30, 2014 Author Share Posted June 30, 2014 Malheureusement, je ne sais pas faire d'override, donc dans un premier temps je vais juste modifier le fichier validate.php, et après je fais essayer de chercher pour comprendre comment faire un override de la classe Validate Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now