0

I was trying to access a page using curl. I could access it perfectly using the browser and using "static" strings as the URL, like:

$url = "http://www.example.com/?q=1234"

But when I tried to access the page using a variable in the URL string like:

$url = "http://www.example.com/?q=$param"

I got a 400 error code. I checked out on the web and found some comments here in this stackoverflow thread:

Then, just for curiosity I did the following:

$url = "http://www.example.com/?q=" . trim($param);

and it worked! And no, $param did NOT contain any spaces.

To me, it seems that it can be some encoding error, but I really can't find an explanation for it. Does anyone here in stackoverflow know what it can possibly be?

Thanks in advance :)

3 Answers 3

3

Well, if you're 100% sure it didn't contain a space, then $param probably contained one of the other characters trim() cuts away with:

  • "\t" (ASCII 9 (0x09)), a tab.
  • "\n" (ASCII 10 (0x0A)), a new line (line feed).
  • "\r" (ASCII 13 (0x0D)), a carriage return.
  • "\0" (ASCII 0 (0x00)), the NUL-byte.
  • "\x0B" (ASCII 11 (0x0B)), a vertical tab.

You could find out for sure by using ord():

$string = "\nTEST\r";
for ($i = 0; $i <= strlen($string)-1;  $i++) 
 echo "(".ord($string[$i]).")";

this snippet will output all character values in the string, including those of invisible characters:

 (10)(84)(69)(83)(84)(13)

the 10 beingh the newline character in the beginning of the string.

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

Comments

0

Maybe the website reject external requests, so maybe try adding a referrer value as the website and a client browser value as firefox. maybe that can trick it and accept the request.

Comments

0

You're best bet is to echo out the $url variable after assignment. That way you can see exactly what is in it.

Comments

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.