Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Microsoft JScript runtime error '800a0035'

    Mi appare questo errore:
    codice:
    Microsoft JScript runtime  error '800a0035'
    
    File not found
    
    /public/oggetti.inc, line 13
    il codice della mia pagina e':
    codice:
    <%@ LANGUAGE = JScript %>
    
    
    <% if (!loginEffettuato()) Response.Redirect("../nosession.htm");
    var nick= nomeUtente()
    var utente = String(Request.QueryString("u")).toLowerCase();
    var permesso= false
    if (nick==utente) permesso=true
    if (utente.indexOf("/")!=-1) Response.End;
    var lo = LeggiOggetti(utente,"../");
    
    if (utente==0) {
    var nome ="" + Request.Form("chi");
    var ogg ="" + Request.Form("oggetto");
    
    if (schedaEsiste(chi,"../")) {
    
    var arr= split(oggetto,",");
    var tipo= arr[0];
    var specificatore= arr[1];
    
    var i = -1;
    for (c=0;c<lo.length;c++) 
      if (lo[c].tipo==tipo && lo[c].specificatore==specificatore) i = c;
    
    lo[i].quantita--;
    SalvaOggetti(nick,"../",lo);
    
        	nuovog = new oggetto(lo[i].tipo,lo[i].specificatore,1,lo[i].prezzo,lo[i].usura);
        	agg = aggiungiOggetto(lo,nuovog);
        	SalvaOggetti(chi,"../",agg);
    	}
    }
    else Response.Redirect("dona.asp")
    %>
    <html>
    <head>
    <title>Dona</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <style>
    a {text-decoration: none; color: white}
    a:hover {color: yellow}
    a.sotto {text-decoration: none; color: green}
    a.sotto:hover {color: #000066}
    </style>
    <script language="JavaScript">
    function apriHelp() {
      window.open("help.htm","help","width=400,height=350,scrollbars=yes");
    }
    </script>
    <body bgcolor="#D2C5AA">
    <div align="center">
    	
    
    <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Dona a <form name="donog" action="dona.asp?u=0" method="post">
    <input type="text" maxlenght="20" name="chi">
    <select name="oggetto">
    <option value"<%=lo[i].tipo + "," + lo[i].specificatore%>"><%=lo[i].tipo + " " + lo[i].specificatore%></option></select> 
    
    
    
    <input type="submit" value="Dona"></form>
    	</font></p>
    	
    
    </p>
    	
    
    <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    	TORNA INDIETRO</font></p>
    </div>
    </body>
    </html>
    Non capisco dove sbaglio....

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    L'errore non qui, ma in:

    /public/oggetti.inc, line 13

    controlla.

    Roby

  3. #3
    Eh... lo avevo pensato anche io ma non e' cosi' perche oggetti.inc e' un file che racchiude funzioni che poi richiamo in quello postato... Quelle funzioni, altrove, le richiamo e non mi da errore, qui si.

    Cmq sia posto anche oggetti.inc cosi' abbiamo una visione piu' ampia:

    codice:
    <%
    
    function oggetto(tipo,specificatore,quantita,prezzo,usura) {
      this.tipo = tipo;
      this.specificatore = specificatore;
      this.quantita = quantita;
      this.prezzo = prezzo;
      this.usura = (isNaN(usura) || typeof usura=="undefined") ? 1000 : usura;
    }
    
    function LeggiOggetti(id,pt) {
      var thefile = Server.MapPath(pt + "mdb-database/oggetti/" + id + ".asp");
      var sst = sfo.OpenTextFile(thefile);
      sst.SkipLine();
      var listaOggetti = new Array();
      var indOggetti = 0;
      while (!sst.AtEndOfStream) {
        var auxOggetti = sst.ReadLine();
        var arrOggetti = auxOggetti.split(",");
        listaOggetti[indOggetti++] = new oggetto(arrOggetti[0],arrOggetti[1],parseInt(arrOggetti[2]),parseInt(arrOggetti[3]),parseInt(arrOggetti[4]));
      }
      sst.Close();
      return listaOggetti;
    }
    
    function SalvaOggetti(id,pt,listaOggetti) {
      var thefile = Server.MapPath(pt + "mdb-database/oggetti/" + id + ".asp");
      var sst = sfo.CreateTextFile(thefile);
      sst.Write("<");
      sst.Write("% Response.End %");
      sst.WriteLine(">");
      for (indOggetti=0;indOggetti<listaOggetti.length;indOggetti++)
        if (listaOggetti[indOggetti].quantita>0)
          sst.WriteLine(listaOggetti[indOggetti].tipo + ","  + listaOggetti[indOggetti].specificatore + ","  + listaOggetti[indOggetti].quantita + ","  + listaOggetti[indOggetti].prezzo + ","  + listaOggetti[indOggetti].usura);
      sst.Close();
    }
    
    function aggiungiOggetto(listaOggetti,ogg) {
      var logg = listaOggetti.length;
      for (objc=0;objc<listaOggetti.length;objc++)
        if (listaOggetti[objc].tipo==ogg.tipo && listaOggetti[objc].specificatore==ogg.specificatore) logg = objc;
      if (logg!=listaOggetti.length) {
        listaOggetti[logg].quantita += ogg.quantita;
        listaOggetti[logg].prezzo = ogg.prezzo;
        if (ogg.usura<listaOggetti[logg].usura) listaOggetti[logg].usura = ogg.usura;
      } else listaOggetti[logg] = new oggetto(ogg.tipo,ogg.specificatore,ogg.quantita,ogg.prezzo,ogg.usura);
      return listaOggetti;
    }
    
    %>
    in teoria l'errore dovrebbe esser localizzato qui:
    codice:
      var sst = sfo.CreateTextFile(thefile);
    e come si vede non presenta alcun errore.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    Fatti stampare "thefile", è ciò che contiene quella variabile, cioè il path di un file, che non esiste...

    Roby

  5. #5
    Il file (pt + "mdb-database/oggetti/" + id + ".asp") esiste e viene creato in fase di registrazione con altri 4 file.

    Il path, cosi' come anche la function di oggetti.inc, sono corretti. Questo e' il punto...

  6. #6
    Ho modificato qui e li il codice affinche' sia accessibile ed effettivamente ora funziona ma a meta'.
    Questo e' il codice:
    codice:
    <%@ LANGUAGE = JScript %>
    
    
    <% if (!loginEffettuato()) Response.Redirect("../nosession.htm");
    var nick= nomeUtente()
    var utente = String(Request.QueryString("u")).toLowerCase();
    var permesso= false
    if (nick==utente) permesso=true
    if (utente.indexOf("/")!=-1) Response.End;
    var lo = LeggiOggetti(nick,"../");
    
    if (utente==0) {
    var chi="" + Request.Form("chi");
    var ogg="" + Request.Form("oggetto");
    
    if (schedaEsiste(chi,"../")) {
    
    var arr= split(ogg,",");
    var tipo= arr[0];
    var specificatore= arr[1];
    
    var i = -1;
    for (c=0;c<lo.length;c++) 
      if (lo[c].tipo==tipo && lo[c].specificatore==specificatore) i = c;
    
    lo[i].quantita--;
    SalvaOggetti(nick,"../",lo);
    
        	nuovog = new oggetto(lo[i].tipo,lo[i].specificatore,1,lo[i].prezzo,lo[i].usura);
        	agg = aggiungiOggetto(lo,nuovog);
        	SalvaOggetti(chi,"../",agg);
    	}
    }
    
    %>
    <html>
    <head>
    <title>Dona</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <style>
    a {text-decoration: none; color: white}
    a:hover {color: yellow}
    a.sotto {text-decoration: none; color: green}
    a.sotto:hover {color: #000066}
    </style>
    <script language="JavaScript">
    function apriHelp() {
      window.open("help.htm","help","width=400,height=350,scrollbars=yes");
    }
    </script>
    <body bgcolor="#D2C5AA">
    <div align="center">
    	<font face="Verdana, Arial, Helvetica, sans-serif" size="2">Dona a <form name="donog" action="dona.asp?u=0" method="post">
    <input type="text" maxlenght="20" name="chi">
    <select name="oggetto">
    <% for (i=0;i<lo.length;i++) { %>
    <option value="<%=lo[i].tipo + "," + lo[i].specificatore%>"><%=lo[i].tipo + " " + lo[i].specificatore%></option><% }%></select> 
    
    
    
    <input type="submit" value="Dona">
    </form>
    	</font></p>
    	
    
    </p>
    	
    
    <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    	TORNA INDIETRO</font></p>
    </div>
    </body>
    </html>
    che mi produce questo errore:
    codice:
    Microsoft JScript runtime  error '800a138f'
    
    Object expected
    
    /public/dona/dona.asp, line 18
    il che e' riferito alla funzione var arr= split(ogg,","); che riceve l'ogg dal Request.Form poco piu' in alto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.