Workaround php restriction include external files

05/06/2006 by - Php

Questo how-to propone un semplicissimo metodo per raggirare le restrizioni imposte (giustamente) dai fornitori di spazi web php riguardante l’inclusione di file esterni.

La direttiva che inibisce l’inclusione è allow_url_fopen = Off

Viene impostata a livello globale nel file di configurazione di php (php.ini) Mi trovo completamente d’accordo con la politica di Altervista.org che non permette l’inclusione di contenuto non locale via php. Trovo altrettanto giusto informare gli utilizzatori del servizio di hosting gratuito di come si raggira questa restrizione. Per gli utenti Linux non dovrebbero esserci problemi, per gli utenti windows penso seriamente di si 🙂 perciò mi soffermo esclusivamente sulla configurazione Windows

Iniziamo: gli strumenti “necessari” sono tre e nell’ordine

1) http://www.kalab.com/freeware/cron/cron.zip -> permette di eseguire operazioni ad orari e tempi prestabiliti senza intervento umano

2) http://www.interlog.com/~tcharron/wgetwin-1_5_3_1-binary.zip -> permette il download di pagine o file da riga di comando

3) ftp -> client ftp da linea di comando già presente su windows
Su sistemi Linux questi strumenti sono presenti di default, su windows ovviamente no! Scaricateli ed estraete il contenuto degli zip in una directory ad esempio c:\Programmi\cron

Per rendere l’esercitazione più reale prendiamoci come obiettivo la pubblicazione della foto in prima pagina della sezione sport di Repubblica. Oggi 5 giugno 2006 è dedicata al mitico Valentino Rossi fresco vincitore del GP del Mugello. Pagina target da inviare via ftp: http://www.repubblica.it/sport/index.html

valentino rossi

Prepariamo lo script per inviare la pagina, chiamatelo cron_repubblica.bat e salvatelo sempre in c:\Programmi\cron

<<<<<<< cron_repubblica.bat >>>>>>>

@echo off
wget -O index_sport_rep.html -o logfile.txt http://www.repubblica.it/sport/index.html echo open texilee.altervista.org> upload.ftp
echo texilee>> upload.ftp
echo password>> upload.ftp
echo cd /_php_script>> upload.ftp
echo del index_sport_rep.html>> upload.ftp
echo put index_sport_rep.html>> upload.ftp
echo quit>> upload.ftp
ftp.exe -v -s:upload.ftp
del upload.ftp
del index_sport_rep.html

<<<<<<</ cron_repubblica.bat >>>>>>>

Collegatevi via ftp al vostro spazio e create la direcotry /_php_script, dopodichè lanciate lo script con doppio click e refreshate la directory appena creata.

Se vi appare una finestrella del firewall di windows con avvertimenti vari riguardo al programmino che cerca di accedere alla rete rispondete con “SBLOCCA”. Ora che abbiamo la nostra paginetta uppata sul nostro spazio non ci rimane che scrivere poche linee di codice per trovare il percorso della foto di Valentino Rossi e automatizzare il tutto.

<<<<<< sport_repubblica.php >>>>>

<? // la var $img_url contiene il percorso della img…
$file = file_get_contents(‘index_sport_rep.html’);
$content = explode (‘<!– start cover –>’,$file);
$content = explode (‘” width=’,$content[1]);
$content = explode (‘src=”‘,$content[0]);
$img_url = “http://www.repubblica.it”.$content[1]; ?>

<img xsrc=”<?=$img_url?>” mce_src=”<?=$img_url?>” />
<<<<<< sport_repubblica.php >>>>>

Salvatelo come sport_repubblica.php e mettetelo nel vostro spazio ftp http://texilee.altervista.org/_php_script/sport_repubblica.php

Ultimo passo automatizzare la procedura: cron. Aprite il file “crontab” nella directory c:\Programmi\cron con un editor qualsiasi e commentate le entries di esempio. Aggiungete quella relativa al nostro script.

49 10 * * * c:\Programmi\cron\cron_repubblica.bat

Ogni giorno alle ore 10:49 del mattino verrà eseguito il nostro script. Se volete cambiare orario il primo il formato è * * * * * dove il primo * indica il minuto , il secondo * l’ora.

Se volete farlo eseguire a mezzanotte

0 0 * * * c:\Programmi\cron\cron_repubblica.bat

Se volete una volta ogni mezzora

0,30 * * * * c:\Programmi\cron\cron_repubblica.bat

Copiate un collegamento a cron.exe in Esecuzione Automatica in modo da farlo ripartire ad ogni riavvio.



2 risposte

  1. emh… immagino!

    in parole povere lo scenario prevede l’utilizzo di due programmi (wget e cron) che permettono rispettivamente il download di una pagina web e la pianificazione del upload su server che non permettono l’inclusione di file esterni!

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.