php - Aviso: Índice no definido: HTTP_REFERER
indexing undefined (5)
Aviso: Índice no definido: HTTP_REFERER
$ http_referer = $ _SERVER [''HTTP_REFERER'']
Utilicé esto de tutorial.y se ve bien
También el código lo está llamando desde el archivo incluido
¿Qué debo cambiar?
agregué print_r ($ _ SERVER); Y ahora la página me da esto.
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
)
Edité el código pero aún así no puedo repetir todos los archivos.
<?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'';
}
?>
ahora después de agregar
"mi"
la página dice "todos los campos son obligatorios"
Pero incluso cuando rellene todos los campos, el mensaje no cambia.
El índice no definido significa que la clave de la matriz no está establecida, haga un:
var_dump($_POST); die();
antes de la línea que arroja el error y vea que está intentando obtener una clave de matriz que no existe.
HTTP_REFERER no se envía para mí también, así que estoy usando esa combinación:
$my_url = $_SERVER[''SERVER_NAME''].$_SERVER[''REQUEST_URI''];
print_r($_SERVER)
para ver lo que se envió y lo que tomé que podría usar.
La forma correcta de referirse es
$my_referer = isset($_POST[''referer'']) ? trim($_POST[''referer'']) : (isset($_SERVER[''HTTP_REFERER'']) ? base64_encode($_SERVER[''HTTP_REFERER'']) : false);
HTTP_REFERER no está garantizado para ser enviado por el cliente:
La dirección de la página (si corresponde) que refirió al agente de usuario a la página actual. Esto es establecido por el agente de usuario. No todos los agentes de usuario configurarán esto, y algunos ofrecen la posibilidad de modificar HTTP_REFERER como una característica. En resumen, no se puede confiar realmente.
En su caso, claramente no se envía, así que realmente todo lo que puede hacer es
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'']}