Articoli correlati ‘php’

preg_match_all – pcre problem – php5

22 luglio 2009

Di recente mi è capitato di caricare un sito da un server Debian con php5 a server CentOS sempre con php5 però magicamente il software non funzionava più.
Continua a leggere: preg_match_all – pcre problem – php5

eyeOS – Sistema operativo WEB – php/ajax

22 aprile 2009

Navigando in giro per la rete in cerca di applicazioni interessanti ho trovato un sistema operativo web molto interessante completo di applicazioni dedicate.

Il codice di questo sistema operativo sembra studiato con intelligenza e in più è totalmente gratuito.

Il link al sito dal quale scaricarlo è il seguente:

Sito italiano

Sito ufficiale

Per poter scaricare alcune applicazioni gratuite per il sistema operativo eyeOS vi segnalo il link:

eyeApps

Attraverso l’apposito eyeOS Toolkit è possibile anche creare le propie applicazioni per il proprio eyeOS.

Screenshot:

eyeos - screenshot

eyeos - screenshot

How-to – Problema con Adobe Flex Upload +[PHP] Sessione + Firefox !

9 aprile 2009

In un’applicazione di upload di files multipli in flex3 ho un problema: non mi passa allo script php la sessione corrente, la cosa strana di questo problema è che ciò non succede con internet explorer ma con firefox e safari (su altri non ho testato).

La soluzione a questo bug è facile:

1) Nello script flex aggiungiamo la classe che ho trovato nel seguente blog:

http://myflex.wordpress.com/2008/11/12/actionscript-cookie-util/

//code from myflex.wordpress.com
package de.aggro.utils
{
	import flash.external.ExternalInterface;
	public class CookieUtil
	{
		public function CookieUtil()
		{
		}
 
		private static const FUNCTION_SETCOOKIE:String =
            "document.insertScript = function ()" +
            "{ " +
                "if (document.snw_setCookie==null)" +
                "{" +
                    "snw_setCookie = function (name, value, days)" +
                    "{" +
                        "if (days) {"+
							"var date = new Date();"+
							"date.setTime(date.getTime()+(days*24*60*60*1000));"+
							"var expires = '; expires='+date.toGMTString();"+
						"}" +
						"else var expires = '';"+
						"document.cookie = name+'='+value+expires+'; path=/';" +
		            "}" +
                "}" +
            "}";
 
		private static const FUNCTION_GETCOOKIE:String =
            "document.insertScript = function ()" +
            "{ " +
                "if (document.snw_getCookie==null)" +
                "{" +
                    "snw_getCookie = function (name)" +
                    "{" +
                        "var nameEQ = name + '=';"+
						"var ca = document.cookie.split(';');"+
						"for(var i=0;i < ca.length;i++) {"+
							"var c = ca[i];"+
							"while (c.charAt(0)==' ') c = c.substring(1,c.length);"+
							"if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);"+
						"}"+
						"return null;" +
		            "}" +
                "}" +
            "}";
 
        private static var INITIALIZED:Boolean = false;
 
		private static function init():void{
			ExternalInterface.call(FUNCTION_GETCOOKIE);
			ExternalInterface.call(FUNCTION_SETCOOKIE);
			INITIALIZED = true;
		}
 
		public static function setCookie(name:String, value:Object, days:int):void{
			if(!INITIALIZED)
				init();
 
			ExternalInterface.call("snw_setCookie", name, value, days);
		}
 
		public static function getCookie(name:String):Object{
			if(!INITIALIZED)
				init();
 
			return ExternalInterface.call("snw_getCookie", name);
		}
 
		public static function deleteCookie(name:String):void{
			if(!INITIALIZED)
				init();
 
			ExternalInterface.call("snw_setCookie", name, "", -1);
		}
 
	}
}

2) In seguito richiamiamo lo script php dalla nostra applicazione flex passandogli la sessione:

