Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Notice: Undefined index: HTTP_REFERER

Tags:

Notice: Undefined index: HTTP_REFERER

$http_referer = $_SERVER['HTTP_REFERER']

i used this from tutorial.and it looks okay

also code is calling it from including file

what should i change?

i added print_r($_SERVER); and now page gives me this

 Array ([UNIQUE_ID] => UoSxWa56310AAAwUckIAAAAA         [HTTP_HOST] => movafaghha.com         [HTTP_COOKIE] => __utma=210711305.58608218.1372977010.1372977010.1372977010.1; __utmz=210711305.1372977010.1.1.utmcsr=who.is|utmccn=(referral)|utmcmd=referral|utmcct=/whois/movafaghha.com; PHPSESSID=83eb0e2ae7ebe4b6c2eeb071d9f5de71         [HTTP_X_REAL_IP] => 109.109.41.81         [HTTP_X_FORWARDED_HOST] => movafaghha.com         [HTTP_X_FORWARDED_SERVER] => movafaghha.com         [HTTP_X_FORWARDED_FOR] => 109.109.41.81         [HTTP_CONNECTION] => close          [HTTP_CACHE_CONTROL] => max-age=0          [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8          [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36          [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8,fa;q=0.6          [PATH] => /sbin:/usr/sbin:/bin:/usr/bin         [SERVER_SIGNATURE] =>         [SERVER_SOFTWARE] => Apache          [SERVER_NAME] => movafaghha.com          [SERVER_ADDR] => 174.122.223.93          [SERVER_PORT] => 80          [REMOTE_ADDR] => 109.109.41.81          [DOCUMENT_ROOT] => /home/memarest/public_html/movafaghha.com          [SERVER_ADMIN] => [email protected]          [SCRIPT_FILENAME] => /home/memarest/public_html/movafaghha.com/tutorials/login200/register.php          [REMOTE_PORT] => 49737          [GATEWAY_INTERFACE] => CGI/1.1          [SERVER_PROTOCOL] => HTTP/1.0          [REQUEST_METHOD] => GET          [QUERY_STRING] =>          [REQUEST_URI] => /tutorials/login200/register.php          [SCRIPT_NAME] => /tutorials/login200/register.php          [PHP_SELF] => /tutorials/login200/register.php          [REQUEST_TIME_FLOAT] => 1384427865.54          [REQUEST_TIME] => 1384427865          [argv] => Array ( )          [argc] => 0      )  

edited the code but still unable to echo all fiedds are required

<?php  ini_set("display_errors", true); error_reporting(E_ALL);  require 'core.inc.php';       if(!loggedIn()) {  //check mikunim ke tamame field ha dar form vojod darand va set shudan  if(isset($_POST['username'])&&isset($_POST['password'])&&isset($_POST['password_again'])&&isset($_POST['firstname'])&&isset($_POST['surename'])) {      $username = $_POST['username'];     $password = $_POST['password'];     $password_again = $_POST['password_again'];     $firtsname = $_POST['firstname'];     $surename = $_POST['surename'];        //HALA CHECK MIKUNIM KHALI HASTAND YA NA      if(!empty($username)&&!empty($password)&&!empty($password_again)&&!empty($firstname)&&!empty($surename)){         echo 'ok' ;      } else {          echo ' All fields are required';      }  }     ?>  <form action="register.php" method="POST"> Username:<br> <input type="text" name="username"><br> <br> Password:<br> <input type="password" name="password"><br><br> Password again:<br> <input type="password" name="password_again"><br><br> Firstname:<br> <input type="text" name="firstname"><br><br> Surname:<br> <input type="text" name="surename"><br><br> <input type="submit" value="register">    </form>  <?php  } elseif (loggedIn()) {      echo 'you \'re already logged in';     }  ?> 

now after adding

"e"

page says "all fields are required"

but even when fill all fields message do not change

like image 681
Mojtaba Avatar asked Nov 14 '13 11:11

Mojtaba


1 Answers

HTTP_REFERER is not guaranteed to be sent by the client:

The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.

In your case it's clearly not being sent, so really all you can do is

if(isset($_SERVER['HTTP_REFERER'])) {   //do what you need to do here if it's set        } else {    //it was not sent, perform your default actions here } 
like image 169
Stephen Byrne Avatar answered Sep 27 '22 17:09

Stephen Byrne