SP |11

PROGETTAZIONE E SVILUPPO DI APPLICAZIONI WEB

- portali / siti dinamici (CMS), software web-based e ottimizzazioni per mobile
- Sviluppo web services
- Integrazione con sistemi già esistenti e Social network

AMMINISTRAZIONE DI SISTEMI E RETI

- Amministrazione di server Windows
- Configurazione e gestione di servizi:
- WEB (Apache), FTP, FAX, IIS, Server Mail, VPN, DNS
- Database (MySQL, Microsoft SQL)
- Configurazione reti

SISTEMI EDI / WEB-EDI

- Configurazione di sistemi di trasmissione dati EDI (Electronic Data Interchange) e Web-EDI
- Strutture dati:
- EDIFACT (es. 90.1, D96A, D94B), FILCONAD, INHOUSE (strutture personalizzate), IDoc (Intermediate Document by SAP), VDA (VDA4905), XML, CSV
- Trasferimento tramite vari protocolli di trasmissione dati:
- HTTP, AS2, ISDN, FTP, MAIL
- Interfacciamento con sistemi SAP
- Relazioni di trasmissione con INTESA
- Progettazione, sviluppo, gestione e monitoring di sistemi basati sulla Business Integration Suite (BIS) di SEEBURGER.

Esperienza

E-VOLVING

agosto 2008 – presente | Terni, Italia

Programmer, Web engineer

- Amministratore di sistema (Ambiente Windows)
- Progettazione e sviluppo sistemi EDI (Electronic Data Interchange)
- Monitoring di sistemi EDI in Outsourcing
- Progettazione e sviluppo applicazioni web, sistemi B2B e B2C
- Integrazione di sistemi informativi preesistenti
- Servizio assistenza clienti

Segnalazioni

Giuseppe

PHP & Magento Developer
Collega che ha sostituito la mia posizione nell'ambito dei progetti EDI. Veloce nell'apprendere le nozioni e intraprendente per ottenere soluzioni rapide ed efficaci. Capacità di spaziare in varie tipologie di progetti nel settore web ed e-commerce.

Stefano

Senior LAMP and Javascript Developer at Immobiliare.it
I worked with Stefano for about two years. During the work we followed together I appreciated his ability to always have a ready solution to solve a problem, skills in teamwork and immediate understanding of matters not known. Great professionalism and skill in the management of systems, and in the exchange of data between interconnected systems. Good colleague in human relationships.

Erik

Consulente Informatico/EDI
Durante la permanenza in E-Volving ho avuto modo di lavorare nel campo EDI con Stefano Piacenti avendo l'occasione di apprezzare la sua preparazione e professionalità. Consulente altamente consigliato sia nel campo informatico in genere che EDI.

Login in PHP

2010-03-17

Questo post è rivolto a chi si avvicina alla programmazione in php per creare piccoli siti.
Una cosa simpatica ed a volte utile è non permettere la visualizzazione di alcuni contenuti se non si hanno delle credenziali di accesso.
Se si hanno dati importanti la cosa più sicura è proteggere il percorso tramite htaccess, dunque lato server, ma per una protezione di basso livello basta creare una procedura di login magari con 2 o più livelli di autorizzazione.
Per fare questo abbiamo bisogno di un DB dove andare a salvare le varie login e password che si vogliono creare ed useremo le variabili di sessioni per l'accesso.

Da qui potete scaricare i file di esempio.

login in PHP
form di login

