Newsgroup: it.comp.www.php
Titolo: più variabili nella session

Ciao a tutti,
sono nuovo del codice php, credo che il problema sia che non riesco a
inviare più variabili nella session
vi posto qui il codice con i commenti
Sapreste indicarmi cosa sbaglio? Vi metto anche la prima parte (funzionante)
magari può essere d'aiuto
<? session_start(); ?>
//Questa parte è la semplice visualizzazione dei record contenuti nella
tabella articoli, funziona correttamente
<?
while ($riga = mysql_fetch_assoc($res)) {?>
<tr>
        <td valign="top" bgcolor="#F0F0F0" ><font face="Verdana, Arial,
Helvetica, sans-serif" size="1">
          <?
  echo $riga["Prodotto"];?>
        </td>
<td bgcolor="#F0F0F0"> <font face="Verdana, Arial, Helvetica, sans-serif"
size="1"><?
  echo $riga["Descrizione"];?>
</td>
<td bgcolor="#F0F0F0"><font face="Verdana, Arial, Helvetica, sans-serif"
size="1">  <?
        echo $riga["Prezzo2"];
    //}
 ?></td>
 <td bgcolor="#F0F0F0">
 <input type= "checkbox" name="selezionato"><?
    } ?>
 </td>
 </tr>
<?
    mysql_free_result($res);
//fin qui funziona.
//ora voglio tutte i valori della colonna prodotto vengano portati nella
session. Per far questo conto quante righe ha la tabella
$strsql3 = "select count(*) as numero from articoli";
$query3 = mysql_query($strsql3);
$row3 = mysql_fetch_array($query3);
$numero = $row3["numero"];
mysql_free_result($query3);
echo $numero; //funziona bene
//ora creo un array di variabili e un ciclo for e le registro nella session.
QUI CI SONO I PROBLEMI.
for ($i=0; $i<=$numero; $i++){
$arrayprodotto[i]=$riga["Prodotto"];
echo $arrayprodotto[i]; //questo non visualizza nulla
session_register($arrayprodotto[i]); //di conseguenza non registra nulla
}

 session_register($arrayprodotto[i]); //di conseguenza non registra
Non utilizzare session_register, utilizza $_SESSION
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
L'uomo, conscio di sbagliare, persevera.


mettendo $_SESSION ora mi da almeno il messaggio d'errore:
Call to undefined function: array() in etc etc...
sembra non riconoscere la variabile array, ma nel mio manuale è scritto
proprio così
infatti se modifico la variabile da array a semplice (tipo
$prodotto="ciao")e la richiamo con echo funziona (cioè, non viene poi
ripresa dalla session nella pagina successiva quindi questo è un altro
problema, ma per lo meno nella stessa pagina esegue correttamente il ciclo)
for ($i=0; $i<=$numero; $i++){
$arrayprodotto[i]=$riga["Prodotto"];
echo $arrayprodotto[i];
$_SESSION($arrayprodotto[i]);
}
inoltre ho fatto un'altra prova scrivendo
for ($i=0; $i<=$numero; $i++){
$prodotto=$riga["Prodotto"];
echo $prodotto;
$_SESSION($prodotto);
}
e... mi da lo stesso errore: Call to undefined function: array(). Come è
possibile visto che questa non è un array? Mi sfugge qualcosa di grosso ma
non riesco a capire cosa

 }
Che cosa dovrebbe fare il codice di cui sopra? Crei un array con un
numero di elementi pari a $numero+1 tutti con il valore
$riga['Prodotto'], e' giusto? Quale sarebbe l'obiettivo?
-- 
I am what I am, I do what I can



Al momento l'unico obiettivo è l'esercitarmi e capire come funzionano le
session, vorrei riuscire a passare un array di variabili nella session.
Cioè, data una colonna di prodotti presi da una tabella, vorrei poi prendere
questi prodotti e mandarli tutti nella session. Il passo successivo sarebbe
utilizzare la checkbox di fianco ad ogni prodotto e riuscire ad inviare solo
quelli selezionati... e così via. Il problema è che sui libri ci sono solo
esercizietti base.
Provo a riflettere sul fatto che $_SESSION è un array, ti ringrazion per il
suggerimento

 vorrei poi prendere questi prodotti e mandarli tutti nella session.
<?php // file con la form (method post)
	// connessione al DB
	// $res = mysql_query (...);
	while ($riga = mysql_fetch_assoc ($res)) {
?>
<tr> 
  <td><?php echo $riga["Prodotto"]; ?></td>
  <td><?php echo $riga["Descrizione"];?></td>
  <td><?php echo $riga["Prezzo2"]; ?></td>
  <td> <input type="checkbox" name="IDProdotto[]" value="<?php echo
$riga["IDProdotto"]; ?>" /></td>
</tr>
<?php
	} // while ($riga = mysql_fetch_assoc ($res)) { 
    mysql_free_result ($res);
?>
<?php // file che riceve il submit della forma di cui sopra.
session_start ();
if (isset ($_POST['IDProdotto'])) {
	foreach ($_POST['IDProdotto'] as $IDProdotto) {
		$_SESSION['prodotti'][]	= $IDProdotto;
	}
	print ('Nella sessione ci sono i seguenti prodotti:');
	print ('<pre>');
	print_r ($_SESSION['prodotti']);
	print ('</pre>');
} else {
	print ('Nessun prodotto selezionato');
}
?> 


 if (isset ($_POST['IDProdotto'])) {
ERRATA CORRIGE:
if (isset ($_POST['IDProdotto']) && is_array ($_POST['IDProdotto'])) {



Che dire... grazie!!! Ci ho messo un po a capirlo bene, ma mi č stato molto
utile
Dovrebbero fare dei libri con del codice cosě, che uno si puň mettere a
studiare, elaborare etc, e cosě impari anche piů di quanto pensi, visto che
ad es in quel codice c'erano un paio di situazioni che non conoscevo
<opinione personale>
su un libro pagato 50 euro per parlare delle session ti fanno il solito
esempietto con la variabile "pluto" 5 righe in totale fra pagina di invio e
pagina che riceve, secondo me sono scritti solo per far buttare via i soldi
a chi vuole imparare
</opinione personale>
Grazie ancora