Newsgroup: it.comp.www.php
Titolo: E' possibile?

Ciao a tutti ragazzi.
Ho creato un sito amatoriale che fa uso di PHP per il codice e CSS per
l'impaginazione.
Sto provando a validare il codice dal sito del W3C ma ho notato che in
alcune pagine, anche se io non faccio uso della variabile PHPSESSID, nella
url dei link mi compare questa variabile con la notazione
&PHPSESSID=876876876.... In questo modo, visto che manca &amp; il codice non
viene validato. Come è possibile, secondo voi, che in alcune pagine la
variabile PHPSESSID viene aggiunta in automatico?

 alcune pagine la variabile PHPSESSID viene aggiunta in automatico?
http://groups.google.it/groups?q=group:it.comp.www.php+validare+w3c&scor
ing=d
[ 
http://url.repository.biz/go/4e
 ]
Il motivo risiede nell'attivazione del trans-sid, cerca sul manuale
ufficiale.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
L'uomo, conscio di sbagliare, persevera.

La cosa strana però è che tutto questo mi succede solamente per 4
collegamenti all'interno delle varie pagine, nonostante moltissimi altri
collegamenti funzionano perfettamente...
"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:OmTDc.23837$c_1.7...@twister1.libero.it...


Dall'indirizzo che mi hai postato (grazie 1000) ho notato che č possibile
settare queste variabili nel seguente modo:
php_value session.use_trans_sid 0
php_value arg_separator.input "&amp;"
php_value arg_separator.output "&amp;"
Domanda:
Dove devo mettere queste righe di codice??
"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:OmTDc.23837$c_1.7...@twister1.libero.it...


 Dove devo mettere queste righe di codice??
Per iniziare ti suggerisco 
http://wiki.news.nic.it/QuotarBene
Poi 
http://www.php.net/manual/en/configuration.php
e
http://www.php.net/iniset
-- 
I am what I am, I do what I can


 ufficiale.
Vediamo se ho capito qualcosa (mi riferisco anche al discorso del
"quoting"):
Io ho il mio bel sitarello con le pagine:
Pagina 1 Pagina 2 Pagina 3 Pagina 4
Le pagine sono collegate una di seguito all'altra e, supponiamo, io ho
bisogno di passare alcune variabili da pagina 2 a pagina 3.
All'inizio di pagina 1 scriverò:
<?php
     session_start();
?>
mentre nel link che porta alla pagina 2 scriverò:
<a href='pagina2.php?SID=". session_id() ."'> Pagina 2 </a>"; //oppure uso
un POST
Una volta che mi trovo in pagina 2 devo recuperare l'id della sessione per
poter riutilizzare le variabili salvate i pagina 1, e quindi:
<?php
     $SID = $_GET["SID"];
     session_id($SID);
     session_start();
?>
Tutto questo funziona.
Se non ho capito male il problema sta nel fatto che nel file php.ini del
server in cui sono ospitate le pagine la riga:
session.use_trans_sid è settata ad 1
Quello che non capisco è: Se setto questa riga ad 1 significa che tutti i
link delle mie pagine conterranno in automatico il SID, che nel caso
particolare del server in questione la variabile si chiama PHPSESSID, oppure
solo alcuni (ma quali?) link conterranno la variabile PHPSESSID passata
tramite l'url?
Inoltre ho la possibilità di modificare la stringa session.use_trans_sid  e
settarla a 0 solo per le mie pagine web?
Mi spiego meglio, non credo di poter modificare il file php.ini che risiede
sul server dove sono ospitate le mie pagine web, però c'è il modo di
disabilitare qualche opzione su tale server-web? oppure in parole povere
come devo fare? Ho cercato sulla documentazione online che si trova su
internet ma essendo alle prime armi con Php non è che sono riuscito a
capirci molto!
Grazie 1000!
P.S. Ho quotato meglio? (grazie per la tiratina d'orecchie che mi hai fatto,
ho scritto chissà quanti messaggi sui newsgroup senza sapere come era giusto
scriverli,  Appena ho un secondo di tempo leggerò bene la guida al quoting
dal link che mi hai postato)

 session.use_trans_sid  e settarla a 0 solo per le mie pagine web?
