Fer un FTP des del PHP
Això no és cap manual de com fer un FTP des del PHP, com
sembla pel titol. Per això ja hi ha la web de PHP, on podeu buscar informació sobre la
funció ftp_put (es) per exemple.
El que vull explicar és com funciona internament la funcion ftp_put
perquè no queda gens clar al manual del PHP ni a cap forum d’ajuda.
Perquè és tan important saber això? doncs perquè
sinó els exemples que hi ha a les web de PHP o dels forums no funcionen
ni a la de tres.
Centraré tota l’explicació en base a l’exemple de la web. A la web hi ha dos trossos de codi un .html i .php, el primer mostra el formulari per pujar el fitxer i el segon el codi que fa el ftp per pujar el fitxer:
<html><body marginwidth=4 marginheight=4 topmargin=4 leftmargin=4 bgcolor=white vlink="#0000ff" link="#0000ff">
<form name="Attachments" method=POST action="sendimage.php" enctype="multipart/form-data">
<input type=hidden name=box value="">
<tr> <td nowrap width="1%"> <b>Image:</b></td> <td colspan=2>
<input type=file name=source_file size=20> <br>
</td> </tr> <input type=submit name=btnSubmit value=Submit size=20 style="border: 1px solid #0000FF"></form>
</body> </html>
D’aquest codi és important fixar-se, a part del que ja explica la web, que el camp d’input és de tipus ‘file’ i li posem de nom a aquest camp: ‘source_file’. Seria normal pensar que el tipus ‘file’ és equivalent a una cadena (string), però no és així sinó que és una taula (array). Aquí teniu un exemple de valor que pot agafar la taula de tipus ‘file’ anomenada $sourcefile:
Array ( [name] => foto.jpg [type] => image/jpeg [tmp_name] => /tmp/phpFpMtnb [error] => 0 [size] => 44050 )
D’aquí és important adonar-se que “name” conté el nom del fitxer al ‘site origen’, el tipus conté el tipus de fitxer que s’esta pujant segons MIME, “tmp_name” (molt important) conté el nom del fitxer temporal, amb el que es guarda el nostre fitxer al servidor de PHP. Aquest fitxer és molt important perquè és el fitxer que realment es pujarà per FTP al site destí.
De fet, sembla extrany però si ens ho pensem bé és obvi. Perquè el PHP no pot fer un ftp des del nostre directori origen, ja que és codi que s’executa al servidor. Per tant, quan el PHP vulgui fer un FTP només ho podrà fer de fitxers que hi hagi al servidor i no al nostre PC. Suposo que ara queda clar, el perquè.
Al camp “errors” de la taula es guarda el codi d’error que retorna la funció ftp_put al fer l’ftp. Per últim “size” ens indica la mida del fitxer.
El codi de sendimage.php que és el fitxer que crida l’anterior formulari és el següent:
Hem de capturar l'array del form $source_file=$_FILES["source_file"];$ftp_server='example.com';//serverip $conn_id = ftp_connect($ftp_server);
// login with username and password $user="user"; $passwd="password"; $login_result = ftp_login($conn_id, $user, $passwd);
// check connection if ((!$conn_id) || (!$login_result)) { echo "FTP connection has failed!"; echo "Attempted to connect to $ftp_server for user $ftp_user_name"; die; } else { echo "
Connected to $ftp_server, for user $user
"; }// Posem el mateix nom de destí que d'origen $destination_file=basename($source_file["name"]); echo ("
"); print $destination_file;echo ("
");// Pugem el fitxer temporal tal com hem explicat abans $upload = ftp_put($conn_id, $destination_file, $source_file["tmp_name"], FTP_BINARY);
// check upload status if (!$upload) { echo "FTP upload has failed!"; } else { echo "Uploaded $source_file["name"] to $ftp_server as $destination_file"; }
// close the FTP stream ftp_close($conn_id); ?>
D’aquest codi és important fixar-se en dos coses:
1) a la primera línia capturem la taula (array) de tipus ‘file’ que ens envia el formulari, aquesta taula (array) com ja hem dit és el que conté la informació del fitxer a enviar.
2) la línia del ftp_put, cal fixar-se que com a fitxer origen passem el camp ‘tmp_file’ del array de tipus ‘file’ anomenat ‘source_file’.
Suposo que la resta del codi és molt clar, si no és així ja sabeu que heu de fer: preguntar.
Ahir varem anar al Forum

Doncs això nanos, que ja he anat al Forum 2004 i a la sortida li vaig posar un 8
( em van fer una d’aquelles enquestes amb una Tablet PC amg guindows CE ).
Així que em va agradar molt ús ho recomano. Tot i que
també he de dir que estic fet pols de tant caminar. Tot i haver
d’afegir: me l’imaginava més gran.
Vaig fer un munt de fotos, i com no, uns quants ‘mini-videos’ dels que fa la
càmara. Així que ús podeu passar per l’àlbum de
fotos a mirar-les. (
fotos i videos del forum).
Com sempre i com a bon seguidor de la gent del Terrat, estic malalt de fer sumes, així
que aquí teniu la meva suma:
FORUM 2004 = Expo Sevilla + Port Aventura + Comediants
El millor: Circ Rumanés un súper 10!!!!
El pitjor: La pudor que a vegades ve de la incineradora que
hi ha al costat
Festa major 2004
Avui tocava el castell de foc, les fotos en primicia de no fa ni 5min:

si en voleu més, podeu anar a l’
album de fotos i fins hi tot ús he fet un video amb la
càmara.
Els coneixeu???


Si algú es vol fer un ‘retrat robot’ o un intent 🙂 Portrait Illustration
Maker
El ‘chiste’ de la ‘lombriz’ by Pof
No sé com aneu de memòria mussols, però quan varem anar
a la ESILUX’04 pel camí el Pof va explicar l’acudit de la ‘lombriz’ i no
me’l vaig voler perdre així que el vaig grabar al mòbil. Doncs
ahir buidant coses dels ‘voicememo’ del mòbil vaig trobar-lo i no he
pogut evitar la temptació de penjar-lo aquí; perquè tots
el poguem escoltar quan vulguem.
Chiste de la
lombriz<%image(1/20040813-audio.png|48|52|Chiste de la lombriz)%> by
Pof(.mp3)
Patch Management de Microsoft i W2k3 Security Guide v1.3
Simplement un parell de referències la primera és sobre com es
fa el desplegament de ‘patches’ de seguretat dins la xarxa de M$:
· Entrevista amb
audio (.wma)
A continuació ús poso un link a un fitxer autodescomprimible
(.exe) amb una serie de .pdf, .inf i altres informacions prou útils per
securitzar el desplegament dels sistemes W2k3. Si no ús entereu massa
d’Active Directori (AD) també va bé per agafar conceptes: