Newsgroup: it.comp.www.php
Titolo: Vita di una variabile

Buongiorno,
ho da poco preso a studiare il php e ho dei dubbi sulla durata di una
variabile.
In pratica ho notato che se dichiaro una variabile all'inizio di una
pagina e poi alla fine cerco di recuperare il contenuto della stessa
ricevo un errore di variabile non definita: «Notice: Undefined
variable: lello in C:\xampp\htdocs\test.php on line 229».
Il codice della pagina, grosso modo è questo:
<?
$var = "miovalore";
?>
...
qui c'è codice html o php
...
<?
echo $var;
?>
Qualcuno sa dirmi se commetto io qualche errore o è proprio così che
funziona con il php?
Grazie
F.
 
 
 

 grosso modo è questo: <?
 
Non usare short tags (<?) ma solo quelli completi: <?php
 
E non postare il codice "grosso modo". Scrivi una pagina di test e vedi 
se funziona.
 
Bye.
 


Menti sapendo di mentire :D
 
<?php
$test="<h2>Other text</h2>";
?>
<h1>Some text</h1>
<?php
echo $test;
echo "\n";
?>
 
 
marco@athlonno ~/tmp $ php test.php
<h1>Some text</h1>
<h2>Other text</h2>
 
Guarda meglio il codice e vedrai che hai commesso un errore da qualche parte
Casomai mostracelo, ma non "grosso modo"
M
 
-- 
I fatti mi cosano

 se funziona.
 
Questo è tutto il codice. La cosa strana è che mentre mi stampa il valore di $dbhost (che prende dal file mysql.php) per la variabile $var mi da errore!!
 
Grazie per l'attenzione.
 
FPG
 
[codice]
<?
	$title = "Tabella Colori";
 
	/* CONFIGURAZIONE MYSQL */
	include('cfg/mysql.php');
 
	/* INIZIALIZZO VARIABILI */
	$page = 1;
	if(!empty($_REQUEST['page']) && isset($_REQUEST['page'])){$page = $_REQUEST['page'];}
 
	$var="pier";
 
 
 
 
if(!empty($_REQUEST['txtAzione']) && isset($_REQUEST['txtAzione'])){
	switch ($_REQUEST['txtAzione']) {
		case "ADD":
			$des = strtoupper(mysql_real_escape_string($_REQUEST['txtDescrizione']));
			$sql = "INSERT INTO tcolori(stato, colore) VALUES ('A', '$des')";
			$conn = mysql_connect($dbhost, $dbuser, $dbpass);
			mysql_select_db($dbname);
			mysql_query($sql) or die( mysql_error() );
			break;
		case "MOD":
			$idr = mysql_real_escape_string($_REQUEST['txtId']);
			$des = strtoupper(mysql_real_escape_string($_REQUEST['txtDescrizione']));
			$sql = "
			UPDATE tcolori
			SET	colore = '$des'
			WHERE id = '$idr'";
			$conn = mysql_connect($dbhost, $dbuser, $dbpass);
			mysql_select_db($dbname);
			mysql_query($sql) or die( mysql_error() );		 
			break;
		case "DEL":
			$idr = mysql_real_escape_string($_REQUEST['txtId']);
			$sql = "UPDATE tcolori SET stato = 'D' WHERE id = '$idr'";
			$conn = mysql_connect($dbhost, $dbuser, $dbpass);
			mysql_select_db($dbname);
			mysql_query($sql) or die( mysql_error() );
			break;
 
		case "FIL":
			$des = strtoupper(mysql_real_escape_string($_REQUEST['txtDescrizione']));
			$sql = "SELECT * FROM tcolori WHERE colore LIKE '$des%'";
			$conn = mysql_connect($dbhost, $dbuser, $dbpass);
			mysql_select_db($dbname);
			$result = mysql_query($sql) or die( mysql_error() );
			while($row = mysql_fetch_array($result))
			{
				echo $row['colore'] ."<br/>";
			}
			break;		
	}
}
 
?>
<!DOCTYPE html>
<html>
<head>
<? include('php/head.php'); ?>
<link href='
http://fonts.googleapis.com/css?family=Amaranth
' rel='stylesheet' type='text/css'>
 
	<!-- JAVASCRIPT -->
<script type="text/javascript" language="javascript">
 
        function jsAggiungi(){
			document.getElementById("divMostraDati").style.display="none";
 
			document.getElementById("txtAzione").value="ADD";
 
			document.getElementById("divForm").style.display="block";
 
			document.getElementById("frmTestata").innerHtml="<p>Aggiungi record</p>";
        }
 
		function jsModifica(id){
			var stringa = id.split("~");
			document.getElementById("divMostraDati").style.display="none";
			document.getElementById("txtAzione").value="MOD";
			document.getElementById("txtId").value=stringa[0];
			document.getElementById("txtDescrizione").value=stringa[1];
			document.getElementById("divForm").style.display="block";
			document.getElementById("frmTestata").innerText="Modifica record";
		}
 
		function jsCancella(id){
			var stringa = id.split("~");
			document.getElementById("divMostraDati").style.display="none";
 
			document.getElementById("txtAzione").value="DEL";
			document.getElementById("txtId").value=stringa[0];
			document.getElementById("txtDescrizione").value=stringa[1];
			document.getElementById("txtDescrizione").setAttribute("readonly", "true"); 
			document.getElementById("divForm").style.display="block";
			document.getElementById("frmTestata").innerText="Confermi cancellazione " + stringa[1] ;		
		}
 
		function jsFiltra(){
			document.getElementById("txtAzione").value="FIL";
			document.getElementById("divForm").style.display="block";
			document.getElementById("frmTestata").innerText="Filtra" ;		
		}		
	</script>
