Avis: Index non défini: HTTP_REFERER
$ http_referer = $ _SERVER ['HTTP_REFERER']
je l'ai utilisé à partir de tutoriel.et il semble bien
aussi le code appelle de l'inclusion de fichier
que devrais-je changer?
J'ai ajouté print_r ($ _ SERVER); et maintenant la page me donne ceci
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
)
édité le code mais toujours incapable de faire écho à tous les fiedds sont nécessaires
<?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';
}
?>
maintenant après avoir ajouté
"e"
la page indique "tous les champs sont obligatoires"
mais même quand remplir tous les champs le message ne change pas
HTTP_REFERER n'est pas garanti d'être envoyé par le client:
L'adresse de la page (le cas échéant) qui a renvoyé l'agent utilisateur à la page en cours. Ceci est défini par l'agent utilisateur. Tous les agents utilisateurs ne le définiront pas, et certains offrent la possibilité de modifier HTTP_REFERER en tant que fonctionnalité. En bref, on ne peut pas vraiment faire confiance.
Dans votre cas, il est clair que vous envoyez pas, vous ne pouvez donc tout simplement que faire.
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']}
Un index non défini signifie que la clé du tableau n'est pas définie, procédez comme suit:
var_dump($_POST); die();
avant la ligne qui renvoie l'erreur et que vous essayez d'obtenir une clé de tableau qui n'existe pas.
La bonne façon de faire est de
$my_referer = isset($_POST['referer']) ? trim($_POST['referer']) : (isset($_SERVER['HTTP_REFERER']) ? base64_encode($_SERVER['HTTP_REFERER']) : false);
HTTP_REFERER n'est pas envoyé pour moi aussi, donc j'utilise cette combinaison:
$my_url = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
J'ai utilisé print_r($_SERVER)
afin de voir ce qui était envoyé et pris que je pouvais utiliser.