• User Attivo

    video poker script

    ciao ragazzi!
    ho installato questo script di poker online in asp....
    www musemusum.it / poker2

    sia una volta completata l'iscrizione, che sulla pagina dei login, che sulla pagina dei Leaders

    mi da sempre lo stesso errore:

    Game Time:

    Microsoft VBScript runtime error '800a0009'

    Subscript out of range: '[number: 1]'

    /poker2/include/functions.asp, line 686

    cosa puo' essere? io non conosco bene l'asp se mi potete dare una mano ve ne sarò grato...


  • Moderatore

    senza vedere il codice probabilmente starai ciclando su un valore di un indice/contatore di un array che eccede le dimensioni attuali (numero di elementi nel vettore).
    Ricorda che in ASP i vettori sono tutti "zero-based", quindi nei loop il primo elemento ha indice zero e l'ultimo (n-1).
    Fai i controlli necessari prima del loop.


  • User Attivo

    @paocavo said:

    senza vedere il codice probabilmente starai ciclando su un valore di un indice/contatore di un array che eccede le dimensioni attuali (numero di elementi nel vettore).
    Ricorda che in ASP i vettori sono tutti "zero-based", quindi nei loop il primo elemento ha indice zero e l'ultimo (n-1).
    Fai i controlli necessari prima del loop.

    ho letto che sei un nuovo mod, complimenti innanzitutto 🙂

    purtroppo cio' che mi hai gentilmente esplicato io non ne capisco assolutamente nulla.

    sto provando ad adattare questo scriptino che sembra interessante.

    se postassi il codice sarebbe cosi gentile da aiutarmi? 🙂

    grazie


  • Moderatore

    Ok, ma non esagerare con il sorgente... invia solo il pezzo (una ventina di righe) che contiene la riga n. 686 ed evidenziala in qualche modo (per esempio con un commento)

    😉


  • User Attivo
     
     ' if day is same then compare time
     if dateValue(targetDate) = dateValue(currentDate) then
      if currentTime < gameEndTime then
       ' do nothing
      else
       ' if hour has past, the add one week
       targetDate = dateAdd("d",7,targetDate)
      end if
     end if
     
     strDateGameEnds =  dateValue(targetDate) & " " & gameEndTime
     getDateGameEnds = strDateGameEnds
    End Function
    %>
    <%
    Function convertTime2HumanTime(strDate)
     '  6:01:00 PM >> 6:00 PM
     strTime = timeValue(strDate)
     aryTime = Split(strTime,":")
     strTime = ""
     strTime = aryTime(0) & ":" & aryTime(1)    // riga 686
     ampmSP = Split(aryTime(2)," ")
     strTime = strTime & " " & ampmSP(1)
     convertTime2HumanTime = strTime
    End Function
    
    

  • Moderatore

    La funzione convertTime2HumanTime(strDate)
    non fa nulla di particolare se non trasformare un orario dal formato:
    "6:01:00 PM" al formato "6:00 PM" (in pratica elimina i secondi)
    pertanto potresti tagliare la testa al toro scrivendo semplicemente:

    
    Function convertTime2HumanTime(strDate)
     convertTime2HumanTime = strDate
    End Function
    
    

    Se invece è necessario, per altre ragioni, utilizzare il formato "6:00 PM" allora dovremo trovare la soluzione al problema precedente.

    Il problema è legato al contenuto del parametro di ingresso strDate.
    Questo parametro dovrebbe contenere l'orario nel formato "6:01:00 PM",
    e lo puoi verificare con la seguente versione della function:

    
    Function convertTime2HumanTime(strDate)
     Response.write "<br />Il parametro strDate vale: " & strDate & "<br />" 
     convertTime2HumanTime = strTime
    End Function
    
    

    Successivamente, nella function originale (fattene una copia!), l'orario viene spezzettato (Split) considerando il carattere ":" come separatore. A questo punto interviene l'errore perchè, secondo me, strDate molto probabilmente non contiene un orario ma una data (che non ha ":")


  • User Attivo

    quell'errore sembra essere sparito grazie!

    ora pero' quando vado su SIGNUP e invio il form mi da un altro errore purtroppo 😞

    te lo scrivo:

    **error '80004005' **
    /poker2/include/functions.asp, line 1333

    ecco il codice relativo:

     
    <%
    Sub addNewUser2DataBase()
    
     signupCredits =  GetControlData("signupCredits")
     sql = "insert into users " & _
     "(" & _
     "username,password,fname,lname,address1,address2,city,state,zip,phone,fax,email,signup_date,include_in_mailings" & _
     ")" & _
     " values " & _
     "(" & _
     "'" & session("username") & "'" & "," & _
     "'" & session("password") & "'" & "," & _
     "'" & session("fname") & "'" & "," & _
     "'" & session("lname") & "'" & "," & _
     "'" & session("address1") & "'" & "," & _
     "'" & session("address2") & "'" & "," & _
     "'" & session("city") & "'" & "," & _
     "'" & session("state") & "'" & "," & _
     "'" & session("zip") & "'" & "," & _
     "'" & session("phone") & "'" & "," & _
     "'" & session("fax") & "'" & "," & _
     "'" & session("email") & "'" & "," & _
     "#" & now() & "#," & _
     "true" & _
     ")"
     Conn.Execute(sql)   //riga 1333
     sql = "select id from users where " & _
     "username = '" & session("username") & "'" & _
     " AND " & _
     "password = '" & session("password") & "'"
     set data = conn.execute(sql)
     if NOT data.eof then
      tempID = data("id")
     else
      tempID = 0
     end if
     
     sql = "insert into poker " & _
     "(" & _
     "ID,gameState_bonus,gameState_credit,gameState_Winnings,gameState_bet,last_login,last_daily_update" & _
     ")" & _
     " values " & _
     "(" & _
     "" & tempID & "," & _
     "" & "0" & "," & _
     "" & signupCredits & "," & _
     "" & 0 & "," & _
     "" & 0 & "," & _
     "#" & cNow() & "#," & _
     "#" & cNow() & "#" & _
     ")"
     'response.write "<P>" & sql
     Conn.Execute(sql)
    End Sub
    %>
    
    

  • Moderatore

    @diegalax said:

    **error '80004005' **
    /poker2/include/functions.asp, line 1333

    ...

    Da una veloce ricerca su GG del codice dell'errore (ASP+**error '80004005' **)si evince che il problema è dovuto ai permessi non impostati per la cartella contenente il db (MS Access presumo).

    Per risolvere loggati sul tuo PC con un nome utente appartenente al gruppo "administrator", apri "risorse del computer" e posizionati sulla directory contenente il file mdb.
    Presumo:

    c:\inetup\wwwroot\mdb-database

    click-dx sulla cartella >> Proprietà >> Protezione >> Aggiungi "everyone" con accesso in "full control" (come policy è un pò "larga" ma trattandosi del tuo IIS locale dovrebbe essere ok)

    PS: Se la scheda "Protezione" non è visibile nelle proprietà delle directory segui le indicazioni di questo (mio) articolo


  • User Attivo

    @paocavo said:

    Da una veloce ricerca su GG del codice dell'errore (ASP+**error '80004005' **)si evince che il problema è dovuto ai permessi non impostati per la cartella contenente il db (MS Access presumo).

    Per risolvere loggati sul tuo PC con un nome utente appartenente al gruppo "administrator", apri "risorse del computer" e posizionati sulla directory contenente il file mdb.
    Presumo:

    c:\inetup\wwwroot\mdb-database

    click-dx sulla cartella >> Proprietà >> Protezione >> Aggiungi "everyone" con accesso in "full control" (come policy è un pò "larga" ma trattandosi del tuo IIS locale dovrebbe essere ok)

    PS: Se la scheda "Protezione" non è visibile nelle proprietà delle directory segui le indicazioni di questo (mio) articolo

    mmm qui da dove sono io non posso acecdere come admin.

    non è possibile settare permessi online tramite ftp? ho provato a dargli chmod 777 ma sembra non andare lo stesso 😞


  • Moderatore

    Non credo sia possible se sei in hosting su Windows Server. In ogni caso dovresti avere almeno una cartella con i permessi in scrittura (in genere /database oppure /mdb-database ). Chiedi, se puoi..., all'assistenza del tuo servizio di hosting.