How to remove ampersand and get value from url in php - php

I have a url in which value is coming with ampersand so i want to get value
from that url but due to ampersand this value is coming wrong.So is there
any way to remove ampersand and get the actual value from the url.Because
i have survey website in which whenever user will complete the survey it will automatically redirect on the callback url,so they use ampersand with
the variable.
My url is like this:-
http://testdomain.com/webservices/v1/api/survey_submit?ssi=%127%&ssi2=%1.80%
Php code is:-
<?php
echo $_GET['ssi'];
?>
its value should come 127 but it is showing wrong value 7%.Is it
possible to get the value ampersand sign.

Have a look about strtok() at http://php.net/manual/en/function.strtok.php

Related

Getting hash in passing trimmed PHP $_GET in landing URL

Running PHP on WAMP localhost I am trying to pass a $_GET['sku'] from a page to another page trough URL like
Add to Selection
This passing data to next page but I am getting
http://localhost:/map/bc/selection.ph?sku=%27MO-1103%27
while the $_GET['sku'] is MO-1103. Why I am getting these hashes before and after the parameter?
You are adding ' around the sku %27 == '
Add to Selection
// here>>>>>>>>>>>>> ^ and here >>>> ^
So change that line to
Add to Selection
This is from the HTML itself. They are codes that represent entities that cannot be sent at a URL. %27 represents a single quote.
Check this out.

PHP - GET url encode #, \ and & sign

This PHP code:
$test = '#&\\';
echo rawurlencode($test);
Results in this:
http://example.com/test=%40%26%5C
Which in a $_GET request in a url becomes something like this:
test=#&\
The above is not an allowed $_GET variable.
How can I still use a $_GET variable with these values, encode them and decode them back to get these values?
The URL will most certainly be http://example.com/test=%40%26%5C if you create the URL as http://example.com/test=%40%26%5C. When PHP receives a request for this URL, PHP automatically decodes the query string and puts it into $_GET. The URL didn't change, you simply have the decoded value of the query string available to your PHP script in the $_GET variable.
Additionally the browser may decide to display the URL in a decoded form in the address bar for usability/readability. It does not mean that the actual URL contains #&\ characters.

variable linked in page URL, how-to and are spaces okay?

3 quick questions:
I want to create one page "view_build.php" which, when opened, takes a variable from the URL contained within it, and displays unique information for that 'build'. For example
$row[0]
The above is a link to a page called view_build.php?buildname=VARIABLE
Does the .php file contain the variable in a $_GET array, JUST from me including a variable name in the html link?
And if so, is it okay if there are spaces in it? For example:
view_build.php?buildname=Dual Zoren
Lastly, how do I include more than one variable in the URL? What is the syntax?
Thanks so much!
Regards.
Does the .php file contain the variable in a $_GET array, JUST from me including a variable name in the html link?
Yes. To elaborate, if you call view_build.php via an HTTP request with the URL query parameters foo=bar, then within that script, you can access $_GET['foo'] which will have the value bar.
is it okay if there are spaces in it?
No, they should be URL encoded. See http://php.net/manual/function.urlencode.php
For example
<?= htmlspecialchars($row[0]) ?>
Lastly, how do I include more than one variable in the URL? What is the syntax?
URL query parameters are separated by the & character, eg
view_build.php?buildname=Dual+Zoren&foo=1&bar=2

Pass a URL in a GET for PHP

I need to pass a url using a GET address. To give an example which was I have tried:
http://www.example.com/area/#http://www.example.com/area2/
I've also tried replacing the forward slashes with other characters but that doesn't seem to work. How would you pass a url in a GET?
As I have understood, you should use url_encode() and url_decode().
The function url_encode() lets you create a string that can be used as a link.
You should use it this way:
$link = 'goto.php?link=' . url_encode($_POST['target_site']);
And when you were going to redirect to the user defined site (eg), you can decode the parameter given this way:
$decoded_link = url_decode($_GET['link']);
// Now it's safe to use the given URL (for example I can redirect to there)
header('location: ' . $decoded_link);
Hope it helps.
The # character links to an anchor on the page. The browser will automatically scroll to the element with the id after the point sign. So that's not what you're looking for.
To pass a GET parameter, the syntax would be like this:
http://example.com/area?http://example.com/area2
Then, if you var_dump($_GET), you'll see your URL. But, if you have other fields you also want to pass in your URL, you can use key=value pairs, like so:
http://example.com/area?url=http://example.com/area2&param1=a&param2=b
In this case, your URL will be available in $_GET['url'].

$_GET variable in php without using a form

i have gallery.php?gid=1 in gallery.php page and i have to submit data to save.php without using a form.
and i want to get the value of gid without using a button..
is that possible?
gallery.php
$gid=$_GET['gid'];
save.php
echo $gid..
header("location:save.php?gid=".$gid);
OR
use a anchor tag with href="save.php?gid=<?php echo $gid;?>"
$_GET will contain all the variables which are in the URL, after the "?" (foo.php?gid=...).
You are not obliged to use a form to fill these variables.
The members of $_GET array is got from query string. In a simple way, a query string is tha part after the ? character of the URL and formatted in this way:
param1=value1&param2=value2&....
So you can pass any pair of key-value in to your PHP script by adding a query string to the end of this PHP file URL.

Categories