Search code examples
phpurl-shortener

How to create a short url for sharing on social media


I'm trying to write some code which shares a page on Facebook and twitter. The problem I'm facing is that the page I'm trying to share has a big query string like:

http://domain.com/see.php?c=3&a=123&v=1

But it seems that Facebook and Twitter don't like that big query string.

I also tried using tiny url with following method in which I passed the URL to a PHP function to get the tiny URL:

var a = $("#Link").val();

I get the correct value of **a**. After that I pass this value to a PHP file:

$.post("ShortLink.php?value="+a

In that PHP file I got the following value:

http://domain.com/see.php?c=3

All the values after 3 is deleted.

Thanks


Solution

  • When POSTing to your ShortLink.php file, you should make sure to URL encode the value of a beforehand. Otherwise you're calling ShortLink.php?value=http://domain.com/see.php?c=3&a=123&v=1, i.e., sending:

    value = http://domain.com/see.php?c=3
    a = 123
    v = 1
    

    What you want is ShortLink.php?value=http%3A%2F%2Fdomain.com%2Fsee.php%3Fc%3D3%26a%3D123%26v%3D1, thus sending:

    value = http://domain.com/see.php?c=3&a=123&v=1
    

    This can be achieved via encodeURIComponent():

    $.post("ShortLink.php?value=" + encodeURIComponent(a));
    

    See also How do I pass a URL with multiple parameters into a URL? and How to encode a URL in Javascript?.