Newsgroup: it.comp.www.php
Titolo: HTTP_REFERER

Un piccolo problema:
vorrei autenticarmi attraverso un form, visualizzare un messaggio, e
tornare alla pagina da cui è partita la richiesta di autenticazione.
Ho provato a usare $_SERVER['HTTP_REFERER'] ma ovviamente si riscrive
(il form usa PHP_SELF per processare i contenuti e visualizzare il
messaggio).
Come posso fare ?
TIA,
	nicholas

 ha
scritto:

Non puoi inserire un campo hidden nel form d'origine che contiene il
REFERER, e poi usare questo dato per far tornare il link alla pagina
originaria?
HTH
Silvio Porcellana
Senior Programmer
-----------------------------------------------------------------------------------
Trovanome.it - 
http://www.trovanome.it
Se non vuoi essere solo un numero...hai bisogno di un nome!
-----------------------------------------------------------------------------------
--------------------------------
Inviato via 
http://usenet.libero.it

 posted this:

Direi di usare nel form un INPUT type=hidden nel quale codifichi 
la pagina da raggiungere dopo l'autenticazione (cosi sei anche piu' 
libero di fare redirect su altre pagine). Oppure passi una query 
string al action di autenticazione.
In ogni caso piu' reliable cosi.

 : 

Ok per il campo hidden, non ci avevo proprio pensato :)
Grazie a entrambi !
	nicholas

 ha scritto nel messaggio
news:bdc857$pjo$2...@newsread.albacom.net...

Ho affrontato questo problema proprio oggi, ti mando il codice delle 2
pagine di prova:
--------------------------- index.php--------------------------------------
<?PHP
session_start();
echo "Pag1<br><br>";
if (!$utente_loggato)
{
 if (isset($login_error_message))
 {
  echo "$login_error_message<br>";
  session_unregister("login_error_message");
 }
 echo "
  <form action=\"action_utente.php\" name=\"frmLogin\" id=\"frmLogin\">
   Username:<br>
   <input type=\"text\" name=\"frm_user\" value=\"\"><br><br>
   Password:<br>
   <input type=\"password\" name=\"frm_pass\" value=\"\"><br><br>
   <input type=\"hidden\" name=\"login_request\" value=\"1\"><br>
   <input type=\"submit\" value=\"Login\"><br>
  </form><br>
  Nuovo Utente?<br>
  <a href=\"registrazione.php\">Registrati!!</a><br><br>
 ";
}
else if ($utente_loggato)
{
 echo "ciao $user $id_utente";
 echo "
  <form action=\"action_utente.php\" name=\"frmLogin\" id=\"frmLogin\">
   <input type=\"hidden\" name=\"logout_request\" value=\"1\"><br>
   <input type=\"submit\" value=\"Logout\"><br>
  </form><br><br>
 ";
}
echo "<a href=\"index2.php\">pag2</a>";
?>
--------------------------- 
riconoscimento.php--------------------------------------
<?php
session_start();
if ($login_request)
{
 if (!($frm_user)) // sono stati riempiti tutti i campi?
 {
  $login_error_message = "<div align=\"center\"><br><h1>Riempi tutti i
campi!</h1><br></div>";
  session_register("login_error_message");
  Header ("Location: $HTTP_REFERER");
 }
 else
 {
 // -- INIZIALIZZAZIONE E CONNESSIONE A DB --
  $hostdb = "localhost";
  $userbd = "root";
  $passdb = "";
  $db = "davide";
  $tabella = "utenti";
  $linkdb = mysql_connect($hostdb,$userdb,$passdb);
  if (! $linkdb) die("impossibile connettersi");
  mysql_select_db($db) or die("Impossibile aprire
$database:<br>".mysql_error());
  $query = "SELECT * FROM utenti WHERE user = '$frm_user'";
  $result = mysql_query($query);
  $nrecords = mysql_num_rows($result);
  $record = mysql_fetch_assoc($result);
  if (!$nrecords)
  {
   $login_error_message = "<div align=\"center\"><br><h1>
    Username errato!</h1><br></div>";
   session_register("login_error_message");
   Header ("Location: $HTTP_REFERER");
  }
  else if ($record[pass] != $frm_pass)
  {
   $login_error_message = "<div align=\"center\"><br><h1>
    Password errata!</h1><br></div>";
   session_register("login_error_message");
   Header ("Location: $HTTP_REFERER");
  }
  else
  {
   $user = $record[user];
   session_register("user");
   $id_utente = $record[id];
   session_register("id_utente");
   $utente_loggato = true;
   session_register("utente_loggato");
   Header ("Location: $HTTP_REFERER");
  }
 }
}
?>
La pagina di riconoscimento non deve usare html prima dell'header!!
                Ciao
                            Davide