salve a tutti...sono alle prese con il seguente codice che vi posto
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: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";}
}
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

Rispondi quotando