La tabella (io l'ho chiamata "user_" del DB "login_") che andremmo ad usare si comporrà dei seguenti campi:

id_ = univoco per ogni login di accesso ed è autoincrementale e chiave;
nome_= nome o user della login;
pass_= password inserita codificata in md5 (per maggiore sicurezza);
liv_= livello dell'utenza.

Naturalemte possono essere inseriti i campi che si vogliono a seconda delle esigenze o se si vogliono dare info aggiuntive dell'utente collegato.

Cominciamo:
Inseriamo nella tabella 2 righe una per una login di livello "admin", che può vedere tutto, ed una per un livello "user" che può vedere solamente determinate pagine.
Riga 1:
id_=1
nome_=prova
pass_=098f6bcd4621d373cade4e832627b4f6 (questa è la cifratura in md5 della stringa "test")
liv_=admin
Riga 2:
id_=2
nome_=prova1
pass_=098f6bcd4621d373cade4e832627b4f6 (questa è la cifratura in md5 della stringa "test")
liv_=user

le rispettive query di inserimento nel DB sono le seguenti:
insert into user_ (nome_, pass_, liv_) value ('prova', '098f6bcd4621d373cade4e832627b4f6', 'admin')
insert into user_ (nome_, pass_, liv_) value ('prova1', '098f6bcd4621d373cade4e832627b4f6', 'user')

DataBase login in PHP
tabella con le utenze create

P.S. Per cifrare una qualsiasi stringa si può usare il seguente codice:
<?php
$pass="test";
$passcifr=md5($pass);
echo $passcifr;
?>

inserendo al posto di test quello che si vuole. Se viene richiamata la pagina da browser si avrà a video il risultato.

Ora che abbiamo creato le login andiamo ad analizzare il codice delle varie pagine:
La pagina index.php (pagina principale) se ancora non si è loggati deve far visualizzare il form di login altrimenti fa visualizzare le info dell'utente loggato e un piccolo menù.
<?php include ("connessioneDB.php");
session_start();
if ($_SESSION[nome]==""){
?>
<form action="login.php" method="post">
User <input type="text" name="user" size="10"/>
Password <input type="password" name="password" size="10"/>
<input type="submit" value="entra" />
</form>
<?php
echo "$_REQUEST[esito]";
echo "<a href="
http://www.stefano11.it">www.stefano11.it</a>";
} else {
echo "<p><a href="logout.php">logout</a> | <a href="admin.php">pagina admin</a> | <a href="user.php">pagina user</a></p>";
echo "sei loggato come nome: $_SESSION[nome] livello: $_SESSION[livello]";
}
?>

La prima riga della pagina include una pagina (connessioneDB), in questa pagina sono salvati i dati di accesso al DB.
<?php
$connessione = mysql_connect("localhost","root","pass");//IP database - utente proprietario DB - password DB
mysql_select_db("login_",$connessione);//nome DB
?>

La pagina più importante è la pagina login.php che si richiama quando si inseriscono le credenziali di accesso e si clicca su entra.
<?php include ("connessioneDB.php");?>
<?php
session_start();
ini_set('session.gc_maxlifetime', '3600');//imposta il limite massimo di durata della sessione
$user = $_POST[user];
$pass = $_POST[password];
$password = md5($pass);
$query = mysql_query("SELECT * FROM user_ where nome_='$user' and pass_='$password'",$connessione);
while($row=mysql_fetch_array($query)){
 $collegato = $row[id_];
 $_SESSION[livello] = $row[liv_];
 $_SESSION[nome] = $row[nome_];
 }
if ($collegato != ""){
 $sess = session_id();
 echo "<meta http-equiv="Refresh" content="0; url=index.php?sess=<?=$sess"/>";
}
else{
 $esito="user o password errate";
 echo "<META HTTP-EQUIV="REFRESH" CONTENT="0; URL=index.php?esito=$esito">";
}
?>

Ora andando dal menù a richiamare le pagine admin.php o user.php se si è loggati come untente admin si potranno visualizzare entrambe, mentre se si è loggati come utente user non si avrà accesso alla pagina admin.php.
Ecco il codice delle due pagine in questione:
Pagina user:
<?php include ("connessioneDB.php");
session_start();
if ($_SESSION[nome]!=""){
echo "<p><a href="logout.php">logout</a> | <a href="admin.php">pagina admin</a> | <a href="user.php">pagina user</a></p>";
echo "PAGINA USER - puoi visualizzare questa pagina";
} else {
echo "non puoi visualizzare questa pagina, non sei loggato";
echo "<META HTTP-EQUIV="REFRESH" CONTENT="2; URL=index.php">";
}

Pagina admin:
<?php include ("connessioneDB.php");
session_start();
if ($_SESSION[livello]=="admin"){
echo "<p><a href="logout.php">logout</a> | <a href="admin.php">pagina admin</a> | <a href="user.php">pagina user</a></p>";
echo "PAGINA ADMIN - puoi visualizzare questa pagina";
} else {
echo "non puoi visualizzare questa pagina, non sei loggato come un utente admin";
echo "<META HTTP-EQUIV="REFRESH" CONTENT="2; URL=index.php">";
}

Elenco Post

- Parts List Drone - Appunti - Come costruire un drone - Stabilizzatore Action Cam per moto - Gimbal / Stabilizzatore per Action Cam - Prototipo 2 - Cambiare data dir MySQL - Gimbal / Stabilizzatore per Action Cam - Prototipo 1 - Facebook - SP |11 - 2016 - The year 2038 Bug - Michelle Pfeiffer - Scarface - Skype - Schermata blu vuota - Installare iOS 7 - Ordinamento account Thunderbird - Ferie 2013 - Instagram API - php - 11/03/2013 - 2 Regole per avere successo - 29 anni - Log visite pagine in php - 2012 / 2013 - Auguri - Natale 2012 - Comandi base MySQL - Differenza tra date in php - File .ini in php - Scrivere e-mail - WhatsApp e iOS 6 - Librerie stefano11.it - Buone Vacanze 2012 - File html come php - Frameset - XML e XSL - La sua esperienza - Buon Natale - Morra Cinese - Chattare - Esporta / Importa Contatti iPhone - Marco Simoncelli - I Neutrini - Pagina Web Multilingua - Buone Vacanze - stefanopiacenti.it - WYSIWYG vs WYSIWYM - Correre con il GPS - CloudMe - Randy Pausch - stefano11.it da linea di comando Beta - Schedulare Pagine Web - Funzione ricorsiva - Riavviare servizi con un bat - Servizi e avvii automatici in Windows - Script Directory List - Funzioni in Informatica - Problema Flash Player 10.2 - Procedure - Array di 2 dimensioni in php - Campo Minato - Ops... - CamStudio - Script php per estrazione numeri - Dropbox - Operazioni tra orari in php - La vita in un backup - Script per generare QR-code - Creare Excel con php - Documentazione - Justin.tv per iPhone - VPN - Virtual Private Network - QR-code - Cobian Backup - PC - Firefox per Facebook - Creare PDF con PHP -Fpdf- - Tinychat - Effetto specchio - Google sites - iGoogle - Feed RSS - cosa sono? - Desktop/Files condivisi tra Linux e Windows - Client FTP su Nokia - Installare XP da USB - Spazio Web come Cartella - Rendere visibile sito del nostro webserver casalingo - Login in PHP - Polar RS100 - Bloccare siti web - GParted - Mischa Barton - ICE - In case of Emergency - Hard Disk Online - Sports Tracker Nokia - Immaginazione - Parte 2 - New Entries - Telemetria fai da te - Windows vs Linux - Auguri...2010... - RPG Maker - Calendario - PsP - seconde impresioni - PSP - 3000 - TILIMI - Instant voice comunication, fast and simple - L'avvocato del Diavolo - Chiedi a Ulisse - USB - PlayList Run - Python su Apache per Windows - Counting Crows - Mr. Jones - Vintage Game - Somebody Told Me - Windows 98 - Windows 95 - Come risolvere quasiasi problema - SPQR 2000 e 1/2 anni fa

Instagram

@stefanopiacenti11