Newsgroup: it.comp.www.php
Titolo: variabili undefined

Stavo facendo un po' di allenamento con i form che richiamano sè stessi, ma 
ho qualche problema.
Innanzitutto vi posto lo script pronto all'uso:
<html>
</head>
<body>
<?php
$nome = $HTTP_POST_VARS['nome'];
$cognome = $HTTP_POST_VARS['cognome'];
if (empty($nome) || empty($cognome)) {
echo "<form method=\"post\" action=\"$PHP_SELF\">";
echo "Inserisci il tuo nome <input type=\"text\" name=\"nome\"<br>";
echo "Inserisci il tuo cognome <input type=\"text\" name=\"cognome\"<br>";
echo "<input type=\"submit\" value=\"Invia\">";
echo "<input type=\"reset\" value=\"Cancella\">";
} else {
echo "Benvenuto <b>$nome $cognome</b>";
}
?>
</body>
</html>
In pratica ho una serie di variabili indefinite, quali $nome, $cognome e 
$PHP_SELF.
Le prime due posso anche capirlo, in effetti alla prima apertura del form 
tali variabili sono indefinite, e vorrei ovviare a questo problema, ma non 
saprei in che modo se non con una @, ma spero ci sia una soluzione migliore.
Per quanto riguarda la variabile $PHP_SELF non capisco, non dovrebbe essere 
già definita?
ps: ho impostato register globals a off.
ciao pisolo

 $PHP_SELF.
[..]
tenta di capire cosa fa il codice che ti ho scritto e capirai perche' il tuo
codice genera comportamenti indesiderati..
$nome    = isset($_POST['nome'])    ? trim($_POST['nome'])    : '';
$congome = isset($_POST['cognome']) ? trim($_POST['cognome']) : '';
if ($nome != '' && $cognome != '') {
    echo "Benvenuto <b>$nome $cognome</b>";
} else {
    echo <<<form
<form method='POST' action='{$_SERVER['PHP_SELF']}'>
Nome <input type='text' name='nome' value='$nome' /><br />
Cognome <input type='text' name='cognome' value='$cognome' /><br />
<input type='submit' value='Invia' />
<input type='reset' value='Cancella' />
</form>
form;
}
-- 
www.iuz-lab.info

 ciao pisolo
ciao,
raenkrus

 </html>
Ti ringrazio raenkrus, in effetti č da anni che non tratto piů la 
programmazione e non ricordo praticamente piů niente. Ho ripreso il mio 
vecchio libro ma non č molto aggiornato a dire il vero... anzi, direi che č 
abbastanza antiquato .-) Comunque non ho particolari esigenze, ho intenzione 
di arrivare a ripassare fino alle sessioni per realizzare un semplice 
carrello ecommerce che applicherň sul mio sito.
ciao pisolo 

 }
Ok, iuz, devo analizzare il tuo codice con cura, perché ci sono alcuni 
particolari che mi sfuggono...
Adesso devo partire per una 10ina di giorni e non ho il tempo materiale per 
farlo, però stai certo che quando torno mi studio il tuo esempio. Non 
ricordo più la sintassi con il ?, in passato (lontano) la studiai ma adesso 
proprio non ho la più pallida idea di cosa rappresenti, ma se non ho perso 
del tutto la memoria su questo argomento, ricordo che è un'espressione 
alternativa ad una più semplice da leggere, così potresti ricordarmi il 
costrutto?
thx ciao pisolo 

 Non ricordo più la sintassi con il ?
Si chiama operatore ternario. Il primo record che mi è apparso su google
battendo - appunto - "operatore ternario" è questo:
http://javascript.html.it/guide/lezione/896/loperatore-ternario/
la pagina mi sembra ne riporti una spiegazione esauriente. Il fatto che
le lezioni attengano al javascript non ha alcuna importanza: nel php il
costrutto è identico.
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)