salve a tutti...sono alle prese con il seguente codice che vi posto
Codice PHP:
<?php

/*PAGINA per l'inserimento di una macchina,gestisce anche tutta la logica per il blocco delle password delle utenze
*/


include ("config/function.inc");
include (
"checksession.php");


$userid=$_SESSION['userid'];

$scelta=$_POST['scelta'];
$campo=$_POST['campo'];


$i=0;
$conn=DBConn();
?>
<html>
    <head>
        <title>Risultati Ricerca</title>
            <style type="text/css">
                <!--
                #allinea {
                        line-height: 30px;
                        }
                -->
            </style>
            

            
<script language="JavaScript" >

var utenze=new Array(); // array in cui vengono inserite tutte le utenze
var id=new Array(); // array dove si inserisce l'id macchina per ogni utenza
var coppia=new Array(); //array per la gestione della coppia utente-utenza che servirà per verificare gli accessi all'utenza della macchina quando questa è già lockata
var wImage = false; //variabile per la modifica dell'immagine relativa all'utenza,cambia se l'utenza è lockata o meno
var numero;
var k=0;
var XMLRe=null;

<?php

        
if($scelta=="hostname"){
        
$query="SELECT * FROM macchina WHERE hostname='".$campo."';";
        
$query2="SELECT * FROM macchina M,utenza U WHERE M.idMacchina=U.macchinaIdMacchina AND M.hostname='".$campo."'";
        }
        else {
        
$query="SELECT * FROM macchina WHERE Ip='".$campo."';";
        
$query2="SELECT * FROM macchina M,utenza U WHERE M.idMacchina=U.macchinaIdMacchina AND M.ipfisico='".$campo."'";
        }
        
       if ( 
$risultato=DBEsegui($query,$conn))       
         { 
         
$k=0;
            while(
$riga=mysql_fetch_array($risultato))
                {
                  
$utenza=DBEsegui($query2,$conn);
                  
                  while(
$res=mysql_fetch_array($utenza))
                    {
                        
?>
                        utenze[<?echo $k?>]= <? echo $res['user']; ?>;
                        id[<?echo $k?>]= <? echo $res['macchinaIdMacchina'];?>;
                        <?$k=$k+1;
                    }
                }
        }
?>

function makeXMLRequest(){
    alert("entrato in makeXMLRequest");
    var request=undefined;
    if(window.XMLHttpRequest){
        request=new XMLHttpRequest();
        if(request.overrideMimeType){
            request.overrideMimeType("text/xml");
        }
    }else{
        if(window.ActiveXObject){
            try{
                request=new ActiveXObject("Msxml2.XMLHTTP");
            }catch(e){
                try{
                    request=new ActiveXObject("Microsoft.XMLHTTP");
                }catch(e){
                }
            }
        }
    }
    return request;
}


function getDataSimple(XMLRe,dataSource,divID){
    alert("entrato in getdatasimple....XMLRe: "+XMLRe);
    alert("datasource= "+dataSource);
    alert("div= "+divID);
    if(XMLRe){
        var obj=document.getElementById(divID);
        XMLRe.open("GET",dataSource);
        XMLRe.onreadystatechange=function (){
            if(XMLRe.readyState==4){// la funzione ha finito di reperire i dati
                if(XMLRe.status==200){
                    obj.innerHTML=XMLRe.responseText;
                }
                if(XMLRe.status==404){
                    alert("Pagina non trovata");
                }
                if(XMLRe.status==500){
                    alert("Errore interno del server");
                }
            }
        }
        
        
        XMLRe.send(null);
    }
}

/*
//funzione che inserisce una nuova utenza nell'array relativo
function insertUtenza(nome){

    alert("entrato in insertutenza");
utenze[utenze.length]=nome;
}

//funzione che inserisce una l'id della macchian riferito ad un'utenza nell'array relativo
function InsertID(num){

    alert("entrato in insertid");
id[id.length]=num;
}
*/


//funzione che controlla se un 'utenza è bloccata o meno
function ControlLock(num){
    numero=num;
    XMLRe=makeXMLRequest();
    alert("xmlre eccomi qua= "+this.XMLRe);
    var datasource="ctrlmac.php?id="+id[numero]+"&user="+utenze[numero];
    alert("link="+datasource);
    getDataSimple(XMLRe,datasource,null);
    if(XMLRe.readyState==4 && XMLRe.status==200){
    var stato=XMLRe.responseText;
    if (stato==0){
        alert("l'utenza risulta dismessa");
        return;
        }
        else if(stato==2){
            alert("L'utenza risulta essere già in uso");
            return;
            }
            else if(stato==666){
                    alert("La Macchina è dismessa");
                    return;
                    }
                else acceptLock(utenza[num],id[num]);
                }
}

//funzione verifica se l'utente vuole davvero bloccare quella password/utenza e avvia le operazioni di bloccaggio e visualizzazione della password
function acceptLock(utenza,id){
    
    var password; // variabile per il salvataggio della password relativa all'utenza lockata
    if(confirm("Lockare e visualizzare la password per l'utenza?"))
    {
        AggiornaUtenzaSessione(utenza,id);
        password=lockPassword(utenza,id);
        viewPassword(password);
        AceJSswapper(numero);
    }
    else return;
}

function AggiornaUtenzaSessione(utenza,id){
coppia[coppia.length]="<?echo $userid?>-"+utenza+"-"+id;
}

function lockPassword(utenza,id){
    var pass;
    var XMLRe=makeXMLRequest();
    getData(XMLRe,"blockutenza.php?id="+id[num-1]+"&user="+utenza[num-1]+"&conn="+$conn,null);
    if(XMLRe.readyState==4 && XMLRe.status==200)
        pass=XMLRe.responseText;
    return pass;
}
//apre una finestra che permette di visualizzare e catturare la password per la relativa utenza scelta
function viewPassword(pass){
if (pass=="!!errore!!"){
alert("Si è verificato un errore durante le operazioni sul database");
return;
}
alert("La password relativa all'utenza selezionata è: "+pass);
}

//gestisce la modifica dell'immagine per la modifica dell'immagine associata all'utenza
function AceJSswapper(num){
wImage = !wImage;
if (wImage == true) {document.AceJSimage[num].src="chiavi.gif";}
if (wImage == false) {document.AceJSimage[num].src="lucchetto.png";}
}
come vedete all'interno dello script dopo aver dichiarato le variabili riempio gli array con un codice php (unico metodo che ho trovato) e la cosa funziona perchè leggendo il codice html della relativa pagina vedo che le variabili vengono assegnate correttamente....i problemi arrivano all'interno della funzione ControlLock e precisamente a questo comando:

var datasource="ctrlmac.php?id="+id[numero]+"&user="+utenze[numero];

perchè mi dice che id[numero] e utenze[numero] sono "undefined" ma in precedenza gli array sono stati riempiti di sicuro e il valore "numero" è sempre minore della lunghezza degli array....qualcuno di voi è in grado di trovare l'errore? Grazie