ITBazar, informatica 100%

l’informatica alla portata di tutti!

Un semplice scambio di dati tra Php e Flex/Flash

Inviato da Domenico Dibello il 12 Marzo 2008

Flex è la miglior tecnologia client side oggi disponibile, esteticamente di grande effetto, e ricca di componenti già pronti da popolare con sorgenti XML. Php è uno tra i linguaggio di scripting server side più utilizzati, con una vastissima documentazione una estrema facilità di utilizzo ed una affidabilità ormai collaudata.
Questo esempio è una dimostrazione di quanto sia facile creare una pagina in Flex con un back-end PHP, può essere una valida alternativo ai classici Form HTML.

Quello che vi propongo è semplicissima messaggeria, l’utente può lasciare un messaggio e firmarlo.
Ecco qui l’esempio realizzato e funzionante.


 

Vediamo prima come è strutturato il codice della pagina PHP che permette il salvataggio dei messaggi nel file e il listing dello stesso ma in formato XML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
 
$nome = $_POST['nome'];
$messaggio = $_POST['messaggio'];
 
//Se l'utente ha passato delle variabili tramite POST...
if($nome && $messaggio)	 
{	
	$f=fopen("messaggi.txt","a");	
	//Apro il file messaggi.txt in scrittura (a=append)
	fwrite($f,"$nome#$messaggio\n"); 
	//Scrivo nome e messaggio inserendo il separatore "#"
	fclose($f); 	//Chiudo il file
}
 
//Leggo l'intero contenuto del file nella variabile $testo
$testo=file_get_contents("messaggi.txt");
 
 
//Adesso stampo il contenuto del file in formato XML
echo "<main>";
$tnome = strtok($testo,"#");  
//Leggo fino al separatore (token) "#"
 
while($tnome !== false)	
{	echo "<item>";	
	echo "<nome>$tnome</nome>"; 	
	$tmessaggio=strtok("\n"); //Leggo fino al carattere "a capo"
	echo "<messaggio>$tmessaggio</messaggio>";		
	echo "</item>";
	$tnome=strtok("#");	//Leggo fino al carattere "#"
}
echo "</main>";
 
?>

Questa pagina che chiameremo messaggeria.php, si occupa di scrivere i messaggi inseriti dagli utenti nel file messaggi.txt che verrà salvato sul server. Se l’utente (nel nostro caso tramite Flex) passa tramite POST le variabili nome e messaggi, lo script messaggeria.php salva nome e messaggio nel file di testo e poi stampa il contenuto del file in formato XML.

La pagina visitata con un browser da in output qualcosa del tipo…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<main>
	<item>
		<nome>
			Bill Gates
		</nome>
		<messaggio>
			Windows Vista va una favola
		</messaggio>
	</item>
	<item>
		<nome>
			Linus Torvals
		</nome>
		<messaggio>
			Anche Linux non se la cava male
		</messaggio>
	</item>
</main>

Spero che la parte PHP sia abbastanza chiara, in caso contrario vi esorto a lasciare un commento con le vostre domande!

Adesso vediamo come costruire la parte Flex:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<mx:HTTPService fault="crea_fallito()" 
	        result="crea_feedback()" 
                id="creaRequest"
                url="http://www.itbazar.org/wfkjbn/messaggeria.php" 
                useProxy="false" 
                method="POST">
 
        <mx:request xmlns="">
            <nome>{nome.text}</nome>
            <messaggio>{messaggio.text}</messaggio>
        </mx:request>
</mx:HTTPService>
 
 
<mx:DataGrid x="18.5" y="10" width="343.5" height="143" 
	     id="datagrid1" 
             dataProvider="{creaRequest.lastResult.main.item}" >
	<mx:columns>
		<mx:DataGridColumn headerText="Nome" dataField="nome"/>
		<mx:DataGridColumn headerText="Messaggio" dataField="messaggio"/>			
	</mx:columns>
</mx:DataGrid>

Il blocco HTTPService permette al client Flex di inviare una richiesta (creaRequest) alla pagina “url” con il metodo POST (cioè esattamente come un form HTML) le due variabili nome e messaggio, prendendo i valori dal testo inserito dall’utente in due textbox.

Il DataGrid invece, cioè la tabella dell’esempio, ha come fonte il file XML ricavato dall’HTTPService, questa “fonte” tecnicamente si chiama dataProvider. Ogni riga della tabella quindi sara popolata con il contenuto del tag del nostro file XML.
HeaderText è il titolo della colonna che può essere scelto liberamente, dataField invece deve coincidere con un tag XML contenuto nel tag superiore .

