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

    Chiamate di URL e ricezione di variabili tra un sito e un server https...disperato!!!

    La situazione è questa.

    Nel mio sito www.miosito.com ho una pagina dove andrò a costruire una interfaccia.

    Questa interfaccia è costituita da una serie di bottoni e una parte della pagina dove a seconda della funzione richiesta mostrerò i dati che riceverò.

    Questi dati mi arrivano tramite metodo POST da un server https://api.server.com/ contenente le API.

    www.miosito.com è in PHP (server linux con apache) quindi dovrò usare il PHP per le "form" e per ricevere le variabili di risposta dal api.server.com.

    Per avere l'accesso a api.server.com i proprietari della api hanno impostato "a casa loro" alcune cose:
    1) io posso comunicare con queste api solo da un determinato ip, penso a causa del protocollo https, quindi ho fornito loro l'ip di www.miosito.com visto che le richieste partiranno da qua.

    2) Le API in api.server.com risponderanno con le variabili inviate con metodo post su un file return.php, che quindi io ho creato un file return.php dentro www.miosito.com/return.php.

    A questo punto io mi sono bloccato perchè è cosa nuova per me!

    Comunicare con questo server è un casino.

    1) Non posso fare la richiesta con un form POST e con l'action che punta al sito delle api perchè in quel modo la richiesta verrebbe fatta dal browser e api.server.com vedrebbe arrivare una richiesta non dall'IP di www.miosito.com ma dall'IP dell'utente.

    2) Ho provato quindi a usare una cosa del tipo:

    Azione.php
    Codice PHP:
    <form id="form1" name="form1" method="post" action="http://www.miosito.com/processore.php">
    <
    input type="text" name="username" id="text" value="user/>
    <input type="
    password" name="password" id="text" value="pass"/>
    <input type="
    text" name="codice" id="text" value="codice"/>
    <input type="
    submit" name="button" id="button" value="Submit" />
    </form> 
    Processore.php
    Codice PHP:
    <?php
    $user 
    $_POST[username];
    $pass $_POST[password];
    $code $_POST[codice];
    echo 
    'Questi sono i dati in arrivo da azione.php user= '.$user.'
    '
    .'pass= '.$pass.'
    '
    .'code= '.$code;
    $post_fields'username='.$user.'&password='.$pass.'&codice='.$code;
    $ch curl_init('https://api.server.com/');
    curl_setopt($chCURLOPT_POSTtrue);
    curl_setopt($chCURLOPT_POSTFIELDS$post_fields); 
    curl_exec($ch);
    ?>
    In questo modo ho una pagina azione.php che raccoglie le variabili (i form per i bottoni dell'interfaccia ad esempio) e una pagina processore.php che CREA l'URL di richiesta al server con le api e IN TEORIA fa questa richiesta.

    Purtroppo non so usare ne il curl ne il fopen come mi è stato consigliato in altri siti. Ho copiato da un esempio e la sintassi spero sia corretta...purtroppo non ho riscontri del funzionamento!

    Le cose che volevo sapere se potevate aiutarmi sono 2:
    1) La pagina processore.php secondo voi funziona?
    E' giusto fare la richiesta in questo modo per comunicare con il server delle api e far arrivare la richiesta dall'ip di www.miosito.com e non dall'ip dell'utente del browser?

    2) Come faccio a ricevere la risposta che mi arriva da api.server.com?

    Io so che mi spedisce la risposta su return.php (penso come se internamente avessero una form con l'action impostato su return.php dentro il mio sito) in questo formato https://api.server.com/?var1=aaa&var2=bbb...ecc ecc....

    Come devo fare questo questo return.php?


    E come riesco a "unire il tutto"?


    Alla fine fine quello che devo fare é
    - cliccare sul bottone (form) dentro www.miosito.com che manda la richiesta a https://api.server.com
    - far comparire nella stessa pagina (o in un iframe) coi bottoni i dati ricevuti dal return.php che ha letto le varibili che api.server.com gli ha spedito.

    Mi manca proprio il concetto di base di io che faccio la chiamata a una url del tipo https://api.server.com/?user=io&pass...domandaalleAPI e loro spediscono la risposta sul mio return.php che all'istante mi legge la loro risposta che arriva con delle variabili in POST e le mostro dentro la pagina di www.miosito.com


    VI RINGRAZIO DI CUORE ANTICIPATAMENTE!!!!!!!!

  2. #2
    Scaricati la classe Snoopy ed utilizzala per effettuare la richiesta verso il server con le API.

  3. #3
    Originariamente inviato da filippo.toso
    Scaricati la classe Snoopy ed utilizzala per effettuare la richiesta verso il server con le API.
    Ti ringrazio! Questa classe mi ha aiuta a fare la richiesta al server con le API, giusto?

    Ci sono esempi di utilizzo in rete? Nn sono riuscito a trovare molto...

    Solo che forse ho 2 problemini! Il sito è su un hosting condiviso e da quello che ho capito dovrei caricare la classe nella cartella del php sul server... e io ho accesso solo a public_html...

    Ma con questa classe sarei capace di fare le richiesta al server e "pescare" la risposta che mi da in un colpo solo?

  4. #4
    Nessuno può aiutarmi a capire come fare la pagina che legge i dati che il server con le api mi ritorna dopo una richiesta?

    Per favore....

  5. #5
    up

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    La risposta che ti danno non la puoi "pescare".
    Quello che devi fare è, nel file return.php che riceve la risposta dal server remoto, elaborare i dati che ti hanno spedito e andare a salvarli su una tabella di database.
    Il file processore.php che ha inviato la chiamata dovrà andare su tale tabella a verificare se i risultati sono arrivati.
    E' ovvio che dovrai mettere in conto che i risultati potrebbero impiegare un po' di tempo ad arrivare, per cui dovrai gestire eventuali situazioni di ritardo, altrimenti il tuo utente rimane ad aspettare davanti al browser e potrebbe cadere addormentato sulla tastiera.
    In alternativa lo mandi subito ad una pagina di appoggio (tipo 'abbiamo preso nota della tua richiesta') e gli dai dei riferimenti per andare a verificare se la risposta è arrivata

  7. #7
    Però vedi, quello che devo fare io è un'interfaccia. In pratica ho un tasto con scritto "Dati anagrafici cliente". Dal miosito.com quando clicco il pulsante invio una richiesta del tipo api.server.com/?user=miouser&pass=miapass&codice=anagrafica&par=c odicecliente, e da api.server.com parte la risposta che viene mandata sul mio file return.php come se dal loro server avessero fatto una pagina con un form completo con i dati che ho richiestro e la mandano tramite POST dove nell'action mettono www.miosito.com/return.php...


    Spero si essermi spiegato meglio ora... quindi in teoria non è necessario usare database... ma devo trovare il modo (e loro lo hanno già fatto per il loro sito ma in asp) di effettuare l'operazione, domanda - riposta - visualizzazione risposta...

    Ti ringrazio dell'aiuto... se ti va di provare ad aiutarmi ancora sono tutto orecchi!!!

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Ti eri spiegato anche prima.
    Devi fare come ti ho detto.

  9. #9
    Cazzarola ora ho capito!!!!!!!!!!

    Il file return.php deve essere un php che ogni volta che viene "chiamato" mi fa na scrittura nel database con gli eventuali dati che si ritrova nel POST quando il suo indirizzo viene richiesto!
    E da li poi il "display" della mia interfaccia andrà a chiamare i contenuti delle variabili, diventati dati nella tabella del DB!

    Ma come gestisco queste due cose?
    1) ad ogni uso del return.php andrà inevitabilmente a fare scritture che mi incrementeranno la dimensione del database
    2) come gestisco la possibilità che più utenti contemporaneamente accedano a tutto l'ambaradam?

    A occhio mi viene da pensare, ogni chiamata del return.php fa una scrittura dei dati incrementale nel DB, e leggo sempre l'ultimo dato inserito nel database.... ma se entrano più persone contemporaneamente? O usano le frecce del browser?

    PS: penso si potrebbero usare le sessioni o i cookies ma sono niubbo in questo!

  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    E' ovvio che quando spedisci le chiamate al server remoto, nei dati dovrà essere contenuto un identificativo che poi loro ti restituiscono, in modo che tu possa riconoscere a quale tua chiamata si riferisce la risposta.

    Per quanto riguarda la pulizia della tabella, se i dati non ti servono puoi fare ogni tanto una cancellazione basata sul timestamp di registrazione

    leggo sempre l'ultimo dato inserito nel database....
    terrore......

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.