Newsgroup: it.comp.www.php
Titolo: Scrittura/Lettura Cookis su LAMP Ubuntu

Salve,
sto provando il server LAMP di ubuntu (solo terminale).
Ho un piccolo problema.
Ho un sito funzinoanate che dopo il login mi scrive un cookie...
Pero' provandolo su questo server non mi funziona.
Infatti dopo che l'ho scritto, in una altra pagina lo leggo e non lo trova.
Il php montato su di questo server e' la versione 5.
Devo modificare qualcosa nel file php.ini?
Per la lettura uso la seguente sintassi:
$_COOKIE["Name_Cookie"]
E per la scrittura:
@setcookie ("Name_cookie","pippo",time()+3600);
Cosa sto sbagliando?
Grazie
xoooox
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 
Sei sicuro che lo scrive?? mettendo il @ nascondi eventuali errori 
generati dal comando setcookie  (p.e. header già inviati...)
	Francesco

 Francesco



Vorrei aggiungere che il server non ha un alias ma solo un indirizzo IP,
infatti quando mi collego con il browser: 
http://xxx.xxx.xxx.xxx/index.php
Questo sito l'ho provato in locale su winXP con apache,mysql e php
installato,
e mi gira alla perfezione.
Grazie


 started at /var/www/senddata.php:6) in /var/www/myfunctions.php on line 232
Quindi, se non risolvi l'errore non scrivi i cookies!
Prima del setcookies invii qualcosa al browser (può essere anche una rga
vuota prima del <?PHP!) 
   Francesco
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 started at /var/www/senddata.php:6) in /var/www/myfunctions.php on line 232
Stai producendo output prima di mandare l'header e questo non si può 
fare, non-nò non-nò.


Ho fatto una prova con questa pagina, ma non cambia nulla, mi da sempre
errore:
<html>
<head>
<title>Prova</title>
</head>
<body>
<?php
setcookie("Pippo","Pluto",3600*10);
?>
</body>
</html>
Non capisco perche' in locale mi funziona (winXp/apache/php)..!!
Mi potresti dire cosa dovrei modificare?
Grazie


 Mi potresti dire cosa dovrei modificare?
Certo e a costo di sembrare ripetitivo non puoi produrre output prima di 
impostare un header (il setcookie lavora con gli header).
Prova con:
<?php
setcookie("Pippo","Pluto",3600*10);
?>
<html>
<head>
<title>Prova</title>
.
.
.

 Non capisco perche' in locale mi funziona (winXp/apache/php)..!!
Forse in locale hai l'output buffering impostato di default.
Vedi la direttiva output_buffering nel file php.ini. 
Ciao.
-- 
Federico

 Vedi anche 
http://php.net/header
.
Pardon, volevo scrivere 
http://php.net/setcookie
.
-- 
Federico


Ho cambiato le impostazioni del file php.ini
output_buffering = off
in
output_buffering = 4096
e l'errore e' scomparso.
Pero' quando eseguo il seguente codice non riesco a leggere il cookie
creato:
<?php
setcookie("Pippo","Pluto",time()+3600*10);
?>
<html>
<head>
<title>Prova</title>
</head>
<body>
<?php
echo "XXX".$_COOKIE["Pippo"]."XXX";
?>
</body>
</html>
Se provo questo codice sotto winXp pero' funziona.
C'e' qualche altra impostazione da provare?
grazie


 Se provo questo codice sotto winXp pero' funziona.
Forse perché il cookie c'è già da prove precedenti.
Ciao.
-- 
Federico


Ho notato che il php.ini di win e' cosi:
error_reporting = E_ALL | E_STRICT
mentre quello del server e' cosi:
error_reporting = E_ALL & ~E_NOTICE
Potrebbe cambiare qualcosa?


 Potrebbe cambiare qualcosa?
Sì, per esempio nel primo caso se provi a visualizzare una variabile non
definita viene sollevato un Notice, nel secondo no. In fase di sviluppo
ritengo che sia buona norma riportare "a video" tutti i possibili
errori (compresi i Notice e gli Strict). In produzione - se possibile -
è meglio salvare i messaggi d'errore in un file di log, senza mostrarli
all'utente, agendo opportunamente sulle direttive display_errors e
log_errors ed error_log.
Per i dettagli su error_reporting vedi 
http://php.net/error_reporting
.
Ciao.
-- 
Federico