Notice: Undefinied Index

m.pittini

Utente Attivo
26 Feb 2009
232
6
0
A volte, programmando in PHP, lo script mi restituisce questo errore: Undefinied Index... che vuol dire?
 
L'errore si presenta quando tenti di accedere ad un indice inesistente in un array associativo. Ad esempio:
PHP:
<?php
$cognomi = array('Mario' => 'Rossi', 'Pinco' => 'Pallino');
echo $cognomi['Alessandro'];
?>
Produrrà:
Codice:
Notice: Undefined index: Alessandro in ... on line 3
 
Un altro caso potrebbe essere quello in cui specifichi una variabile non definita, ad esempio invii per form l'input "nome" e lo richiami direttamente come $nome senza assegnazione nella pagina che riceve i dati.
 
Può succedere quando richiami una variabile non definita. Capita spesso nel recuperare dati da form e/o querystring.
Prima di richiamare dei dati estratti da POST o GET dovresti usare la funzione isset().
PHP:
if (isset($_GET['q'])) {
  $q = $_GET['q'];
}
fammi sapere. Ciao
 
Non è quello che hai scritto tu:
Un altro caso potrebbe essere quello in cui specifichi una variabile non definita, ad esempio invii per form l'input "nome" e lo richiami direttamente come $nome senza assegnazione nella pagina che riceve i dati.
Dal messaggio si capisce che se si ha una pagina così:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<title>Prova form</title>
		<meta http-equiv="content-type" content="text/html;charset=utf-8" />
	</head>

	<body>
		<form method="post" action="invio.php">
			<input type="text" name="nome" /> <br />
			<input type="submit" value="Invia" />
		</form>
	</body>
</html>
E la pagina PHP contiene:
PHP:
<?php
echo $nome;
?>
L'interprete restituirà errore "Undefined index" (cosa non vera).
 
Funziona anche al contrario, cioè se assegni ad una variabile un input che non è stato inviato.
 

Discussioni simili