Problema di Undefined variable nel codice PHP

ppigna

Utente Attivo
23 Dic 2013
63
0
0
Buongiorno a tutti :)
ho creato questo codice PHP (che si rifà ovviamente a un form che non mi pare sia necessario postare):
PHP:
if (isset($_POST['giorno']))
	{
		$giorno = htmlspecialchars($_POST['giorno']);
	}
	
	if (isset($_POST['mese']))
	{
		$mese = htmlspecialchars($_POST['mese']);
	}
	
	if (isset($_POST['nome']))
	{
		$nome = htmlspecialchars($_POST['nome']);
	}
	
	$totale = $giorno + $mese + $nome;

        echo $totale;
ho dovuto aggiungere quell' if(isset...) perché se no mi dava "Notice: Undefined index:", ma così mi dà "Notice: Undefined Variable:"... Perché? Ho sbagliato qualcosa nell'usare isset?
 

marino51

Utente Attivo
28 Feb 2013
2.862
153
63
Lombardia
evidentemente non è stato assegnato nessun valore alla $_POST['giorno'] da cui Undefined index
poi se ad una delle variabili successive non è ancora assegnato nessun valore, per via degli "if" il risultato è Undefined index nella riga $totale = ...

in più htmlspecialchars è una conversione che opera su caratteri mentre tu dovresti avere campi numerici per la somma

ma se postassi in maniera più completa sia lo script sia gli errori si potrebbe essere più esaurienti
ciao
marino
 
Ultima modifica:

ppigna

Utente Attivo
23 Dic 2013
63
0
0
evidentemente non è stato assegnato nessun valore alla $_POST['giorno'] da cui Undefined index
poi se ad una delle variabili successive non è ancora assegnato nessun valore, per via degli "if" il risultato è Undefined index nella riga $totale = ...

in più htmlspecialchars è una conversione che opera su caratteri mentre tu dovresti avere campi numerici per la somma

ma se postassi in maniera più completa sia lo script sia gli errori si potrebbe essere più esaurienti
ciao
marino
Ciao, questo è il codice completo (non considerare le parti commentate):
HTML:
<div class="ac_menu">
				<ul>
					<li>
						<a href="images/galassia2.jpg">Giorno</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Giorno</h2>
							<ul>
								<li>Che giorno è oggi? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<form action="frase.php" method="post"><input type="text" name="giorno" size="15"><!-- <input type="button" name="Invia" value="  Invia  " size="10"> --></form>
							<?php //$giorno = htmlspecialchars($_POST['giorno']); ?>
						</div>
					</li>
					<li>
						<a href="images/galassia3.jpg">Mese</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Mese</h2>
							<ul>
								<li>In che mese siamo oggi? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<form action="frase.php" method="post"><input type="text" name="mese" size="15"><!-- <input type="button" name="Invia" value="  Invia  " size="10"> --></form
							<?php //$mese = htmlspecialchars($_POST['mese']); ?>
						</div>
					</li>
					<li>
						<a href="images/galassia4.jpg">Nome</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Nome</h2>
							<ul>
								<li>Da quante lettere è formato il tuo (primo) nome? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<form action="frase.php" method="post"><input type="text" name="nome" size="15"><!-- <input type="button" name="Invia" value="  Invia  " size="10"> --></form>
							<?php //$nome = htmlspecialchars($_POST['nome']); ?>
						</div>
					</li>
					<li>
						<a href="images/galassia5.jpg">Invio</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Invio</h2>
							<ul>
								<li><p>Premi Invia per visualizzare il responso dell'oracolo.</p></li>
								<li><br /></li>
							</ul>
							<form><input type="button" name="Invia"  value="  Invia  " size="10" onclick="location.href='frase.php'"></form>
						</div>
					</li>
				</ul>
			</div>
Forse il problema sta nel fatto che questo codice appartiene ad un'altra pagine rispetto al codice PHP del primo messaggio. Probabilmente non so come si faccia il passaggio di dati da una pagina all'altra...

