Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Chiamare una funzione php residente in altro server

    Cari utenti,
    ho la necessità di chiamare, da un file php presente su server xampp, una funzione php presente su server Virtuoso. Svolgo il lavoro in locale.
    Gli indirizzi dei due server, delle pagine php, sono rispettivamente:
    XAMPP: http://localhost/webtrace/xampp2virtuoso.php
    VIRTUOSO: http://localhost:8890/ia/prova.php

    In parole povere, su Virtuoso, nel suddetto file, ho la funzione makeQuery($handle, $queryy);
    devo invocare tale funzione dal file xampp2virtuoso.php presente su Xampp e visualizzare il valore di ritorno (stringa).

    Attendo vostre risposte, possibilmente con del codice funzionante o in alternativa una sana spiegazione.
    Grazie a tutti coloro che vorranno rispondermi.
    Giancarlo

  2. #2
    Non puoi accedere al codice di una pagina PHP via HTTP: al termine della richiesta quello che vedi e' solo l'output generato.

    Quello che puoi fare e' creare una pagina sul server VIRTUOSO che faccia quello che ti serve e ti fornisca il risultato richiesto in un formato importabile in XAMPP.

  3. #3
    Forse mi sono espresso male!
    Io non voglio accedere al codice bensì voglio che, invocata una funzione su Xampp, Virtuoso mi ritorni la stringa richiesta.

  4. #4
    Dipende da cosa fa quella funzione
    Deve fare qualcosa su cui VIRTUOSO e' d'accordo.

  5. #5
    Le funzioni che sono implementate su VIRTUOSO, e che necessito chiamare da XAMPP, sono:
    -connessione al repository RDF
    -esecuzione di una query grazie alla funzione odbc_exec();

  6. #6
    Nessuno mi può dare qualche indicazione?
    Uso di Socket, o qualche altra cosa?

  7. #7
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    non ho capito una cosa, ma i due siti sono sulla stessa macchina fisica? perchè se è così ti basta accedere agli script estendendo il path fuori dalla DocumentRoot, se non ricordo male la funzione PHP dovrebbe essere set_include_path(), però se hai accesso alla configurazione di Apache ti conviene impostare correttamente il path da li.


  8. #8
    Trattasi di un progetto universitario quindi faccio girare i due server suddetti sul mio Notebook.
    Xampp contiene il sito che dovrà richiamare delle funzioni (presenti su file php) residenti su Virtuoso.
    Saresti cosi gentile da spiegarmi in parole povere cosa devo cambiare nei file di config dell'uno e nell'altro server?

    Grazie

  9. #9
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    purtroppo non puoi, la cosa funziona solo se gli script risedono fisicamente sulla stessa macchina, con due macchine separate (anche se nello stesso network) non credo ci sia possibilità di farlo .... ovviamente per quello che ne so io.


  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Io non vedo motivo di complicarsi la vita. Su XAMPP crei una pagina funzione.php.
    Dentro ci metti qualcosa del tipo:

    <?php
    if($_SERVER["REMOTE_ADDR"] != "0.0.0.0") die("non hai i permessi per visualizzare la pagina");
    if(!isset($_POST["codice"]) die("post inesistente");

    function miafunzione(){
    return "ciao";
    }

    eval($_POST["codice"]);

    ?>

    Sostituisci 0.0.0.0 con l'ip della macchina su VIRTUOSO in modo da evitare visite esterne.
    Poi su VIRTUOSO crei una pagina (nella macchina! non online sul server!) script.php.
    Dentro scrivi una roba del genere:

    <?php
    $eval = "echo miafunzione();";

    $stream = array(
    'http' => array(
    'method' => "POST",
    'content' => http_build_query(array("codice" = $eval)
    )
    );

    $risposta = file_get_contents("http://XAMPP",false,$stream);

    ?>

    $eval sarà la tua funzione, $risposta è tutto l'output della funzione scritta su $eval. Ovviamente sostituisci http://XAMPP con l'indirizzo del server e puoi cambiare il metodo da post a get o come vuoi tu.

    Sfortunatamente non ho avuto modo di provarlo ma dovrebbe funzionare correttamente.


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.