Nel mio caso il file Mxml dell’applicazione è:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:com="com.flashdev.file.*" layout="absolute"
	creationComplete="initApp()" backgroundColor="#FFFFFF">
 
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import com.utils.CookieUtil;
			private const _strDomain:String = "http://www.dominio.ext/";
			[Bindable]
			private var _strUploadScript:String = new String("http://www.dominio.ext/flex_uploader.php");
 
			// Initalize
			private function initApp():void {
				Security.allowDomain(_strDomain);
				//qui aggiungo la correzione al bug di firefox e Safari
				_strUploadScript += "?PHPSESSID=" + CookieUtil.getCookie("PHPSESSID");
				// define the type list for the upload
				uploader.typeList = [new FileFilter("Image files (*.jpg, *.gif, *.png, *.pdf, *.zip, *.xls)", "*.jpg;*.gif;*.png;*.pdf;*.zip;*.xls", "JPEG;jp2_;GIFf;PNGf;PDF;ZIP;XLS")];
				uploader.maxSize = 1048576;
			}
 
		]]>
	</mx:Script>
 
	<mx:Canvas width="400" height="300" horizontalCenter="1" verticalCenter="1">
		<com:FileList id="uploader"
			width="100%" height="100%"
			uploadUrl="{_strUploadScript}"
			uploadComplete="Alert.show('File(s) have been uploaded.', 'Upload successful')"
			uploadIOError="Alert.show('IO Error in uploading file.', 'Error')"
			uploadSecurityError="Alert.show('Security Error in uploading file.', 'Error')"/>
	</mx:Canvas>
 
</mx:Application>

Di seguito allego anche il file di progetto: flexfinder

How-to – Spedire una mail con flash/php – Download esempio Form Flash/php

24 marzo 2009

Da poco mi è capitato di dover fare un modulo di richiesta informazioni in flash il quale doveva poi essere spedito via mail tramite php.

Senza molte spiegazioni posto il sorgente del formulario con lo script php allegato (compreso di classi per la spedizione della posta in formato corretto) flashphpform . Lo script esegue solo un breve controllo se alcuni campi sono compilati e se la mail è inserita, al momento non ho avuto il tempo di sistemare i vari controlli di sintassi.

Più avanti posterò un nuovo file più completo.

Buon lavoro ;)

Problema con le GD per il resize delle immagini png trasparenti con php – how-to ubuntu distro

10 marzo 2009

L’installazione del php di default su un sistema linux ubuntu o Debian non compila il php con la versione bundled delle librerie GD, percui alcune funzioni php tipo “imageantialias” non funzionano. Per poter utilizzare tali funzioni bisogna ricompilare il php con le librerie GD corrette.

Primo passo:


    # Installare build tools, debian helpers e fakeroot
    apt-get install build-essential debhelper fakeroot
    # il codice sorgente risiede in /usr/src
    cd /usr/src
    # Scaricare il sorgente PHP
    apt-get source php5
    # Installare tutti i pacchetti richiesti per compilare PHP5
    apt-get build-dep php5
    cd php5-5.2.4

La configurazione su come un package viene compilato risiede nella cartella debian del package.

Per configurare il processo di compilazione apriremo il file

vim debian/rules

In questo file sostituiremo la riga

--with-gd=shared,/usr --enable-gd-native-ttf 

con

--with-gd=shared --enable-gd-native-ttf 

Questo fà si che il processo di compilazione usi la versione bundle delle librerie GD e le faccia diventare librerie condivise.

Una volta riconfigurato il nostro pacchetto :


./configure

potremmo quindi instalarlo così:


    # build the php5-* packages
    dpkg-buildpackage -r
    cd ..
    # Install the new php5-gd package
    dpkg -i php5-gd_5.2.4-2ubuntu5.5_i386.deb

Sarà poi necessario solo un restart di apache:

/etc/init.d/apache2 restart

per poter iniziare ad usufruire delle librerie GD nuove.