View Full Version : Question about Error message

06-14-2018, 11:55 AM
I found this affilate link masking script and it works:

$v = $_GET['v'];
// In case someone calls naked php file
if ($v == '') {$link = 'http://example.com/';}

// Add as many as links in below format. Each in a new line.
if ($v == 'product1') {$link = 'http://example1.com/';}
if ($v == 'product2') {$link = 'http://example2.com/';}
if ($v == 'product3') {$link = 'http://example3.com/';}

// Don't change anything below this line.
header("Location: $link") ;

But i see in the server error log that it gives folling error everytime the link is clicked: Undefined variable: link in /home/../public_html/..com/go.php on line 13.
Can someone tell me why it makes this error? Because the script works


06-14-2018, 03:16 PM
The only time you should see an undefined $link error is if the page gets requested with a $_GET['v'] value that doesn't exist in the comparisons in the code. When this is the case, $link won't exist and the header("Location: ") will redirect to the go.php page and it will appear that nothing happened. Depending on the browser you are using, you should either get a blank page or a browser error telling you that the page isn't redirecting properly. If the page gets requested with either no $_GET['v'] parameter or there is one but the value is empty, the 1st default URL will be used.

Is there any chance that the URLs this script redirects to are making a http request back to the go.php page with a $_GET['v'] value that doesn't match one of the choices? This is the only thing that I can think of that would cause the script to appear to work (redirects to the correct URL) and causes an undefined $link error to be logged.

You can either check the web server's access log or add some code to log request information in the go.php script to see what requests it is receiving.