Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    52

    errore: warning scalar value as an array

    Ho questo codice PHP che, quando viene eseguito, mi dà un errore :
    Cannot use a scalar value as an array nella riga
    $_SESSION[substr($arrayT[$z],0,1)][] = substr($arrayT[$z],1)

    la stringa in JSON è "temperature":"s27.4;f26.6;o27.8;n26.7;c26.9;i27.4 ;p27.1;x30.9;l26.9"

    Codice PHP:
    arrayT "";
        if (
    $json->autoit->temperature) {         

        
    $arrayT explode(";",$_SESSION["temperature"]);         
         for (
    $z 0$z count($arrayT); $z++) {
            
    $_SESSION[substr($arrayT[$z],0,1)][] = substr($arrayT[$z],1) ;
            echo 
    substr($arrayT[$z],0,1)  ."=".substr($arrayT[$z],1)."\n";                     
    }     

    l'output è :
    s=27.4
    f=26.6
    o=27.8
    n=26.7
    c=26.9


    Warning: Cannot use a scalar value as an array in ...[/b] on line ....
    i=27.4
    p=27.1
    x=30.9
    l=26.9

    Praticamente l'errore me lo dà solo al momento di "i=27.4", se mi fermo a c=26.9 è tutto a posto.
    Cosa succede?

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    probabilmente c'e' gia' $_SESSION['i'] valorizzato prima da qualche parte.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    52
    Sì è vero, è un ciclo che si ripete ogni tot minuti per aggiornare quei valori in variabili di sessione.
    Però il fatto è che anche tutte le altre lettere prima sono state già assegnate:

    s27.4;f26.6;o27.8;n26.7;c26.9;i27.4
    $_SESSION['s']
    $_SESSION['f']
    $_SESSION['o']
    $_SESSION['n']
    $_SESSION['c']
    e non le segna come errori...

    E poi come farei allora ad aggiornare ciclicamente delle var di sessione?

  4. #4
    siccome hai a che fare con JSON perchè invece si substring() strani annidati non impieghi json_decode() http://it2.php.net/manual/en/function.json-decode.php?

    ... anche se cmq questa stringa nn mi sembra scritta in JSON...
    codice:
    "s27.4;f26.6;o27.8;n26.7;c26.9;i27.4;p27.1;x30.9;l26.9"
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    52
    Prima di questo if, applico il decode alla stringa JSON completa che arriva dal pc:

    $json = json_decode( str_replace( "\\" , "" , $_REQUEST['JSON']) ); //toglie \ dalla stringa passata da autoit al server

    e in $json->autoit->temperature ottengo appunto la stringa:
    "s27.4;f26.6;o27.8;n26.7;c26.9;i27.4;p27.1;x30.9;l 26.9"

    che inserisco nella var di sessione:

    $_SESSION["temperature"] = $json->autoit->temperature;

    Poi mi esegue l' if che ho postato prima.

    I substring servono per separare la lettera prima del valore numerico e trasformarla in var di sessione e poi associargli il valore numerico corrispondente.

  6. #6
    Codice PHP:
    var_dump($arrayT); 
    che dice?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    52
    Allora, ho provato ad annullare le var di sessione e adesso non mi dà più l'errore !!
    Boh, non so cosa fosse successo.
    Grazie comunque a tutti.
    Ciao e alla prossima .

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.