Condividi:        

PHP e Cookies

Discussioni e opinioni costruttive sul mondo dell'informatica.
Per la soluzione di problemi specifici fare riferimento alle sezioni di assistenza!

Moderatori: aurelio37, Anthony47, axelrox

PHP e Cookies

Postdi Triumph Of Steel » 05/03/02 12:03

Salve.... spero di non essere troppo OffTopic...

Allora...
Avrei bisogno di proteggere una sezione di un sito da login ...
UserName e Password risiedono su DB MySQL
Per fare questo vorrei creare dei cookies, ma a quanto pare non riesco...

ho provato anche a fare una singola pagina con questo tag
<?
setcookie("thor","",time()+3600);
Header("Location: admin.php");
?>
però non mi crea il cookie .. dove sbaglio??
se qualcuno ha un sito o un script, o direttamente uno script per fare ciò, se me lo può mandare, ... grazie!!!

ovviamente mi seriverebbe anche il controllo su username e password.. ma quello dovrebbe già funzionare ... provato senza cookies e va .. però non basta xchè la pagina dopo non sarebbe protetta ...
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Sponsor
 

Postdi Triumph Of Steel » 05/03/02 12:48

mhmhm credo di aver capito forse il problema...

il codice non mi crea il PHP se metto quell'HEADER LOCATION
subito dopo...

qualche idea??
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

attenzione all'header!

Postdi kermit » 05/03/02 14:30

Una cosa importante del cookie in PHP è che esso viene spedito assieme all'header della risposta HTTP!

Questo significa che il setcookie deve apparire (come riga d'istruzione) prima di qualsiasi tag html (foss'anche <HTML>) e prima di ogni altra istruzione che possa generare un output sulla pagina!!!

Prova a vedere se è per questo!

L'istruzione Header("Location: pippo.php") è un'altra istruzione che invia informazioni nell'header della pagina, quindi anch'essa deve comparire prima di qualsiasi altro output!

Saluti e... MANOWAR 4EVER!!!! ^___^
.oO Kermit Oo.
The MAN beta version
(and God said:"pkunzip -d universe.zip")
Silent Eyes WebSite HeteroGenius DevTeam
kermit
Utente Junior
 
Post: 16
Iscritto il: 26/02/02 18:05
Località: Milano

Postdi Triumph Of Steel » 05/03/02 16:01

il codice che ho scritto sopra.. era SOLO quello...
cioè non c'era nessun OutPut .. solo
<?
ecc ecc..
?>

solo TAG PHP ...

cmq ho risolto ancora un pezzetto .. ora mi crea il cookie (sbagliavo la sintassi non del PHP ma del cookie stesso...)

Ora mi dovrò cimentare nel fare un login che funzioni e che interagisca con il DB e Cookie. ..

se ho problemi.. ovviamente,... vi faccio partecipi del mio dolore :o
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Meglio così!!

Postdi kermit » 05/03/02 17:13

Ad ogni modo, se hai problemi contattami anche via mail! ^__^

Bello il tuo sito!

Saluti!
.oO Kermit Oo.
The MAN beta version
(and God said:"pkunzip -d universe.zip")
Silent Eyes WebSite HeteroGenius DevTeam
kermit
Utente Junior
 
Post: 16
Iscritto il: 26/02/02 18:05
Località: Milano

Postdi Triumph Of Steel » 05/03/02 18:34

Grazie...

visto che ormai siamo in tema di siti...
posso chiederti quanto paghi per il tuo spazio??
Ogni volta che c'è un sito che offre PHP+MySQL dopo 3 giorni decide di non dare + spazio...

non voglio spendere tanto.. ad es., l'offerta Aruba non è affatto male... pekkato che non offra DB MySQL, che mi tokkerebbe prenderlo esterno e sarebbe mooooolto lento...
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

NOOOOOOOOOO!!!!!

Postdi kermit » 06/03/02 09:50

sssantodddio, ti prego, non prendere spazi da Aruba!!! :o
Nemmeno sotto tortura!

Allora, io pago un c***o xè sta tutto sul server della ditta dove lavoro! ^_^ (indovina chi è l'amministratore di sistema?)

Per quanto riguarda web-hosting bello e funzionante non posso che consigliarti LaserSat. Non so chi siano ma l'anno scorso abbiamo preso (con amici) uno spazio da loro. Ti offrono spazio su server linux o winzozz e in entrambi i casi ti danno PHP/MySQL. So che l'anno scorso c'era in ballo un'offerta interessante per i prezzi. Ad ogni modo, http://www.lasersat.it e guarda. La banda è tanta, il servizio è ottimo e non avrai da lamentarti. Almeno a esperienza mia!

Baci!
.oO Kermit Oo.
The MAN beta version
(and God said:"pkunzip -d universe.zip")
Silent Eyes WebSite HeteroGenius DevTeam
kermit
Utente Junior
 
Post: 16
Iscritto il: 26/02/02 18:05
Località: Milano

Postdi Triumph Of Steel » 06/03/02 16:33

Grazie mille.. ho dato un'okkio al sito..
no sarebbe per niente male quell'offerta PIKKOLA 2.86€ al mese + IVQ (circa 100.000 £ .. poco meno... all'anno) ...

l'unica pekka.. lo spazio.. 10MB ... mhmh almeno 20.. ma si sale di prezzo... cmq tengo conto..

Per i Cookies:
Cosa strana...
Sul mio PC funzionano (Windows XP con Apache);
Sul PC dell'ufficio funzionano (RedHat 7.2 con Apache);
Su Aruba no!
stesse pagine, stesso DB ....
che ca**o!!!!!!
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Appunto!

Postdi kermit » 07/03/02 09:24

Qui in ufficio abbiamo uno stageista, un ragazzo che ha fatto un corso di webdesign ad Abbiategrasso. Beh, ha fatto un sito per i fatti suoi e l'ha messo su Aruba. E per un mese ha creduto di non essere capace di programmare, visto che non andava una s... bega di niente!