A questo punto ogni volta che vogliamo aggiornare i dati dobbiamo solo inviare un creaRequest.send();

Pubblicato in Flash, Flex, Guide, ITbazar, Internet, Linux, Php, Tutorial | Nessun Commento »

Una Semplice autenticazione in PHP

Inviato da Domenico Dibello il 28 Febbraio 2008

login php autenticazione utenti

Il web 2.0 ci porta ad una navigazione sempre più completa e ad una interattività sempre maggiore, ogni sito internet che si rispetti (il mio ancora no! :-) ) gestisce degli utenti che possono interagire con il sito stesso. Per far tutto ciò è necessario avere un database contenente le generalità di ogni iscritto e soprattuto è necessario un meccanismo di autenticazione. Vedremo in questo articolo come realizzare una semplice autenticazione in PHP.

 

Innanzitutto creiamo una pagina per l’iscrizione degli utenti. Questa operazione è piuttosto semplice, basta creare un semplice form html come questo…

 

form iscrizione html php

 

Come vedete dall’immagine, quando l’utente ha inserito i suoi dati premendo il tasto “Iscriviti” viene redirezionato alla pagina “inserisci_utente.php”, questa pagina si occuperà di verificare la correttezza dei dati e di inserirli in un database. Se non sapete come usare database in PHP, cercate tra gli articolo di questo sito, e in ogni caso vi consiglio di utilizzare un “abstraction layer” che semplficherà tutto il lavoro, qui potete trovare documentazione in italiano di ADODB .ADODB permette di scrivere codice funzionante con tutti i database senza doverlo riscrivere per esempio se si passa da Mysql ad SqLite a Oracle a Postgres, etc…

Quandi l’utente sarà ora in grado di effettuare il login inserendo il suo indirizzo email ed una password, attraverso una pagina del genere…

controlla dati php login

Come potete notare sia nel form precedente che in questo, i dati vengono inviati ad una pagina PHP tramite un POST, ciò significa che le variabili Email e Password inserite dall’utente saranno disponibili nella pagina di arrivo ( in questo caso “controlla_dati.php”) utilizzando le variabili $_POST[’Email’] e $_POST[’Password’].

Quindi la pagina “controlla_dati.php” deve controllare che le variabili Email e Password siano contenute nel database degli utenti. La funzione get_user_id(email,password) restituisce l’id dell’utente con quell’email e password, e restituisce false se l’utente non esiste, dunque anche se la password è sbagliata. In teoria si potrebbero anche controllare se l’user esiste e la password è sbagliata ma questo è un esempio di autenticazione molto semplice. Se l’utente esiste attraverso un Javascript avviene un redirect verso la pagina principale del nostro sito, altrimenti si ritorna alla pagina di login precedente aggiungendo il messaggio “Email e password errati”.

controlla email password

E’ importante ovviamente che la pagina principale del nostro sito controlli che la variabile $_GET[uid] sia settata ed esista nel database, altrimenti un utente malintenzionato potrebbe saltare il login digitando direttamente l’Url della pagina principale.

autenticazione php pagina principale

Come possiamo vedere dal codice se la variabile $_GET[’uid’] non è settata avviene un redirect verso la pagina di login, e nel caso un malintenzionato disabilitasse i Javascript per evitare questo l’esecuzione della pagina, terminerebbe con un “die”. Se l’uid è settato ma non esiste nel database è probabile che qualcuno ha cercato di falsificarlo oppure si tratta di un utente non più esistente, dunque l’esecuzione termina. In caso contrario si da il benvenuto all’utente! :-)

Pubblicato in Guide, ITbazar, Linux, Mysql, Php, Tutorial | 1 Commento »

Tutorial PHP - Lezione 2, Stampare un messaggio sulla pagina web

Inviato da Domenico Dibello il 12 Febbraio 2008

hello world phpBene, procediamo nell’affascinante mondo della programmazione Server Side, adesso vedremo come ottenere il classico “Hello World” cioè un’applicazione che stampa un messaggio a video. Muniamoci di un qualsiasi editor di testo, meglio ancora se è un editor PHP. Io personalmente utilizzo Kate, l’editor di KDE, dopo aver ritoccato un po sfondo e colori della sintassi.
Come potete notare nell’illustrazione dobbiamo innanzitutto creare una pagina HTML. Dobbiamo indicare al parser che stiamo inserendo uno script php racchiudendolo nei tag <?php e ?>. Come tag di apertura possiamo usare anche semplicemente <?. Ogni istruzione termina con un punto e virgola. Il comando echo stampa una stringa nella pagina. Per vedere in funzione questo script basta salvare il file con nome helloworld.php e metterlo nella dir /var/www che è in genere la root directory di Apache, dopodiche potremo visualizzarla all’indirizzo http://localhost/helloworld.php

 