http://www.php.net/ini_set
 se sei sotto Apache ed esso e' configurato
per lo scopo puoi utilizzare un file .htaccess
-- 
I am what I am, I do what I can


variabile PHPSESSID viene aggiunta in automatico?
lo stesso problema che ho avuto poco tempo fa' io.
Se non puoi modificare il php.ini la cosa piu' semplice e' inserire
queste righe di codice nella pagina (io le ho inserite nell head)
//impostazioni PHP.ini
ini_set ("session.use_trans_sid", "0");
ini_set ("arg_separator.output", "&amp;");
ini_set ("arg_separator.input", "&amp;");
in pratica PHP usa il carattere & (per i parametri nei link) ma per
questioni di compatibilita' e' corretto utilizzare l'entita'  &amp;
(che restituisce ugualmente il carattere &).
La prima istruzione dovrebbe nascondere il session_id (cioe' la
variabile PHPSESSID).
-- 
Scritto da Gordon
E-mail: tbeqba@_EVZHBIVZV_avpu.vg

collegamenti funzionano perfettamente...
il PHP aggiunge la variabile PHPSESSID solo nei collegamenti che hanno
dei parametri. Per i link normali non aggiunge nulla.


ini_set ("arg_separator.input", "&amp;");
nota: le stesse opzioni le trovi nel file php.ini
Se hai la possibilita' di modificare il php.ini conviene modificarlo
piuttosto che usare queste funzioni.


 ini_set ("arg_separator.input", "&amp;");
Improbabile.
arg_separator.input => PHP_INI_SYSTEM|PHP_INI_PERDIR 


arg_separator.input => PHP_INI_SYSTEM|PHP_INI_PERDIR 
comunque arg_separator.output funziona (ed e' quello che risolve il
problema).


 ini_set ("arg_separator.input", "&amp;");
Grandioso... Adesso sembra funzionare, però c'è ancora un piccolo problema:
Io nell'intestazione della pagina ho scritto:
<head>
<title>.....</title>
<link rel="stylesheet" type="text/css" href="css.css" />
<meta name="description" content="....." />
<meta ...
<meta ...
<meta ...
<?php
//impostazioni PHP.ini
ini_set ('session.use_trans_sid', '0');
ini_set ('arg_separator.output', '&amp;');
ini_set ('arg_separator.input', '&amp;');
?>
</head>
Quando vado a validare il codice mi viene fuori un errore del genere:
Line 12, character 6:
<meta</head>
     ^
Error: unclosed start-tag
Line 12, character 6:
<meta</head>
     ^
Error: required attribute content not specified
Line 12, character 12:
<meta</head>
           ^
Error: end tag for meta omitted; end tags are required in XML for non-empty
elements; empty elements require an end tag or the start tag must end with
/>
Line 12, character 1:
<meta</head>
^
start tag was here

Error: unclosed start-tag
Mi sembra che ci sia un errore di scrittura (se noti il tag meta non
e' chiuso e c'e' subito il tag di chiusura </head>)
Hai fatto un copia e incolla dal tuo codice o mi hai postato un codice
scritto "a memoria"? 
Ma questo errore appare solo adesso (dopo l'inserimento del nuovo
codice PHP) o c'era gia' da prima?


 codice PHP) o c'era gia' da prima?
E' questo il problema... L'errore appare adesso, mentre prima mi appariva
l'errore relativo al &PHPSESSID che non era scritto correttamente
&amp;PHPSESSID, ma l'errore relativo all'HEAD č comparso dopo le modifiche,
che risolvono il primo problema ma creano il secondo problema.