Aruba è il peggior provider ke esista sulla terra (non ho visto nulla di quelli guatemaltechi ma sono pronto a scommettere che anche la c'è di meglio!)... semplicemente evitalo! ^_^

Stay heavy!
.oO Kermit Oo.
The MAN beta version
(and God said:"pkunzip -d universe.zip")
Silent Eyes WebSite HeteroGenius DevTeam
kermit
Utente Junior
 
Post: 16
Iscritto il: 26/02/02 18:05
Località: Milano

Postdi Triumph Of Steel » 07/03/02 12:59

Ok Kermit... ho risolto...

praticamente su Aruba non c'era il "tempo" pre creare il cookie.
Ovvero.
mettendo
setcooki("name","mionome", ecc ecc);
header ("Location:admin.php");

lui faceva il redirect senza avere il tempo di creare il cookie...

ho risolto mettendo un META REFRESH di 3 secondi...

però che cazz....
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

uhmmmm...

Postdi kermit » 07/03/02 15:14

Questa è molto carina...

fammi capire: inviando un header con un cookie e poi facendo un redirect il client può voler effettuare prima il redirect del setcookie???!! O_o'

questa è davvero comica! Che client stai usando?
In teoria non ha molto senso... la risposta http arriva al client tutta in blocco, non un header-line alla volta...

eppoi è il client che si smazza la ridirezione... uhm... scusa, che client stai usando?
.oO Kermit Oo.
The MAN beta version
(and God said:"pkunzip -d universe.zip")
Silent Eyes WebSite HeteroGenius DevTeam
kermit
Utente Junior
 
Post: 16
Iscritto il: 26/02/02 18:05
Località: Milano

Postdi Triumph Of Steel » 07/03/02 18:04

Allora.. il tutto testato su server Aruba:

succede questo:

se io metto nella pagina (vuota) con ovviamente i tags <? ?> di php:

setcookie('nome','valore','ecc...ecc.');

Apro IE (6.0) in quella pagina, lui crea il cookie

Se io metto:
setcookie('nome','valore','ecc...ecc.');
header ("Location: pagina.php");


lui non crea il cookie ...

cosa può essere???
Mettendo invece
setcookie('nome','valore','ecc...ecc.');
echo "<meta refresh ecc.. di 3 secondi>"


lui mi crea il cookie ... a questo punto mi viengono i mente 2 cose:
1. Che non abbia il tempo di creare il cookie;
2. Che l'header cancelli il cookie
3. Che viene eseguito tutto insieme, quindi con l'header cambia pagina e non ha quindi il tempo di eseguire la funziona di cookie;

bah! :eeh: :?:
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

si, ho capito

Postdi kermit » 08/03/02 12:10

L'hai detta giusta!

Guardiamo una http-response standard! Gli header di location sono PRIMA delle info sui cookie, quindi se nella header c'è una ridirezione e la risposta http non ha corpo (body) succede che il browser non considera il resto della risposta, in quanto comunque vuota!

Mettendo un tag meta, invece, crei un body valido per la risposta, quindi questa viene per forza caricata e il cookie-header viene letto ed eseguito, essendo posto tra l'header "Location" e il body!

In teoria dovrebbe funzionare anche se invece che il meta refresh dovessi mettere un qualunque tag HTML! Provaci, magari scopriamo qualcosa di nuovo per entrambi!

In pratica non è l'attesa che permette a IE di settare il cookie, bensì la sola presenza del tag meta!

...o almeno, mi pare plausibile!

Fa sapere, se hai voglia di provare a cambiare tag! Salutoni!
.oO Kermit Oo.
The MAN beta version
(and God said:"pkunzip -d universe.zip")
Silent Eyes WebSite HeteroGenius DevTeam
kermit
Utente Junior
 
Post: 16
Iscritto il: 26/02/02 18:05
Località: Milano

Postdi Triumph Of Steel » 08/03/02 12:41

Credo che il tuo ragionamento non abbia bisogno di prove...

in effetti ... sembra che cmq il cookie abbia bisogno di un qualcosa nella pagina...
che sia questo anche un semplice testo "A" senza tag...

cmq.. per ora funziona così...

:P
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi kermit » 08/03/02 13:34

La cosa è interessante, non avevo mai usato il cookie e la redirection nella stessa pagina! Facilmente avrei avuto prolemi analoghi ai tuoi e ci avrei sbattuto la testa per ore! ^__^

Grazie!

A proposito, prima mi sono spiegato davvero male! Hai capito come mai se non hai qualcosa nella pagina il cookie non viene scritto?
.oO Kermit Oo.
The MAN beta version
(and God said:"pkunzip -d universe.zip")
Silent Eyes WebSite HeteroGenius DevTeam
kermit
Utente Junior
 
Post: 16
Iscritto il: 26/02/02 18:05
Località: Milano

Postdi Triumph Of Steel » 08/03/02 19:17

Questo no... ma su php.net (documentation) dice che il cookie verrà scritto al RELOAD della pagina, o qualcosa di simile...
quindi mettendo un TAG subito dopo il cookie, questo crede che la pagina sia stata ricaricata, e quindi lo crea...
evidentemente con il redirect, non funziona...

strana cosa perchè mi sa che PHPNuke è fatto in questo modo. e funge.. magari mi è sfuggito qualcosa...
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi kermit » 09/03/02 14:40

uhm... no! Intendevo un'altra cosa!

Ti conviene guardare com'è fatta una richiesta HTTP (e relativa risposta)... il discorso è che se non invii niente come output HTML della pagina la ridirezione avviene PRIMA che al browser arrivi il valore del cookie che vuoi impostare!

Questo perchè l'ordine degli header della risposta HTML e:

Location: indirizzo
[...]
Cookie PIPPO="valore"
[...]

CORPO DELLA PAGINA

Il corpo viene visualizzato se non è vuoto, altrimenti il server sapendo che non deve inviare nulla di visibile al browser, ridireziona senza inviare nulla di quello che sta dopo l'header 'Location'. Questo significa che per forzare il caricamento di tutte le righe successive alla "Location: blabla" devi x forza inserire qualcosa nell'output dello script!

Fa comodo (e pregio! ^_^) studiarsi come sono fatte le request/response! Ci puoi fare cose esagerate!

Saluti!
.oO Kermit Oo.
The MAN beta version
(and God said:"pkunzip -d universe.zip")
Silent Eyes WebSite HeteroGenius DevTeam
kermit
Utente Junior
 
Post: 16
Iscritto il: 26/02/02 18:05
Località: Milano


Torna a Discussioni


Topic correlati a "PHP e Cookies":

SETTAGGIO COOKIES
Autore: GIORDANO
Forum: Sicurezza e Privacy
Risposte: 0

Chi c’è in linea

Visitano il forum: Nessuno e 18 ospiti