Accedi per seguire   
Seguaci 0
bit

Funzione File_get_content

7 messaggi in questa discussione

Ciao a tutti !!!

vengo subito al dunque. Sto creando un gestionale completamente scritto in php dove al suo interno voorrei inserire la possibilità di leggere da una pagina web ( su internet ) tutta una serie di articoli tramite l'utilizzo della funzione file_get_content('httt:\\sito\articoli') ovviamente opportunamente formattata tramite le reg exp memorizzando gli articoli nel mio db . Sin qui tutto okey se non fosse per un piccola complicazione che per accedere alla pagina degli articoli devo essere autenticato.

E' possibile in modalita silent autenticarsi sul sito e poi richiedere la pagina articoli interessata ? Non sono riuscito a trovare nessuna funzione che simula il login. Esistono altre soluzioni ?

Grazie

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Dipende dal tipo di sistema di login. Se questo accetta i dati con un GET ti basta creare il link giusto ed entri:

http://www.sito.tld/login.php?user=nome&pass=pass

Altrimenti diventa più difficile, potresti provare con la libreria cURL:

- http://it.php.net/curl

- http://curl.haxx.se/

Questa permette una gestione più ampia dei link, permette di gestire anche i cookie. cURL va installato sul server. Oppure, puoi tentare con fopen() ma credo che funzioni soltanto con il sistema di autenticazione tramite .htaccess e .htpasswd

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Grazie tempestiva risposta.

ho scaricato le librerie le ho installate ed ho eseguito questa parte di codice ma nulla sbaglio qualcosa.

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://localhost/prova/index.php');

curl_setopt($ch, CURLOPT_USERPWD, 'nigno:bit');

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$data = curl_exec();

curl_close($ch);

In queste librerie mi sfugge qualcosa e cioè come possono sapere il nome definito nella form di autenticazione della pagina 'http://localhost/prova/index.php' la documentazione ed esempi non se ne trovano molti.

AIUTO !!!

avete qualche notizia in più sull'utilizzo di .htaccess e .htpasswd con la funzione fopen ?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ho trovato la soluzione e mi sono risposto ad alcuni dubbi che avevo.

Invio la soluzione potrebbe sempre essere utilie a qualcuno.

1) leggere la pagina in html della form relativa al login ed estrapolare il nome del TAG relativo all'utente, alla password ed al tasto di submit ed inserirle in una variabile come di seguito:

$post="user=<utente>&password=<passwd>,login=submit";

2) Il gioco è fatto utilizzando la libreria CURL con il codice sotto indicato.

$pg_login= curl_init();

curl_setopt($pg_login, CURLOPT_URL, 'http://localhost/prova/index.php');

curl_setopt($pg_login, CURLOPT_POSTFIELDS,$post);

curl_setopt($pg_login, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($pg_login, CURLOPT_RETURNTRANSFER, 1);

$data = curl_exec($pg_login);

curl_close($pg_login);

Grazie a tutti e buona programmazione.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Perfetto, complimenti e grazie per aver condiviso la soluzione. Io non mi ero accorto della tua prima risposta.. ^_^ pardon

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

di nulla cereal, è un piacere trovare le soluzioni o parte della soluzione, mi spiego:

la soluzione proposta è valida, se e solo se, stiamo interrogando un sito su Apachescritto in php ma se il sito su cui vogliamo loggarci in modalità silent gira sotto IIS ed è scritto in asp (in più suddiviso in frame) la soluzione non funziona.

non sono riuscito a trovare nulla su web qualche consiglio ?

grazie 1000

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Riguardo al tuo problema un amico mi ha scritto questo:

Per capire come passare i dati di login per richieste post invece che get, potrebbe monitorizzare il funzionamento del sito su cui vuole loggarsi intercettando gli header che vengono trasmessi e vedere quali sono le coppie username/valore, password/valore (o qualsiasi altro header spedito per essere autenticati). E poi simulare la cosa via codice...

All'atto pratico però, in questo momento, non so dirti come realizzarlo perché anche per me è qualcosa su cui pensare. Se mi viene qualche idea ti faccio sapere. Ciao :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0