1

I want to pass a variable from php to HTML as "attribute" so that javascript (jQuery) could access that.

$variable = addslashes(   this is the text, coming from database, which can contain '' ' ' ' ' or "" " " " "" " or even <br><hr> tags   );

HTML:

<img id="clickMe" titleAttr="<?php echo $variable; ?>" />

JS:

$('#clickMe').click(function() {
    alert ($(this).attr('titleAttr'));
});

now Firefox say its a bad HTML code, and alert() shows the text until the first ' signal (the rest is cut off)

1 Answer 1

5

You want htmlspecialchars not addslashes.

There is almost always a better escaping mechanism than addslashes for any situation, and when there isn't, addslashes is rarely sufficient so you need to write one.

addslashes is particularly poor for inserting data into HTML since \ is not an escape character in HTML.

Sign up to request clarification or add additional context in comments.

1 Comment

"since \ is not an escape character in HTML." that was the key

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.