p.s.: gli errori che mi vengono fuori sono:
"Notice: Undefined variable: mese in C:\xampp\htdocs\Prove\Oracolo_del_Web\AnimatedContentMenu\frase.php on line 17

Notice: Undefined variable: giorno in C:\xampp\htdocs\Prove\Oracolo_del_Web\AnimatedContentMenu\frase.php on line 17

Notice: Undefined variable: nome in C:\xampp\htdocs\Prove\Oracolo_del_Web\AnimatedContentMenu\frase.php on line 17"
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
sbagli anche il pulsante in type deve essere di tipo submit

per farla breve
HTML:
<?php
include_once("../define.php");
?>
<form action="frase.php" method="post">
<div class="ac_menu">
				<ul>
					<li>
						<a href="images/galassia2.jpg">Giorno</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Giorno</h2>
							<ul>
								<li>Che giorno è oggi? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<input type="text" name="giorno" size="15">
							<?php //$giorno = htmlspecialchars($_POST['giorno']); ?>
						</div>
					</li>
					<li>
						<a href="images/galassia3.jpg">Mese</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Mese</h2>
							<ul>
								<li>In che mese siamo oggi? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<input type="text" name="mese" size="15">
							<?php //$mese = htmlspecialchars($_POST['mese']); ?>
						</div>
					</li>
					<li>
						<a href="images/galassia4.jpg">Nome</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Nome</h2>
							<ul>
								<li>Da quante lettere è formato il tuo (primo) nome? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<input type="text" name="nome" size="15"><!-- <input type="button" name="Invia" value="  Invia  " size="10"> -->
							<?php //$nome = htmlspecialchars($_POST['nome']); ?>
						</div>
					</li>
					<li>
						<a href="images/galassia5.jpg">Invio</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Invio</h2>
							<ul>
								<li><p>Premi Invia per visualizzare il responso dell'oracolo.</p></li>
								<li><br /></li>
							</ul>
						<input type="submit" name="Invia"  value="  Invia  " size="10">
						</div>
					</li>
				</ul>
			</div>
			</form>
 

ppigna

Utente Attivo
23 Dic 2013
63
0
0
sbagli anche il pulsante in type deve essere di tipo submit

per farla breve
HTML:
<?php
include_once("../define.php");
?>
<form action="frase.php" method="post">
<div class="ac_menu">
				<ul>
					<li>
						<a href="images/galassia2.jpg">Giorno</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Giorno</h2>
							<ul>
								<li>Che giorno è oggi? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<input type="text" name="giorno" size="15">
							<?php //$giorno = htmlspecialchars($_POST['giorno']); ?>
						</div>
					</li>
					<li>
						<a href="images/galassia3.jpg">Mese</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Mese</h2>
							<ul>
								<li>In che mese siamo oggi? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<input type="text" name="mese" size="15">
							<?php //$mese = htmlspecialchars($_POST['mese']); ?>
						</div>
					</li>
					<li>
						<a href="images/galassia4.jpg">Nome</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Nome</h2>
							<ul>
								<li>Da quante lettere è formato il tuo (primo) nome? Inserisci il numero qui sotto.</li>
								<li><br /></li>
							</ul>
							<input type="text" name="nome" size="15"><!-- <input type="button" name="Invia" value="  Invia  " size="10"> -->
							<?php //$nome = htmlspecialchars($_POST['nome']); ?>
						</div>
					</li>
					<li>
						<a href="images/galassia5.jpg">Invio</a>
						<div class="ac_subitem">
							<span class="ac_close"></span>
							<h2>Invio</h2>
							<ul>
								<li><p>Premi Invia per visualizzare il responso dell'oracolo.</p></li>
								<li><br /></li>
							</ul>
						<input type="submit" name="Invia"  value="  Invia  " size="10">
						</div>
					</li>
				</ul>
			</div>
			</form>
Ok, ho risolto tutti i problemi. Grazie infinitamente a te (sia qui che sull'altra discussione) e agli altri che hanno risposto :) buon pomeriggio!