Sending page URL with Contact Form - php

I am looking to dynamically submit the page URL of which a user submits a contact form from.
So for example if someone used a contact form on the home page the URL (https://www.example.com/) would be added to the email, and this would change depending on which page the user submitted the page from.
Now then, I have tried using -
$absolute_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
Yes this does work, however, the URL I get through is as follows:
From URL:
http://example.com/email/index.php
This, I imagine, is because the mailer script is in its own directory and separate file, which is where $absolute_url is fetching from.
Any help is greatly appreciated.
Thanks
Cal.

You Could create a hidden input in the form that contains URL.
HTML in form
<input id="ref" name="url" type="hidden" value=""/>
Javascript
document.getElementById("ref").setAttribute("value",window.location.href);

You need current URL value. #Pupil's function can do the trick but you might have one problem.
Not every server set $_SERVER['HTTPS'] so you can get an error that says that HTTPS is not in $_SERVER array. Something like:
Notice: Undefined index: HTTPS in..
It's because you can't do compare if key doesn't exist.
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
You should use isset() because it checks whether a variable is "set" or available for reference. So you better go with:
if ( isset( $_SERVER["HTTPS"] )) {$pageURL .= "s";}
You can even suppress the possible notice using the "#" operator but you should then change function logic a bit. You could have then:
function getCurrentUrl(){
$pageURL = #( $_SERVER["HTTPS"] != 'on' ) ? 'http://'.$_SERVER["SERVER_NAME"] : 'https://'.$_SERVER["SERVER_NAME"];
$pageURL .= ( $_SERVER["SERVER_PORT"] != 80 ) ? ":".$_SERVER["SERVER_PORT"] : "";
$pageURL .= $_SERVER["REQUEST_URI"];
return $pageURL;
}
echo getCurrentUrl();
Hope this helps.

From your description, it seems, you want current page url.
Here is the function for the same:
<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
echo curPageURL();
?>

Related

Get current page url and replace root with a domain

I would like to change the following code in the following way.
The php script gets the current url of the page of mine.
Now since I am using the descriptions of what i have on my another site i would like to put canonical tag on the page.
So I would like the script to get the url of my site and replace the www.mysite.com to www.domain2.com
How do i make it that the ,," will result the url i want? ( so i can make " rel="canonical" />
It can be beneficial for others aswell, who own more sites and have the same description and dont want to get penalized by Google Panda or have product descriptions from manufacturers.
<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>
I have finally found a solution to that
<?php
$Get_url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo str_replace("www.mydomain.com", "www.domain2.com", $Get_url);
?>

How to get specific part of url?

I am working on search function which I want make my search more easier and I had store href inside my db. Therefore, I need to get specific part of current page url eg : abc.php.
But now I only can get full url which is eg : http://abc_system/user/abc.php. Is it one of the solution is used substring?I am looking for some help. Hope you guys can help me out. Thanks in advanced.
This is my code which return url result:
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
You need to use basename() function for get your filename from the URL string.
<?php
$url = "http://google.com/sdfsaf/abcd.php";
echo basename($url); // It will returns abcd.php
?>
Demo
Use **parse_url()** if you want to split url to its components,
For more info, Refer : http://www.php.net/manual/en/function.parse-url.php

Is the current page the base url in PHP?

I need to see if the current page a user is on is the main page of the website, i.e. there is nothing after the base url.
I'm doing this to exclude some code off the main page.
I asked this question is Javascript, but would like to implement it in PHP
This will probably give you what you are looking for:
$is_home = $_SERVER[ 'REQUEST_URI' ] === '/' ? true : false;
<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>
This should give you the url of the current page, when you have this you can check it against the home url.
The following should do the trick:
if (empty($_SERVER['QUERY_STRING'])) {
// no params
}

PHP URL Redirect (Getting full URL + GET)

How would I get just the last part to my URL?
Ex.
?page=home&optional=lol
I am not familiar with any of the server commands, so much help would be appreciated. Also note that the GET variables are dynamic and will be different.
The QUERY_STRING server variable should be what you're looking for:
$_SERVER['QUERY_STRING'];
Use parse_url
Getting the full URL of the page is a bit complicated, but not very:
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}
else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
$parsed_url = parse_url($pageURL);
$qs = $parsed_url['query']; //query string, this is the ? part of the URL
This can be found in $_SERVER['REQUEST_URI']

checking user's current page and condition statement

guys im looking for a comprehensive code to check if a visitor is in index.php then showing some lines to him
i mean i want to consider every possibility for this code
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
$curentUrl = curPageURL();
if (preg_match("/index.php/",$curentUrl) || preg_match("/index.html/",$curentUrl)) {
}
but im looking for a more complete code to see if user is in index page of my website
Actually this curPageURL() function has nothing to do here
if ($_SERVER['PHP_SELF'] == "/index.php")
is enough.
But on most PHP sites index.php doesn't mean only index page. but it can be whole site too.
Without complete circumstances this question is too broad to answer.
What about
$_SERVER['SCRIPT_NAME']

Categories