Visualizzazione risultati 1 fino 11 di 11

Discussione: [json] non funziona PHP5!

  1. #1
    Guest

    Question [json] non funziona PHP5!

    Ciao a tutti,
    ho seguito le istruzioni nelle FAQ e cliccando sull'icona dell'igranaggio ho messo PHP5 on.
    Purtroppo mi spunta solo un file .htaccess ed il mio index.php continua a non funzionare a dovere, ovvero non vengono visualizzate le parti che richiedono PHP5.

    Come posso mettere PHP5 affinchè funzioni?
    Devo creare delle speciali cartelle?

    Grazie per l'aiuto

  2. #2
    Guest

    Predefinito

    Ma di quali pagine parli? Visto che non hai un sito: http://belliqi.altervista.org/


    Ciao!

  3. #3
    Guest

    Predefinito

    Pardon,
    il sito non era visualizzabile perchè avevo racchiuso l'index e le librerie in una cartella php5, che avevo sentito servisse per usare il PHP5.

    Come ora si può vedere nel mio sito, che hai correttamente linkato, non funziona il mio motore di ricerca.
    Ho provato a postarlo su un dominio netsons di un amico, e funzionava.
    Il problema è una variabile di JSON che è utilizzabile solo in PHP5.
    Come uppo PHP5? Con la risposta delle FAQ non sono riuscito :(

    Grazie per l'assistenza

  4. #4
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Dovresti postare il codice sorgente o il frammento che pensi sia interessato, in modo da capire. Il supporto JSON è comunque disponibile.
    Gianluca

  5. #5
    Guest

    Predefinito

    Il problema penso sia nella funzione json_decode(), lo script funziona dappertutto ma non su altervista.
    Immagino il problema sia di PHP...

    Comunque ecco la parte del codice che non funziona come dovrebbe:

    Codice HTML:
    $obj_result = $json->decode($response);
    
    // Prendo i dati che mi servono
    $num_results = $obj_result->ResultSet->totalResultsAvailable;
    $results = $obj_result->ResultSet->Result;
    
    // Output: ora che ho tutti i dati li mostro
    // Dati su tutta la ricerca
    echo "Per la parola <b>'{$keyword}'</b> sono stati trovati <b>{$num_results}</b> risultati da JSON, eccone alcuni:<br /><br/>";
    
    // Dati sulla lista dei risultati
    foreach ($results as $result) {
      echo "<b>{$result->Title}</b><br/>";
      echo "<a href='{$result->ClickUrl}' target='_blank'><img src='{$result->Thumbnail->Url}' border=0 /></a><br /><br />";
    }
    
    echo "<b>JSON->decore() della risposta restituisco questa struttura dati:</b><pre>";
    var_dump($obj_result);
    echo "</pre>";

  6. #6
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    $response da dove arriva, da una richiesta server2server (curl, fsockopen, fopen su un url)?

    È valorizzata? Puoi provare a stamparla?
    Gianluca

  7. #7
    Guest

    Predefinito

    Posto la completa parte operativa del programma(partendo dal form e procedendo al resto) :

    Codice PHP:
    <div align="centre"> <form action='?'>
    <input name='keyword' size="45" value='<?=$_GET['keyword']?>'/>
    <input type='submit' value='Cerca' size="45" />
    </form> <br/></div>
    <?php

    // Includiamo JSON/PEAR
    include "JSON.php";
    $json = new Services_JSON();

    // Imposta chiamata a Yahoo!
    $keyword = (!empty($_GET['keyword'])) ? $_GET['keyword'] : 'JSOON';
    $num_of_results = 6;
    $appid = "YahooDemo"; // Qui inserirai il tuo id Yahoo!
    $request = "http://api.search.yahoo.com/ImageSearchService/V1/imageSearch?appid={$appid}&query=".urlencode($keyword)."&results={$num_of_results}&output=json";

    // Ottieni il risultato in una stringa $response
    $response = implode("", file($request));

    // trasforma il risultato in classe php
    // la funzione json_decode() esiste da PHP 5.2.0
    $obj_result = $json->decode($response);

    // Prendo i dati che mi servono
    $num_results = $obj_result->ResultSet->totalResultsAvailable;
    $results = $obj_result->ResultSet->Result;

    // Output: ora che ho tutti i dati li mostro
    // Dati su tutta la ricerca
    echo "Per la parola <b>'{$keyword}'</b> sono stati trovati <b>{$num_results}</b> risultati da<b>JSOON</b>, eccone alcuni:<br /><br/>";

    // Dati sulla lista dei risultati
    foreach ($results as $result) {
    echo
    "<b>{$result->Title}</b><br/>";
    echo
    "<a href='{$result->ClickUrl}' target='_blank'><img src='{$result->Thumbnail->Url}' border=0 /></a><br /><br />";
    }

    echo
    "<b>JSON->decore() della risposta restituisco questa struttura dati:</b><pre>";
    var_dump($obj_result);
    echo
    "</pre>";

    ?></div>


    </body>

    </html>

    Grazie, Gianluca, per la tua disponibilità

  8. #8
    Guest

    Predefinito

    Il codice è giusto ma altervista non lo prende... che devo fare del file .htaccess?

  9. #9
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Il problema sta qui:

    $response = implode("", file($request));
    Per importanti ragioni di sicurezza questo paradigma non funziona, ma va sostituito con:

    $ch = curl_init($request);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
    Gianluca

  10. #10
    Guest

    Predefinito

    Grazie mille Gianluca! Lo script ora funziona a meraviglia!

  11. #11
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Se ti capita di doverti connettere a qualcosa che sta al fi fuori della whitelist (vedi pannello) ricorda di sbloccare le connessioni server2server verso il resto del mondo (risorse e upgrades)
    Gianluca

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •