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