Se ti vai a vedere le specifiche HTML per i form noterai che le variabili post il browser deve spedirle SOLO se hanno successo. Ciò significa per i radio input o per i checkbox che devono essere checkati altrimenti non hai la variabile.
http://www.w3.org/TR/REC-html40/interact/forms.html
Un modo per risolvere il problema potrebbe essere questo:
nello script che riceve i POST sai già che variabili dovrebbero arrivarti, quindi ipotizzando che in $_POST ci siano 'var1' e 'var2':
codice:
// copio post
$in = $_POST;
// se non esiste la chiave la setto come vuota.
if (!array_key_exists('var1' $in)) $in['var1'] = null;
if (!array_key_exists('var2' $in)) $in['var2'] = null;
oppure sapendo tutte le chiavi che ti arrivano:
codice:
// array che contiene tutte le variabili che dovrebbero arrivare
$dummy = array('var1', 'var2);
// copio post
$in = $_POST;
//ciclo i nomi delle variabili
foreach($dummy as $key)
{
if (!array_key_exists($key, $in)) $in[$key] = null;
}
oppure ancora potresti risolvere la cosa lato HTML.
Nel form PRIMA dell'input radio metti un input hidden con lo stesso nome:
codice:
<input type="hidden" name="var1" value="default"...>
<input type="radio" name="var1" ...>
Se selezioni il radio la variabile POST var1 è sovrascritta altrimenti ha il valore di value che hai settato nell'input hidden.
Ciao
Yuri