• User Attivo

    Invalid argument supplied for foreach()

    Ciao a tutti,

    random mi sorge un problema su uno scritp che già me ne aveva dati in precedenza (giorgiotave.it/forum/php-mysql/98772-query-che-non-aggiorna.html) 😞

    L'errore è il seguente

    Warning*: Invalid argument supplied for foreach() .........som.php on line 37*

    In poche parole lo script mi permette di inserire delle schede di un prodotto e, random, mi dà l'errore scritto sopra. Per random intendo che per mesi va bene, poi un giorno capita a ripetizione, poi il giorno dopo no e così via. Ovviamente il codice non viene toccato però quando lo script dà un errore è sempre sempre quello indicato qui su.

    La linea 37 è la prima tra queste:
    [php]
    foreach($data as $key => $item) {
    $data[$key] = stripslashes($item);
    }
    [/php]Mentre la parte di codice che presumibilmente genera l'errore è questa di un'altra pagina:

    [php]
    foreach($_POST as $key => $value) {
    $_POST[$key] = addslashes($value);

        // add listing to database
    
    
        $time = time();
        $ccode = substr(time().rand(10000,99999),-15);
        
        $link = mysql_connect($dbhost, $dbuser, $dbpass);
        $query = "INSERT INTO $dbvin VALUES('0',
        '$ccode',
        '$time',
        '$time',
        '0',
        '0',
        '$_POST[stock]',
        '$_POST[vin]',
        '$_POST[year]',
        '$_POST[make]',
        '$_POST[model]',
        '$_POST[condition]',
        '$_POST[category]',
        '$_POST[mileage]',
        '$_POST[price]',
        '$_POST[exterior]',
        '$_POST[interior]',
        '$_POST[body]',
        '$_POST[doors]',
        '$_POST[engine]',
        '$_POST[fuel]',
        '$_POST[comments]',
        '$_POST[consegna]',
        '$_POST[pubblica]',
        '$_POST[presenza]',
        '$_POST[garanzia]',
        '$_POST[stato]',
        '$_POST[mostra]'
        )";
        mysql_db_query($dbname, $query, $link);
    
    
        mysql_close($link);
    
        echo "<script language='JavaScript'> window.location='som.php?ccode=$ccode'; </script>";
        echo "OK";
        exit();
    

    }
    [/php]La cosa che mi fa letteralmente impazzire è che l'errore compare e scompare quando ha voglia ed è indipendente da quello che si inserisce perchè capita che se un giorno lo dà, due giorni dopo inserendo lo stesso prodotto va tutto bene...

    Qualche idea? :bho::x
    Aiutooooooo !
    Grazie a tutti come sempre e buona serata


  • ModSenior

    Ciao Sara1985,

    verifica che $data sia un array.


  • User Attivo

    Ciao!
    l'avevo pensata anche io facendo una ricerca con Google ero giunta alla stessa soluzione (al di là che da niubba devo capire come fare)... però la domanda è:
    O il codice va o non va. Da cosa può dipendere che il 95% delle volte funziona senza problemi ed il restante 5% dà sempre questo errore? per di più una volta che inizia continua per parecchio tempo... Può essere il DB che "impazzisce" ???


  • ModSenior

    Quale sono le righe di codice con cui dai un valore a $data?


  • User Attivo

    Tutte più o meno così per esempio

    [PHP]
    <select class='text' name='mostra' style='width:100px' tabindex='6'>
    <option value='<?=$mostra?>'><?=$mostra?></option>
    <option value='SI'>SI</option>
    <option value='NO'>NO</option>
    </select>

    [/PHP]

    Passate con un POST che verifica anche se i campi obbligatori sono stati compilati

    [PHP]
    <form action='<?=$PHP_SELF?>' name=search method=post onSubmit='return checkrequired(this)'>
    [/PHP]

    Spero di aver risposto correttamente alla tua domanda... 🙂


  • ModSenior

    In quelle righe di codice non c'è nulla che possa condurmi a $data, forse è meglio se posti la versione integrale della pagina di cui parliamo.


  • User Attivo

    rieccomi qui...
    sempre il solito problema... ora prima di cercare di risolverlo.. vorrei capire da cosa può dipendere. Mi spiego: perchè va tutto bene per mesi e poi di punto in bianco, senza che il codice venga toccato, si ripresenta il problema? sempre lo stesso! 😞
    Prima vorrei capire come è possibile.. e poi capire anche come risolverlo...
    Qualcuno ha idee in merito innanzitutto sul perchè?
    Grazie! 🙂