Attenzione a non fare confusione col concetto di server side, per esempio il comando: echo “Mi chiamo” . $nome; stamperà “Mi chiamo Mario”, se il contenuto della variabile nome è Mario, però il comando echo “<br><br>” non stampa la stringa “<br><br>” ma due righe vuote, questo perchè tramite PHP vengono generate pagine HTML dinamicamente, quindi il php scrive codice HTML che viene poi intergapretato dal browser. Se volessimo invece stampare la stringa “<br>” dovremmo usare il comando echo htmlentities(“<br>”). La funzione htmlentities converte ogni carattere in un’entità HTML. Il codice PHP è interpretato dal server, quindi a differenza di Javascript non troveremo nessuna traccia di PHP nel sorgente della pagina web. Se eseguiamo questo script nel browser e andiamo a visualizzare il sorgente non troveremo nessun tag php ma al suo posto il risultato che esso ha generato, cioè “Hello World”.

Pubblicato in Guide, Internet, Linux, Php, Tutorial, Ubuntu, Webmaster | Nessun Commento »

Tecniche per migliorare la posizione del proprio sito su Google

Inviato da Domenico Dibello il 10 Febbraio 2008

Seo, search engine optimization

Parliamo di SEO, Search Engine Optimization, (ottimizzazione nei motori di ricerca). La pagina da cui l’80% dei navigatori mondiali di internet parte per avventurarsi nel web è Google, detto questo, riusciremo sicuramente a comprendere che questo signore una enorme rilevanza sul web market, decidendo su quali link indirizzare gli utenti e quali invece mettere in secondo piano. Questo meccanismo ha spinto la nascita nel mondo del Business IT del SEO, il Search Engine Optimizator. Il SEO è il professionista che si occupa di tenere un sito web ai primi posti nei motori di ricerca o perlomeno di migliorare la visibilità del sito stesso attraverso modifiche ai contenuti trattati nel sito, al modo in cui esso vengono esposti, ai termini chiave utilizzati, etc… Per nostra fortuna Google, a differenza di altri colossi dell’informatica (non facciamo nomi) mantiene sempre un attegiamento trasparente e chiaro nei confronti dei suoi utilizzatori, mostrando i criteri attraverso i quali un sito viene indicizzato, l’insieme di questi criteri si chiama PageRank.

Approfondisci i criteri pagerank di Google

I fattori che contano maggiormente sono, gli inbound link, cioè i collegamenti in altri siti verso il nostro sito, la frequenza con cui il nostro sito viene aggiornato, il titolo della pagina assume un’importanza fondamentale, deve essere lungo tra i 50 e gli 80 caratteri, non deve essere più lungo o contenere solo parole chiave altrimenti viene etichettato come Spam da Google,

Cosa da non fare: (da GoogleRank)

“Non fare nulla allo scopo diretto di falsare i risultati. Se stai pensando di fare cose che non sono riportate su questo sito, allora probabilmente cerchi di andare oltre l’ottimizzazione, i motori ti potranno penalizzare.

Non elencare parole chiavi al di fuori dell’apposito meta tag. Nell’elencare intendiamo qualcosa del tipo keyword 1, keyword 2, keyword 3, keyword 4, ecc. Ci sono pochissimi motivi per i quali parole chiavi debbano essere elencate veramente in un ordine simile. E anche se hai proprio la necessità di fare qualcosa del genere, cerca di evitarlo.

Non usare lo stesso colore di testo che usi come sfondo. Questo è spesso usato per inserire parole chiavi in eccesso, attualmente i motori lo capiscono e ti penalizzeranno.

Non usare istanze multiple dello stesso tag. Ad esempio non usare due tag Title.

Non pubblicare pagine con contenuto identico. Non duplicare quindi i tuoi file o il tuo sito sotto nomi diversi.

Non inviare la registrazione di un sito in un motore più volte nell’arco della stessa giornata.

Non usare parole chiavi nel tuo tag keywords se non li usi anche da qualche parte nel testo della pagina.”

Pubblicato in Google, Guide, ITbazar, Internet, Tutorial, Webmaster | Nessun Commento »