Visualizzazione risultati 1 fino 7 di 7

Discussione: simplexml_load_file non riesco a usare file esterni

  1. #1
    Guest

    Predefinito simplexml_load_file non riesco a usare file esterni

    Ciao a tutti ho un problema a caricare un file che si trova su un server esterno (api.twitter.com) Ecco il mio codice
    Codice PHP:
    $file = 'http://api.twitter.com/1/users/show.xml?screen_name=scanu_account';
    $xml = simplexml_load_file($file);
    Questo è l'errore che ricevo:

    Warning: simplexml_load_file(http://api.twitter.com/1/users/show.xml?screen_name=) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in [path]/includes/class_bootstrap.php(430) : eval()'d code on line 345

    Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://api.twitter.com/1/users/show.xml?screen_name=" in [path]/includes/class_bootstrap.php(430) : eval()'d code on line 345


    api.twitter.com dovrebbe essere abilitato nella white list, nonostante cio vedendo che mi dava problem ho attivato server to server tramite sms ma niente continua a non funzionarmi :(

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Le stesse righe funzionano senza problemi sul mio account. Se le metti in uno script a parte, vanno?

    Così per supporre, sei certo che il problema sia li? (è roba dentro una chiamata ad eval(), magari non gli arrivano i parametri corretti?)

  3. #3
    Guest

    Predefinito

    Si è dentro una funzione eval :/ Sto usando vbulletin e il suo sistema di plugin quindi potrebbe essere quello ora chiedo anche li comunque per il fatto che é dentro eval cosa puo causare l'errore?

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Se noti l'errore specifica che non riesce a caricare la pagine http;//api.twitter.com/1/users/show.xml?screen_name= senza un valore per il parametro.

    Può darsi quindi che alcune variabili non siano leggibili dall'interno dell'eval. Controlla se questo è il caso, e se è possibile passarne i valori come parametri da qualche parte.

  5. #5
    Guest

    Predefinito

    Ho compiato il codice php vecchio ma nonostante io abbia messo "screenname=mionomesutwitter" l'errore rimane... Mentre su localhost lo stesso codice eseguito su eval non mi da problemi.. sembra essere un problema di altervista quando cerco di caricare file esterni dentro la funzione eval

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Citazione Originalmente inviato da scanu Visualizza messaggio
    sembra essere un problema di altervista quando cerco di caricare file esterni dentro la funzione eval
    Verifichiamo: confermi che questo codice funziona
    Codice PHP:
    $file = 'http://api.twitter.com/1/users/show.xml?screen_name=scanu_account';
    $xml = simplexml_load_file($file);
    var_dump($xml);
    mentre questo no?
    Codice PHP:
    $codice = <<<FINE
    $file = 'http://api.twitter.com/1/users/show.xml?screen_name=scanu_account';
    $xml = simplexml_load_file($file);
    var_dump(
    $xml);
    FINE;

    eval(
    $codice);
    Nel caso, devi proprio passare per eval()? Ti obbliga vbulletin (strano), o c'è un altro modo?

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Verifichiamo: confermi che questo codice funziona
    Codice PHP:
    $file = 'http://api.twitter.com/1/users/show.xml?screen_name=scanu_account';
    $xml = simplexml_load_file($file);
    var_dump($xml);
    mentre questo no?
    Codice PHP:
    $codice = <<<FINE
    $file = 'http://api.twitter.com/1/users/show.xml?screen_name=scanu_account';
    $xml = simplexml_load_file($file);
    var_dump(
    $xml);
    FINE;

    eval(
    $codice);
    Nel caso, devi proprio passare per eval()? Ti obbliga vbulletin (strano), o c'è un altro modo?
    Grazie mille per il tuo supporto, purtroppo non sono io a usare la funzione eval ma è il sistema di plugin di vbulletin in pratica per aggiungere codici ai file php di vbulletin per comodita hanno messo nel pca un form dove metti codice php e poi viene richiamato tramite funzione eval nei file php, quindi quello che ho fatto è prima mettere questo codice
    in un plugin (dentro l'eval) e mi dava gli errori
    Codice PHP:
    $file = 'http://api.twitter.com/1/users/show.xml?screen_name=scanu_account';
    $xml = simplexml_load_file($file);
    var_dump($xml);
    Poi ho provato a metterlo furoi dall'eval ovvero sono andato nel corrispondente file php e sotto alla funzione eval ci ho messo il codice tutto funzionava bene, il problema è che ha me serve usare il sistema di plugin non modificare direttamente i codici php. Comunque è un bug di altervista o "cose" di sicurezza?

Regole di scrittura

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