Newsgroup: it.comp.www.php
Titolo: scusate ma mi sembra impossibile...

Vorrei capire la seguente cosa:
se $username = "Dam" (restituito dalla funzione auth_user)
come mai la funzione alla condizione "if ($username == 0)"
non salta al relativo else "else echo "welcome, $username!";"
ma mi esegue la condizione vera?
if (!isset($userid)) {
 login_form();
 exit;
}
else {
     session_register("userid","userpassword");
     $username = auth_user($userid,$userpassword);
     if ($username == 0) {
            session_unregister("userid");
            session_unregister("userpassword");
            echo "Autorizzazione fallita. ".
            "Devi inserire un valido username e password. " .
            "Clicca qui per provare ancora.<br>\n";
            echo "<a href=\"$PHP_SELF\">Login</a><br>";
            echo "Se non sei registrato clicca qui per registrarti.<br>\n";
            echo "<a href=\"$register_script\">Registrazione</a>";
            exit;
    }
    else echo "welcome, $username!";
}
grazie!
ringo

 ha scritto nel messaggio
news:bdc97h$q95$1...@newsread.albacom.net...

Prova con
else { echo "welcome, $username!"; }

 posted this:


Fai vedere auth_user...
cmq.
se function auth_user
{
    // roba autent
	return ""; // non trovato
}
Potresti verificare con
  if ($username=="")
  {
  }
oppure se hai
  function auth_user
  {
    // roba autent
      return FALSE; // non trovato
  }
  DEVI verificare con
  if ($username=== FALSE)
  {
  }
 

 ha scritto nel messaggio
news:cVhKa.140133$pR3.3...@news1.tin.it...

no non vuole sapere di andare :-(


Fai un "echo $username", sei sicuro che 'auth_user' restituisca il nome
utente, o che non sia piuttosto '$userid' (che tra l'altro é uno degli
elementi per fare l'autenticazione...)?
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

 ha scritto nel messaggio
news:12iKa.39869$Fr5.8...@tornado.fastwebnet.it...

auth_user.php
function auth_user($userid, $userpassword) {
 global $default_dbname, $user_tablename;
 $link_id = db_connect($default_dbname);
 $query = "select username from $user_tablename
        where userid = '$userid'
        and userpassword = '$userpassword'";
 $result = mysql_query($query);
 if (!mysql_num_rows($result)) return 0;
 else {
  $query_data = mysql_fetch_row($result);
  return $query_data[0];
 }
}

 ha scritto nel messaggio
news:80Z181Z54Z92Y1...@usenet.libero.it...

ho già provato e mi stampa "Dam"...
:-(

 }
Hmmmm, strano e'...
Per pasticciare farei:
 if (!mysql_num_rows($result)) return "";
e nel tuo test:
if ($username=="")
{
}
Aggiungerei anche per togliersi ogni dubbio (non in produzione!!!!)
 $result = mysql_query($query) or die("Query: $query ".mysql_error());
 
il metodo non e' molto carino (IMHO) 
farei un auth_user che torna BOOL
ed il username viene passato con &$username nella lista dei parametri
se viene ricavato
Altra cosa molto importante:
la tua query al database e' pericolosa se non hai precauzioni nel 
form ecc. Spiego: 
se un utente mette come userid o password ' OR 1 OR ' (con apici)
ti dara' il primo utente perche' la query diventa sempre true... 

            session_unregister("userid");
Qui sopra, dovevi scrivere "$username === 0", con tre =.
Ma meglio ancora, visto che auth_user ritorna una stringa, non
sarebbe meglio fargli ritornare una stringa vuota?
	return '';
e poi
	if ('' == $username)
	{
		session_unregister...
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.