Newsgroup: it.comp.www.php
Titolo: Cookies - Accesso in localhost

Ho installato EasyPHP 1.6 su XP (prima lo usavo su ME con la stessa versione
di PHP).
Ripreso il lavoro sviluppato sulla piattaforma precedente, utilizzo i cookie
con utente e password per accedere ad una area protetta, impostazione questa
che funzionava bene sia in locale che su web. Ora però sul nuovo Pc quando
lavoro in localhost non riesco più ad avere l'accesso. Il codice è allineato
con il web, quindi non dovrebbe essere questo il problema. L'abilitazione
del browser accetta comunque i cookie, visto che funzionano quando accedo
regolarmente all'area protetta collegandomi alla versione su web.
Avete qualche suggerimento? Cosa devo controllare? Grazie per l'aiuto.
--
    yVega

Fri, 11 Mar 2005 21:48:09 GMT, "yVega" <yv...@QUESTOVATOLTOtin.it> ha
detto:

Posta un pò di codice...comunque memorizzare utente e password in un
cookie non è proprio il massimo della sicurezza e delle prestazioni.
Francesco Mazzi
Webmaster di AltroPC.it - 
http://www.altropc.it
 
Project Admin di "PHP Reservation - Online booking system" - 
http://phpreservation.sourceforge.net
Dev.Staff di E-Xoopport - 
http://dev.e-xoopport.it

Non capisco cosa sia cambiato, il codice č lo stesso, in rete funziona, ma
in locale non ci riesco piů.... non ci capisco piů niente.
________________________________________
function is_admin($admin) {
    global $prefix, $dbi;
    if(!is_array($admin)) {
  $admin = base64_decode($admin);
  $admin = explode(":", $admin);
        $uname = "$admin[1]";
  $pwd = "$admin[2]";
    } else {
        $uname = "$admin[1]";
  $pwd = "$admin[2]";
    }
    if ($uname != "" AND $pwd != "") {
  $result = sql_query("select pwd from ".$prefix."_users where
uname='".set_dbtexts($uname)."' and status='1'", $dbi);
  list($pass) = sql_fetch_row($result, $dbi);
  if($pass == $pwd && $pass != "") {
      return 1;
  }
    }
 setcookie("admin");
    return 0;
}
function set_cookie($setuid, $setuname, $setpwd, $setuemail, $setuasuper,
$uaareas) {
    $info =
base64_encode("$setuid:$setuname:$setpwd:$setuemail:$setuasuper:$uaareas");
    setcookie("admin","$info",time()+2592000);
}

Qualche idea che mi possa aiutare a risolvere il problema?


Ma qual è l'errore???


 Ma qual č l'errore???
Non mi si presenta nessun errore, ma non mi funziona piů niente in locale,
tutto qui.
Ho cambiato macchina ed ho reinstallato EasyPHP 1.6 su XP (prima lo usavo la
stessa versione su 2000 prima e su ME poi).
Il codice č lo stesso che uso in rete, ma mentre in internet funziona in
locale non da cenni.
La pagina permette di inserire utente e password che salva come cookie. Una
volta entrato ricarica semplicemente la stessa pagina con ulteriori accessi
a link vari. In locale questo non avviene piů, non mi si settano i cookie
mentre navigo in localhost, mentre tutto funziona se mi collego alla stessa
pagina pubblicata in rete.
Probabilmente č una caz..ta, ma non riesco a venirne fuori e non mi ricordo
cosa ho fatto a suo tempo sull'altro computer.
Un niubbie disperato....

Un niubbie disperato....
L'unica cosa che vedo è che non specifichi il path di validità del
cookie, prova ad inserire "/" come quarto parametro.



Non ti seguo...

Non ti seguo...
function set_cookie($setuid, $setuname, $setpwd, $setuemail,
$setuasuper,
$uaareas) {
    $info =
base64_encode("$setuid:$setuname:$setpwd:$setuemail:$setuasuper:$uaareas");
    setcookie("admin","$info",time()+2592000,"/");


 cookie, prova ad inserire "/" come quarto parametro.
Ho provato il tuo suggerimento, Francesco, ma non cambia nulla, credo che
funzionando prima e funzionando in rete non sia questo il problema. Forse
riguarda le impostazioni di Php o di Apache, fatto sta che non riesco più a
settare i cookie in ambiente di sviluppo accedendo al sito locale, mentre
prima e  in rete...
scusatemi, ma mi sto mordendo le dita e le sto quasi finendo... ;-((((