</head>
<body>
<?
	/* Menù principale */
	include('php/menu_principale.php');
?>
<!-- TESTATA -->
<div id="testata"><h1><? echo $title; ?></h1></div>
<div id="corpo_pagina">
<div id="divMostraDati">
<!-- paginatore -->
<div class="sezione">
<table>
<tr>
<td>
	<a href="#" title="" class="btnIconLeft mr10 mt10" onclick="jsAggiungi()"><img src="img/ico/16x16/add.png" alt="" class="icon" /><span>AGGIUNGI</span></a>
	<a href="#" title="" class="btnIconLeft mr10 mt10" onclick="jsFiltra()"><img src="img/ico/16x16/document_inspector.png" alt="" class="icon" /><span>FILTRA</span></a>
</td>	
<td>
<div id="paginazione">
<?
	$tableName = "vcolori";		
	$targetpage = "colori.php"; 	
	$limit = 15;
	$campo = "colore";
 
	include ('php/pagination.php');
?>
</div><div style="clear:both;"></div>	
</td>
</tr>
</table>
</div>
<!-- TABELLA DATI -->
<table id="tabella" class="data">
	<thead class="testata">
		<tr>
		<th><p>Descrizione</p></th>
			<th>&nbsp;</th>
			<th>&nbsp;</th>
			<th>&nbsp;</th>
		</tr>
	</thead>
	<tbody>
		<?php 
		if(!empty($_REQUEST['txtAzione']) && isset($_REQUEST['txtAzione'])){
		$des = strtoupper(mysql_real_escape_string($_REQUEST['txtDescrizione']));
		$query1 = "SELECT * FROM $tableName WHERE colore LIKE '$des%' LIMIT $start, $limit";
		echo $query1;
		}else{
		$query1 = "SELECT * FROM $tableName LIMIT $start, $limit";		
		}
		$result = mysql_query($query1);
		$rg = 0;
		while($row = mysql_fetch_array($result))
		{
			if ($rg == 0){
				echo '<tr class="dispari" id="tr_'.$row['id'].'~'.$row['colore'].'">';
				$rg = 1;}
			else{
				echo '<tr class="pari" id=tr_"'.$row['id'].'~'.$row['colore'].'">';
				$rg = 0;}
			echo '<td id="td~'.$row['id'].'~'.$row['colore'].'">'.$row['colore'].'</td>';
			echo '<td class="icona"><a href="#" id="'.$row['id'].'~'.$row['colore'].'" onclick="jsModifica(
this.id
)"><img src="img/ico/16x16/pencil.png" title="PREMI PER MODIFICARE '.$row['colore'].'"/></a></td>';
			echo '<td class="icona"><a href="#" id="'.$row['id'].'~'.$row['colore'].'" onclick="jsCancella(
this.id
)"><img src="img/ico/16x16/delete.png" title="PREMI PER CANCELLLARE '.$row['colore'].'"/></a></td>';
			echo '<td class="icona"><a href="#" id="'.$row['id'].'" onclick=""><img src="img/ico/16x16/find.png"/></a></td>'."\n";
			echo "</tr>\n";
		}
		?>
	</tbody>
</table>
</div>		
</div>
<!-- FORM -->
<div id="divForm" class="form400">
	<form name="frmDati" id="frmDati" class="formDati" action="colori.php" method="get">
	<input type="hidden" id="txtAzione" name="txtAzione"/>
	<input type="hidden" id="txtId" name="txtId"/>
<table id="tabella" class="data">
	<thead class="testata">
		<tr>
		<th colspan="2"><div id="frmTestata" class="testata"></div></th>
<!--		<th>&nbsp;</th>-->
		</tr>
	</thead>
	<tbody>
		<tr>
			<td><label for="txtDescrizione">Colore</label></td>
			<td><input type="text"id="txtDescrizione" name="txtDescrizione"/></td>
		</tr>
		<tr>
			<td>&nbsp;</td>
			<td><input type="submit"></td>
		</tr>
	</table>
	</form>
</div>
<?
echo $var;
echo $dbhost;
?>
</body>
</html>
 
[/codice]
 

 mi da errore!!
 
Controlla i vari include. Probabilmente c'e` un errore bastardo tipo
 
if ($var = null)
 
invece di
 
if ($var == null)
 
 
Bye.
 


Niente, ho cercato nei file ma di $var nemmeno l'ombra.
Ho pure cambiato il nome alla variabile, senza effetto!!
Poi ho deciso di sostituire il tag <? con quello completo <?php: miracolo, ora funziona!!
Grazie a tutti!!
F