Примечание. Неопределенный индекс: HTTP_REFERER
$ http_referer = $ _SERVER ['HTTP_REFERER']
Я использовал это из tutorial.and это выглядит хорошо
также код вызывает его из файла
что я должен изменить?
Я добавил print_r ($ _ SERVER); и теперь страница дает мне это
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] => webmaster@movafaghha.memarestan.com [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 )
отредактировал код, но все еще не в состоянии повторить все вожатые.
<?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'; } ?>
теперь после добавления
«Е»
страница говорит, что «все поля обязательны»
но даже при заполнении всех полей сообщение не изменяется
HTTP_REFERER не может быть отправлен клиентом:
Адрес страницы (если есть), которая ссылалась на пользовательский агент на текущую страницу. Это устанавливается пользовательским агентом. Не все пользовательские агенты установят это, а некоторые предоставляют возможность изменять HTTP_REFERER как функцию. Короче говоря, на это нельзя доверять.
В вашем случае это явно не отправляется, так что действительно все, что вы можете сделать, это
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 }
if (isset($_SERVER['HTTP_REFERER'])) {$THE_REFER=$_SERVER['HTTP_REFERER']}
Правильный способ реферирования
$my_referer = isset($_POST['referer']) ? trim($_POST['referer']) : (isset($_SERVER['HTTP_REFERER']) ? base64_encode($_SERVER['HTTP_REFERER']) : false);
Неопределенный индекс означает, что ключ массива не установлен, выполните следующие действия:
var_dump($_POST); die();
перед строкой, которая выдает ошибку и видит, что вы пытаетесь получить ключ массива, который не существует.