Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1008469
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T08:46:33+00:00 2026-05-16T08:46:33+00:00

I know that I should encodeURI any url passed to anything else, because I

  • 0

I know that I should encodeURI any url passed to anything else, because I read this:
http://www.digitalbart.com/jquery-and-urlencode/

I want to share the current time of the current track I am listening to.
So I installed the excellent yoururls shortener.
And I have a bit of code that puts all the bits together, and makes the following:
track=2&time=967

As I don’t want everyone seeing my private key, I have a little php file which takes the input, and appends the following, so it looks like this:
http://myshorten.example/yourls-api.php?signature=x&action=shorturl&format=simple&url=http://urltoshorten?track=2&time=967

So in the main page, I call the jquery of $("div.shorturl").load(loadall);

It then does a little bit of CURL and then shortener returns a nice short URL.

Like this:

$myurl='http://myshorten.example/yourls-api.php?signature=x&action=shorturl&format=simple&url=' . $theurl;
$ch = curl_init($myurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
if ($data === false) {
  echo 'cURL failed';
  exit;
}
echo $data;

All perfect.

Except… the URL which is shortened is always in the form of http://urltoshorten?track=2 – anything after the ampersand is shortened.

I have tried wrapping the whole URL in php’s URLencode, I’ve wrapped the track=2&time=967 in both encodeURI and encodeURIComponent, I’ve evem tried wrapping the whole thing in one or both.
And still, the & breaks it, even though I can see the submitted url looks like track=1%26time%3D5 at the end.

If I paste this or even the “plain” version with the unencoded url either into the yoururls interface, or submit it to the yoururls via the api as a normal URL pasted into the location bar of the browser, again it works perfectly.

So it’s not yoururls at fault, it seems like the url is being encoded properly, the only thing I can think of is CURL possibly?

Now at this point you might be thinking “why not replace the & with a * and then convert it back again?”.
OK, so when the url is expanded, I get the values from

var track = $.getUrlVar('track');
var time = $.getUrlVar('time');

so I COULD lose the time var, then do a bit of finding on where the * is in track and then assume the rest of anything after * is the time, but it’s a bit ugly, and more to the point, it’s not really the correct way to do things.

If anyone could help me, it would be appreciated.

  • 1 1 Answer
  • 1 View
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T08:46:33+00:00Added an answer on May 16, 2026 at 8:46 am

    I have tried wrapping the whole URL in php’s URLencode

    That is indeed what you have to do (assuming by ‘URL’ you mean inner URL being passed as a component of the outer URL). Any time you put a value in a URL component, you need to URL-encode, whether the value you’re setting is a URL or not.

    $myurl='http://...?...&url='.rawurlencode($theurl);
    

    (urlencode() is OK for query parameters like this, but rawurlencode() is also OK for path parts, so unless you really need spaces to look slightly prettier [+ vs %20], I’d go for rawurlencode() by default.)

    This will give you a final URL like:

    http://myshorten.example/yourls-api.php?signature=x&action=shorturl&format=simple&url=http%3A%2F%2Furltoshorten%3Ftrack%3D2%26time%3D967
    

    Which you should be able to verify works. If it doesn’t, there is something wrong with yourls-api.php.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

this is my first question here :) I know that I should not check
I know that I should put all the html elements in body tag, but
I know that we should only create repositories for Aggregate Roots and not for
I know that I should have schema of a table before calling NewRow method
I know that I should setup the trap service on each devices seperately but
I know that c++ code should be compiled and linked by g++, not gcc.
I want to know that how one should proceed in building animated splash screen.
I know that the following code should show and hide a tiny circular progress
I know that the reminder application should display a badge or sound or kind
I know that a command line application should return 0 on success. But are

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.