Giada Fumagalli 5^D Mercurio A.S. 2012/2013 RELAZIONE DEL SITO DI E-COMMERCE SMARTPHONE Indice: Traccia del problema..2 Analisi di massima..3 Analisi completa..3 Elenco tabelle..3 Concetto integrità...5 Modello E/R..6 Modello concettuale....6 Creazione database...7 Variabili utilizzate....9 Manuale d uso italiano..12 User guide...13 Linguaggio utilizzato..14 Listing del programma...15 Acquisti.php...15 Contatti.html...17 Iscritti.html...20 Delete_title.php...23 Insert.php.....24 Loginamm.php....25 Login.html....26 Loginiscr.php...29 Registrazione.html.. 30 Registrazione.php......33 Prodotti.html.34 Update.php.. 38 Update1.php...39 Query.html...40 Query1.php.. 43 Quey2.php..44 Query3.php..... 45 Query4.php.....46 Configurazione sito... 47 Parte didattica tecnica..53 Cos è un database?...53 Cos è un server web?...53 Differenza tra pagine statiche e pagine dinamiche?...54 Cos è Mysql?...54 Cos è PHP?...54
Traccia del problema Realizzare un sito di tipo e-commerce che consenta di gestire l intera procedura informatica e che permetta al visitatore di visualizzare i prodotti presenti in magazzino e al responsabile/amministratore di visualizzare i clienti iscritti al sito. Realizzare la procedura in PHP, con l utilizzo anche di MySQL, secondo lo schema: un area con l archivio dei prodotti che possono essere visualizzati senza l utilizzo delle credenziali di accesso; un area protetta dove si gestiscono i dati dei clienti (inserimento, modifica, eliminazione) alla quale possono accedere unicamente gli amministratori; un area alla quale possono accedere solo i clienti registrati al sito dove possono acquistare i prodotti. Tutte le procedure devono essere inserite all interno di un sito web già realizzato.
ANALISI DI MASSIMA Il sito e-commerce permette ai clienti di potersi registrare, visualizzare tutti i prodotti del negozio e acquistarli direttamente online. Gli amministratori potranno gestire tutti i clienti e i prodotti direttamente da una pagina che permette l accesso solo ad essi attraverso un Username e una Password. ANALISI DI MINIMA Sono state realizzate 7 pagine in PHP per la parte riservata agli amministratori: loginamm.php update.php update1.php insert.php delete_title.php amministratori.php acquisti.php Sono state realizzate 7 pagine PHP per la parte riservata ai clienti: registrazione.php loginiscr.php iscritti.php Sono state realizzare altre 4 pagine PHP per la realizzazione di query query1.php query2.php query3.php query4.php Sono state create 6 pagine HTML per poter visualizzare tutte le pagine in PHP Contatti.html Iscritt.html Login.html Prodotti.html Query.html Registrazione.html Èstato realizzato il database mediante il linguaggio di programmazione MySQL, che permette di collegarsi con tutte le richieste che il cliente o l amministratore chiedono si verifichino.
Al suo interno sono stare realizzate due tabelle, prodotti e utenti, compilate in tutti i rispettivi campi. Le tabelle verranno poi collegate alle pagine d inserimento e modifica che potranno essere utilizzate solo dagli amministratori. Per poter accedere alle funzioni di inserimento e modifica è necessario realizzare un modulo form e una connessione al server di MySQL per ciascuna pagina interessata da queste operazioni. Registrazione utente: per la registrazione è stato realizzato un modulo form che si collega conil database, inserendo nome, cognome, paese, CAP, telefono, cellulare, username e password. Nel modulo form l utente può inserire i dati richiesti; successivamente i dati vengono inseriti all interno della tabella nel database Login amministratori: Per questa pagina del sito è stato creato un modulo form con due caselle di testo dove l amministratore dovrà inserire il proprio username e la password che ha inserito precedentemente quando si è iscritto. Se i dati inseriti saranno corretti si aprirà una seconda pagina, dove gli amministratori potranno aggiungere, eliminare o ordinare dei nuovi prodotti, e controllare gli iscritti. Login utente: In questa sezione il cliente appena registrato può accedere al carrello per acquistare i prodotti. Per poter accedere bisogna inserire l username e la password inseriti durante la registrazione, nel modulo form, di cui si è spiegato l utilizzo e la funzionalità nel paragrafo Registrazione Utente. Se i dati inseriti sono corretti, si aprirà una pagina dove bisognerà inserire il codice del prodotto da acquistare nella casella "Codice" e nella casella "Quantità" le unità di prodotto che si vogliono acquistare verrà controllato se esiste all interno della tabella nel database un record con tali dati. L utente potrà scegliere se avvalersi della carta fedeltà e se così fossi l utente otterrà uno sconto del 10% sul acquisto immediato Query1: questa tabella attraverso operazioni in SQL permette di visualizzare il numero di iscritti al sito smartphone
Query2: Questa tabella attraverso operazioni in SQL permette di visualizzare il numero di iscritti con un determinato, il quale viene inserito da tastiera dall utente nell apposita cella presente nella pagina html Query3: Questa tabella attraverso operazioni in SQL permette di visualizzare il numero di prodotti presenti nel magazzino Query4: Questa tabella attraverso operazioni in SQL permette di visualizzare i prodotti con un determinato prezzo, il quale viene inserito da tastiera dall utente nell apposita cella presente nella pagina html In questo applicativo è presente il concetto di integrità referenziale: L integrità referenziale è una proprietà dei dati che, se soddisfatta, richede che ogni valore di un attributo (colonna) di una relazione (tabella) esista come valore di un altro attributo in un'altra (o nella stessa) relazione. Nei database relazionali, perché sia rispettata l'integrità referenziale, ogni campo in una tabella che sia stato dichiarato come foreign key può contenere solo valori della chiave primaria o chiave di una tabella "madre". Per esempio, cancellare un record che contiene un valore a cui fa riferimento una foreign key di un'altra tabella violerebbe l'integrità relazionale.
Modello E/R registro(username, Nome, Cognome,Paese,CAP,Tel, Cell, Password) acquisti_vendite(username, Codice) magazzino( Codice, Marca, Modello, Prezzo, Esistenze) registro Username Nome Cognome Paese CAP Tel Cell Password acquisti_vendite Username Codice magazzino Codice Marca Modello Prezzo Esistenze
Creazione del database: CREATE DATABASE my_fumagalligiada; USE my_fumagalligiada; CREATE TABLE registro ( Nome varchar(30), Cognome varchar(30), Paese varchar(30), CAP varchar(5), Tel varchar(10), Cell varchar(10), Username varchar(10), Password varchar(10), PRIMARY KEY (Username) )Engine InnoDB; INSERT INTO registro VALUES ('Gabriele', 'Fiorani', 'Tavazzano', 26838, 0371761025, 3345861545, 'Sniper', 'Sniper'); CREATE TABLE magazzino ( Codice varchar(7), Marca varchar(30), Modello varchar(30), Prezzo decimal(10,2), Esistenze integer(100), PRIMARY KEY (Codice) )Engine InnoDB; INSERT INTO magazzino VALUES ('SM0001', 'Nokia', 'N97', 39.90, 100); INSERT INTO magazzino VALUES ('SM0002', 'Nokia', 'Lumia 800', 39.90, 100); INSERT INTO magazzino VALUES ('SM0003', 'Apple', 'IPhone 3GS', 30.00, 100); INSERT INTO magazzino VALUES ('SM0004', 'Apple', 'IPhone 4S', 59.90, 100);
INSERT INTO magazzino VALUES ('SM0005', 'Apple', 'IPhone 5', 69.90, 100); INSERT INTO magazzino VALUES ('SM0006', 'Samsung', 'Galaxy S2', 9.90, 100); INSERT INTO magazzino VALUES ('SM0007', 'Samsung', 'Galaxy S3', 25.00, 100); INSERT INTO magazzino VALUES ('SM0008', 'Samsung', 'Wave', 30.90, 100); INSERT INTO magazzino VALUES ('SM0009', 'Samsung', 'Galaxy S Advance', 45.90, 100); CREATE TABLE acquisti_vendite ( Codice varchar(7), Username varchar (30), FOREIGN KEY (Codice) REFERENCE magazzino(codice), FOREIGN KEY(Username)REFERENCE registro(username) ) Engine InnoDB;
VARIABILI UTILIZZATE Qui di seguito è riportata una tabella contenente tutte le variabili utilizzate nel sito. NOME PAGINA FUNZIONE Update1.php / registrazione.php/ $hostname update.php/ loginiscr.php/ insert.php/ Identifica il server a cui ci si delete_title.php/ acquisti.php/ collega query1.php/ query2.php/ query3.php/ query4.php $username Update1.php /registrazione.php/ update.php/ loginiscr.php/ insert.php/ delete_title.php/ acquisti.php/ query1.php/ query2.php/ query3.php/ Identifica il nome dell utente $password $dbname $db $result query4.php Update1.php /registrazione.php/ update.php/ loginiscr.php/ insert.php/ delete_title.php/ acquisti.php/ query1.php/ query2.php/ query3.php/ query4.php Update1.php /registrazione.php/ update.php/ loginiscr.php/ insert.php/ delete_title.php/ acquisti.php/ query1.php/ query2.php/ query3.php/ query4.php Update1.php /registrazione.php/ update.php/ loginiscr.php/ insert.php/ delete_title.php/ acquisti.php/ query1.php/ query2.php/ query3.php/ query4.php Logiscr.php/ registrazione.php Identifica la password del server (se esiste) Indica il nome del database Indica il nome della tabella Estrae il risultato dell interrogazione al database $codg $qta $query7 $query6 Acquisti.php Acquisti.php Acquisti.php Acquisti.php Indica il codice dello smartphone da acquistare Indica la quantità da acquistare Indica la query che deve essere eseguita Indica la query che deve essere eseguita $result7 Acquisti.php Estrae il risultato della query 7 $result6 Acquisti.php Estrae il risultato della query 6
$query5 Delete_title.php Indica la query che deve essere eseguita $result5 Delete_title.php Estrae il risultato della query 5 $nome Registrazione.php Indica il nome dell utente $cognome Registrazione.php Indica il cognome dell utente $paese Registrazione.php Indicail paese dell utente $cap Registrazione.php Indica il cap dell utente $tel $cell Registrazione.php Registrazione.php Indica il telefono fisso dell utente Indica il numero di cellulare dell utente $user Registrazione.php/ Indica l username dell utente $passw $user $passw Registrazione.php/ loginiscr.php/ loginamm.php Loginamm.php Loginamm.php Indica la password dell utente Indica l username dell amministratore Indica la password dell amministatore $conn Update1.php /registrazione.php/ update.php/ loginiscr.php/ insert.php/ delete_title.php/ acquisti.php/ query1.php/ query2.php/ query3.php/ query4.php Effettua la connessione al database $codice Insert.php/ delete_title.php Indica il codice del prodotto $marca Insert.php Indica la marca del prodotto $modello Insert.php Indica il modello del prodotto $pu Insert.php Indica il prezzo unitario del prodotto $exist Insert.php Indica le esistenze del prodotto
$query4 Insert.php Indica la query che deve essere eseguita $result4 Insert.php Estrae il risultato della query 4 $query3 Update1.php Indica la query che deve essere eseguita $result3 Update1.php Estrae il risultato della query 3 $query $riga $result $esistenze $num $name $prezzo Loginiscr.php/ registrazione.php/ update.php Acquisti.php Loginiscr.php/ registrazione.php/ update.php Update.php Query1.php Query2.php Query3.php Esegue una query SQL nel database Manda a video il risultato della query Controlla se la query è stata realizzata con successo Indica quanti prodotti ci sono ancora di quello preso in considerazione Indica il numero di persone iscritte Indica il nome inserito da tastiera da parte dell utente Indica il prezzo inserito da tastiera da parte dell utente
MANUALE D USO Sul proprio computer è innanzitutto necessario avere installato un web server, ad esempio EasyPHP, scaricabile dal sito ufficiale all indirizzo http://www.easyphp.org/download.php. Una volta che sarà stato scaricato ed installato verrà creata in modo automatico, nel disco locale del computer, all interno della cartella di installazione del programma, una sottocartella www. Per testare il proprio lavoro è necessario copiare tutti i file all interno di questa cartella, avviare il programma facendo attenzione che il server Apache si sia avviato correttamente e, infine, andare all indirizzo 127.0.0.1 con il proprio browser. Una volta fatto questo sarà necessario cliccare sul nome della cartella www e automaticamente verrete indirizzati sulla pagina principale del vostro lavoro.
USER GUIDE On your computer you must first have installed a web server, such as EasyPHP downloaded from the official website at http://www.easyphp.org/download.php. Once it has been downloaded and installed will be created automatically, in the computer's local disk, within the installation folder of the program, a subfolder www. To test your work you must copy all the files inside this folder, start the program, making sure that the Apache server has started correctly and, finally, go to "127.0.0.1" with your browser. Once this is done you need to click on the folder name "www" and you will be directed automatically to the main page of your work.
LINGUAGGIO UTILIZZATO In tutte le pagine con estensione.php e nel database sono stati utilizzati due tipologie di linguaggio: il linguaggio PHP e quello SQL. Il PHP è un linguaggio di programmazione che può si può trovare in una pagina HTML, oppure anche in una pagina solo di PHP che attraverso un comando si collega alla pagina HTLML. Il linguaggio SQL viene utilizzato per usare il database, ossia leggere, modificare o gestire i dati contenuti nelle tabelle al suo interno.
LISTING DEL PROGRAMMA acquisti.php <?php //Inizializzo Variabili $codg=$_post['codg']; $qta=$_post['qta']; $sino=$_post['scelta']; //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo ""; //Operazioni sul DataBase $query7="select Codice, Marca, Modello, Prezzo*$qta AS 'Tot' FROM magazzino WHERE Codice='$codg'"; $result7=mysql_query($query7); $query6="update magazzino SET Esistenze=Esistenze-$qta WHERE Codice='$codg'"; $result6=mysql_query($query6); if(!$result6) { die("errore nella query". mysql_error()."<br>"); } if(!$result7) { die("errore nella query". mysql_error()."<br>"); } $riga=mysql_fetch_array($result7); if(!$riga)
else { echo "Il cellulare da Lei selezionato non à presente nei nostri archivi"; } { echo "Ordine eseguito correttamente<br>"; echo "Riepilogo:<br>"; echo "Codice:".$riga['Codice']."<br>"; echo "Marca:".$riga['Marca']."<br>"; echo "Modello:".$riga['Modello']."<br>"; echo "Costo Totale:".$riga['Tot']."<br>"; if($sino=='1') { echo "sconto del 10% <br> totale"; $rigasc=$riga['tot']*10/100; $rigaf=$riga['tot']-$rigasc; echo " $rigaf euro<br>"; } else echo "nessuno sconto<br>"; } //Chiudo la connessione mysql_close($conn); echo "";?>
contatti.html <html> </head> <body> <div id="wrap"> <div class="grid_3 left"> <div class="main-style"> <div id="navigation"><div class="widget widget-nav"> <ul class="nav"> <li><a href="index.html">home</a> <li><a href="prodotti.html">prodotti</a> <li><a href="registrazione.html">registrazione</a> <li><a href="login.html">login</a> <li><a href="query.html">query</a> <li><a href="contatti.html">contatti</a> </ul> <div class="clear"> <div id="header"><div class="widget title"><h1 style="paddingtop:0px;padding-left:0px;padding-right:0px;text-align:left">smartphone.it</h1> <div id="content"><div class="widget title"><h2>contatti</h2><div class="widget"> <form name="ap-mailer" action="http://it.altervista.org/alterpages/mailer.php" onsubmit="return apmailercheck(this)" method="post" target="apmailer"> <input type="hidden" name="block_id" value="16846740"/> <table border="0" class="web-form"> <th>oggetto</th> <td><input type="text" name="subject"/></td> <th>email</th> <td><input type="text" name="from"/></td> <th>messaggio</th> <td><textarea name="message"></textarea></td> <td colspan="2"><input type="submit" value="invia!"/></td> </table> </form> <div class="widget">
<div class="vcard"> <div class="fn"> <span class="given-name">giada</span> <span class="additional-name">fumagalli</span> <div class="org">acme Corporation <div class="address">via gramsci <div class="address">milano <div class="tel"><strong>tel:</strong> 0123456789 <div class="mob"><strong>cellulare:</strong> 0123456789 <div class="widget"> <img src="http://im.altervista.org/alterpages/thinkstock/medium/96886627.jpg" class="align-left img-medium" alt="" title=""/> <p> Per delle vostre lamentele e dei possibili aiuti per rendere migliore il nostro sito</p> <div id="footer"><div class="widget"><p> Giada Fumagalli @Copyright 2011</p> <div class="grid_4 left"> <div id="sidebar" class="main-style"><div class="widget title"><h2>attenzione</h2><div class="widget"> <img src="http://im.altervista.org/alterpages/thinkstock/small/106470010.jpg" class="align-left img-small" alt="" title=""/> <p> <p> N.B: questo sito è una</p> <u>simulazione SCOLASTICA</u></p> <div class="widget"> <img src="http://im.altervista.org/adv/alter_300x250.gif" class="align-center img-medium" alt="" title=""/> <div style="clear:both"> <div id="footer-edit">
<a class="page-edit" href="#" onclick="return apstarteditor()" id="edit-switch" title="modifica la pagina"><span> </span> Edit</a> <a class="av-link" href="http://it.altervista.org/" target="_blank" title="crea sito web gratis">altervista</a> <br /> <script type="text/javascript"> /* <![CDATA[ */ switchtomobilelink(); var _gaq = _gaq []; _gaq.push(['_setaccount', 'UA-1240215-6']); _gaq.push(['_setdomainname', 'altervista.org']); _gaq.push(['_trackpageview']); _gaq.push(['_setcustomvar', 1, 'DisplayMode', 'desktop']); (function() { var ga = document.createelement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol? 'https://ssl' : 'http://www') + '.googleanalytics.com/ga.js'; var s = document.getelementsbytagname('script')[0]; s.parentnode.insertbefore(ga, s); })(); /* ]]> */ </script> </body> </html>
iscritti.html <html> </head> <body> <div id="wrap"> <div class="grid_3 left"> <div class="main-style"> <div id="navigation"><div class="widget widget-nav"> <ul class="nav"> <li><a href="index.html">home</a> <li><a href="prodotti.html">prodotti</a> <li><a href="registrazione.html">registrazione</a> <li><a href="login.html">login</a> <li><a href="contatti.html">contatti</a> </ul> <div class="clear"> <div id="header"><div class="widget title"><h1 style="paddingtop:0px;padding-left:0px;padding-right:0px;text-align:left">smartphone.it</h1> <div id="content"><div class="widget title"> <h2>iscritti</h2><div class="widget"> <p>nb: Inserire nella casella "Codice" il codice del prodotto da acquistare e nella casella "Quantità " le unitã di prodotto che si vogliono acquistare</p> <div class="widget"> <h3><font color="blue">acquisti:</font></h3> <table width="229" border="0"> <form action="acquisti.php" method="post"> <td width="69"><b>codice:</b></td> <td width="144"><input type="text" name="codg" /></td>
<td><b>quantitã :</b></td> <td><input type="text" name="qta" /></td> <td><b>carta fedeltã </b></td> <td><select name="scelta"> <option value="1"> SI </option> <option value="0"> NO </option> </select> </td> <td> </td> <td> </td> <td><input type="submit" value="ordina" /></td> <td><input type="reset" value="reset" /></td> </form> </table> <p> </p> <div id="footer"><div class="widget"> <p> Giada Fumagalli @ Copyright 2011</p> <div class="grid_4 left"> <div id="sidebar" class="main-style"><div class="widget title"><h2>attenzione</h2><div class="widget"> <img src="http://im.altervista.org/alterpages/thinkstock/small/106470010.jpg" class="align-left img-small" alt="" title=""/> <p> <p> N.B: questo sito è una</p> <u>simulazione SCOLASTICA</u></p> <div class="widget"> <img src="http://im.altervista.org/adv/alter_300x250.gif" class="align-center img-medium" alt="" title=""/>
<div style="clear:both"> <div id="footer-edit"> <a class="page-edit" href="#" onclick="return apstarteditor()" id="edit-switch" title="modifica la pagina"><span> </span> Edit</a> <a class="av-link" href="http://it.altervista.org/" target="_blank" title="crea sito web gratis">altervista</a> <br /> <script type="text/javascript"> /* <![CDATA[ */ switchtomobilelink(); var _gaq = _gaq []; _gaq.push(['_setaccount', 'UA-1240215-6']); _gaq.push(['_setdomainname', 'altervista.org']); _gaq.push(['_trackpageview']); _gaq.push(['_setcustomvar', 1, 'DisplayMode', 'desktop']); (function() { var ga = document.createelement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol? 'https://ssl' : 'http://www') + '.googleanalytics.com/ga.js'; var s = document.getelementsbytagname('script')[0]; s.parentnode.insertbefore(ga, s); })(); /* ]]> */ </script> </body> </html>
delete_title.php <?php //Inizializzo Varibili $codice=$_post['cod2']; //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo ""; //Operazioni sul DataBase $query5="delete FROM magazzino WHERE Codice='$codice'"; $result5=mysql_query($query5); if(!$result5) { die("errore nella query". mysql_error()."<br>"); } else { echo "Iscritto Eliminato"; } //Chiudo la connessione mysql_close($conn); echo ""; header("location: amministratori.php");?>
insert.php <?php //Inizializzo variabili $codice=$_post['cod']; $marca=$_post['marca']; $modello=$_post['modello']; $pu=$_post['pu']; $exist=$_post['exist']; //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo ""; //Operazioni sul DataBase $query4="insert INTO magazzino VALUES ('$codice', '$marca', '$modello', '$pu', '$exist')"; $result4=mysql_query($query4); if(!$result4) { die("errore nella query". mysql_error()."<br>"); } else { echo "Inserimento Nuovo Titolo Completato"; } //Chiudo la connessione mysql_close($conn); echo "";?>
loginamm.php <?php //Inizializzo Variabili $user=$_post['user1']; $passw=$_post['passw1']; //Accesso if($user=="admin" && $passw=="admin") { header( "location: amministratori.php"); } else { echo "Username o Password errati"; }?>
login.html <html> </head> <body> <div id="wrap"> <div class="grid_3 left"> <div class="main-style"> <div id="navigation"><div class="widget widget-nav"> <ul class="nav"> <li><a href="index.html">home</a> <li><a href="prodotti.html">prodotti</a> <li><a href="registrazione.html">registrazione</a> <li><a href="login.html">login</a> <li><a href="query.html">query</a> <li><a href="contatti.html">contatti</a> </ul> <div class="clear"> <div id="header"><div class="widget title"><h1 style="paddingtop:0px;padding-left:0px;padding-right:0px;text-align:left">smartphone.it</h1> <div id="content"> <H2>LOGIN AMMINISTRATORI</H2> <div id="footer"> <table width="150" border="0"> <form action="loginamm.php" method="post"> <td><b>user:</b></td>
<td><input type="text" name="user1" /></td> <td><b>pass:</b></td> <td><input type="password" name="passw1" /></td> <td> </td> <td> </td> <td><input type="submit" value="invio" /></td> <td><input type="reset" value="reset" /></td> </form> </table> <p> <h2>login ISCRITTI</h2> <p>inserire i dati richiesti per accedere:</p> <table width="150" border="0"> <form action="loginiscr.php" method="post"> <td><b>user:</b></td> <td><input type="text" name="user2" /></td> <td><b>pass:</b></td> <td><input type="password" name="passw2" /></td> <td> </td> <td> </td> <td><input type="submit" value="invio" /></td> <td><input type="reset" value="reset" /></td> </form> </table> <p> </p> <p> </p> <div class="widget"><p> Giada Fumagalli @Copyright 2011</p> <div class="grid_4 left"> <div id="sidebar" class="main-style"><div class="widget title"><h2>attenzione</h2><div class="widget"> <img src="http://im.altervista.org/alterpages/thinkstock/small/106470010.jpg" class="alignleft img-small" alt="" title=""/>
<p> <p> N.B: questo sito è una</p> <u>simulazione SCOLASTICA</u></p> <div class="widget"> <img src="http://im.altervista.org/adv/alter_300x250.gif" class="align-center img-medium" alt="" title=""/> <div style="clear:both"> <div id="footer-edit"> <a class="page-edit" href="#" onclick="return apstarteditor()" id="edit-switch" title="modifica la pagina"><span> </span> Edit</a> <a class="av-link" href="http://it.altervista.org/" target="_blank" title="crea sito web gratis">altervista</a> <br /> <script type="text/javascript"> /* <![CDATA[ */ switchtomobilelink(); var _gaq = _gaq []; _gaq.push(['_setaccount', 'UA-1240215-6']); _gaq.push(['_setdomainname', 'altervista.org']); _gaq.push(['_trackpageview']); _gaq.push(['_setcustomvar', 1, 'DisplayMode', 'desktop']); (function() { var ga = document.createelement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol? 'https://ssl' : 'http://www') + '.googleanalytics.com/ga.js'; var s = document.getelementsbytagname('script')[0]; s.parentnode.insertbefore(ga, s); })(); /* ]]> */ </script> </body> </html>
loginiscr.php <?php //Inizializzo Varibili $user=$_post['user2']; $passw=$_post['passw2']; //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo "Connessione avvenuta correttamente<br>"; //Operazioni sul DataBase $query="select * FROM registro WHERE Username LIKE '$user' AND Password LIKE '$passw'"; $result=mysql_query($query); if(!$result) { die("errore nella query". mysql_error()."<br>"); } //Confronto username e password if(mysql_num_rows($result)!=0) { header( "location: iscritti.html"); } else { echo "Username o Password errato/a<br>"; } //Chiudo la connessione mysql_close($conn); echo "Connessione terminata<br>";?>
registrazione.html <html> </head> <body> <div id="wrap"> <div class="grid_3 left"> <div class="main-style"> <div id="navigation"><div class="widget widget-nav"> <ul class="nav"> <li><a href="index.html">home</a> <li><a href="prodotti.html">prodotti</a> <li><a href="registrazione.html">registrazione</a> <li><a href="login.html">login</a> <li><a href="query.html">query</a> <li><a href="contatti.html">contatti</a> </ul> <div class="clear"> <div id="header"><div class="widget title"><h1 style="paddingtop:0px;padding-left:0px;padding-right:0px;text-align:left">smartphone.it</h1> <div id="content"><div class="widget title"> <h2>registrazione</h2><div class="widget"> <p> </p> <p><img src="http://im.altervista.org/alterpages/thinkstock/medium/95938122.jpg" alt="" align="left" class="align-right img-medium" title=""/></p> <p>registrati qui:</p> <table width="233" border="0"> <form action="registrazione.php" method="post">
<td width="101"><b>nome:</b></td> <td width="159"><input type="text" name="nome" /></td> <td><b>cognome:</b></td> <td><input type="text" name="cognome" /></td> <td><b>paese:</b></td> <td><input type="text" name="paese" /></td> <td><b>cap:</b></td> <td><input type="number" name="cap" /></td> <td><b>tel:</b></td> <td><input type="number" name="tel" /></td> <td><b>cell:</b></td> <td><input type="number" name="cell" /></td> <td><b>username:</b></td> <td><input type="text" name="user" /></td> <td><b>password:</b></td> <td><input type="password" name="passw" /></td> <td> </td> <td> </td> <td><input type="submit" value="invio" /></td> <td><input type="reset" value="reset" /></td> </form> </table> <p> </p> <div id="footer"><div class="widget"><p> Giada Fumagalli @Copyright 2011</p> <div class="grid_4 left">
<div id="sidebar" class="main-style"><div class="widget title"><h2>attenzione</h2><div class="widget"> <img src="http://im.altervista.org/alterpages/thinkstock/small/106470010.jpg" class="align-left img-small" alt="" title=""/> <p> <p> N.B: questo sito è una</p> <u>simulazione SCOLASTICA</u></p> <div class="widget"> <img src="http://im.altervista.org/adv/alter_300x250.gif" class="align-center img-medium" alt="" title=""/> <div style="clear:both"> <div id="footer-edit"> <a class="page-edit" href="#" onclick="return apstarteditor()" id="edit-switch" title="modifica la pagina"><span> </span> Edit</a> <a class="av-link" href="http://it.altervista.org/" target="_blank" title="crea sito web gratis">altervista</a> <br /> <script type="text/javascript"> /* <![CDATA[ */ switchtomobilelink(); var _gaq = _gaq []; _gaq.push(['_setaccount', 'UA-1240215-6']); _gaq.push(['_setdomainname', 'altervista.org']); _gaq.push(['_trackpageview']); _gaq.push(['_setcustomvar', 1, 'DisplayMode', 'desktop']); (function() { var ga = document.createelement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol? 'https://ssl' : 'http://www') + '.googleanalytics.com/ga.js'; var s = document.getelementsbytagname('script')[0]; s.parentnode.insertbefore(ga, s); })(); /* ]]> */ </script> </body> </htm>
registrazione.php <?php //Inizializzo variabili $nome=$_post['nome']; $cognome=$_post['cognome']; $paese=$_post['paese']; $cap=$_post['cap']; $tel=$_post['tel']; $cell=$_post['cell']; $user=$_post['user']; $passw=$_post['passw']; //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo ""; //Operazioni sul DataBase $query="insert INTO registro VALUES ('$nome', '$cognome', '$paese', '$cap', '$tel', '$cell', '$user', '$passw')"; $result=mysql_query($query); if(!$result) { die("errore nella query". mysql_error()."<br>"); } else { echo "Registrazione Completata"; } //Chiudo la connessione mysql_close($conn); echo "";?>
prodotti.html <html> </style> </head> <body> <div id="wrap"> <div class="grid_3 left"> <div class="main-style"> <div id="navigation"><div class="widget widget-nav"> <ul class="nav"> <li><a href="index.html">home</a> <li><a href="prodotti.html">prodotti</a> <li><a href="registrazione.html">registrazione</a> <li><a href="login.html">login</a> <li><a href="query.html">query</a> <li><a href="contatti.html">contatti</a> </ul> <div class="clear"> <div id="header"><div class="widget title"><h1 style="paddingtop:0px;padding-left:0px;padding-right:0px;text-align:left">smartphone.it</h1> <div id="content"><div class="widget title"> <h2>catalogo PRODOTTI</h2><div class="widget"> <p>catalogo dei prodotti in vendita sul nostro sito:</p> <table width="409" border="1" align="center"> <td width="78"><b>codice</b></td> <td width="76"><b>marca</b></td> <td width="132"><b>modello</b></td>
<td width="95"><b>prezzo</b></td> <td>sm0001</td> <td>nokia</td> <td>n97</td> <td>250.00 â </td> <td>sm0002</td> <td>nokia</td> <td>lumia 800</td> <td>600.00 â </td> <td>sm0003</td> <td>apple</td> <td>iphone 3GS</td> <td>400.00 â </td> <td>sm0004</td> <td>apple</td> <td>iphone 4S</td> <td>780.00 â </td> <td>sm0005</td> <td>apple</td> <td>iphone 5</td> <td> 950.00 â </td> <td>sm0006</td> <td>samsung</td> <td>galaxy S2</td> <td>640.00 â </td> <td>sm0007</td> <td>samsung</td> <td>galaxy S3</td> <td>900.00 â </td> <td>sm0008</td> <td>samsung</td> <td>wave</td> <td>500.00 â </td>
<td>sm0009</td> <td>samsung</td> <td>galaxy S Advance</td> <td>470.00 â </td> </table> <p><br /> </p> <div class="widget"> <p> </p> <div id="footer"><div class="widget"> <p> Giada Fumagalli @ Copyright 2011</p> <div class="grid_4 left"> <div id="sidebar" class="main-style"><div class="widget title"><h2>attenzione</h2><div class="widget"> <img src="http://im.altervista.org/alterpages/thinkstock/small/106470010.jpg" class="alignleft img-small" alt="" title=""/> <p> <p> N.B: questo sito è una</p> <u>simulazione SCOLASTICA</u></p> <div class="widget"> <img src="http://im.altervista.org/adv/alter_300x250.gif" class="align-center img-medium" alt="" title=""/> <div style="clear:both"> <div id="footer-edit"> <a class="page-edit" href="#" onclick="return apstarteditor()" id="edit-switch" title="modifica la pagina"><span> </span> Edit</a> <a class="av-link" href="http://it.altervista.org/" target="_blank" title="crea sito web gratis">altervista</a> <br /> <script type="text/javascript"> /* <![CDATA[ */
switchtomobilelink(); var _gaq = _gaq []; _gaq.push(['_setaccount', 'UA-1240215-6']); _gaq.push(['_setdomainname', 'altervista.org']); _gaq.push(['_trackpageview']); _gaq.push(['_setcustomvar', 1, 'DisplayMode', 'desktop']); (function() { var ga = document.createelement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol? 'https://ssl' : 'http://www') + '.googleanalytics.com/ga.js'; var s = document.getelementsbytagname('script')[0]; s.parentnode.insertbefore(ga, s); })(); /* ]]> */ </script> </body> </html>
update.php <?php //Inizializzo Varibili $cod_gioco=$_post['codice']; $esistenze=$_post['esistenze']; //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo ""; //Operazioni sul DataBase $query="update magazzino SET Esistenze=$esistenze WHERE Codice='$cod_gioco'"; $result=mysql_query($query); if(!$result) { die("errore nella query". mysql_error()."<br>"); } else { echo "Esistenze Aggiornate"; } //Chiudo la connessione mysql_close($conn); echo "";?>
update1.php <?php //Inizializzo Varibili $username5=$_post['username']; //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo ""; //Operazioni sul DataBase $query3="delete FROM registro WHERE Username= '$username5'"; $result3=mysql_query($query3); if(!$result3) { die("errore nella query". mysql_error()."<br>"); } else { echo "Iscritto Eliminato"; } //Chiudo la connessione mysql_close($conn); echo ""; header("location: amministratori.php");?>
query.html <html> </head> <body> <div id="wrap"> <div class="grid_3 left"> <div class="main-style"> <div id="navigation"><div class="widget widget-nav"> <ul class="nav"> <li><a href="index.html">home</a> <li><a href="prodotti.html">prodotti</a> <li><a href="registrazione.html">registrazione</a> <li><a href="login.html">login</a> <li><a href="query.html">query</a> <li><a href="contatti.html">contatti</a> </ul> <div class="clear"> <div id="header"><div class="widget title"><h1 style="paddingtop:0px;padding-left:0px;padding-right:0px;text-align:left">smartphone.it</h1> <div id="content"> <br> <p>- <a href="query_1.php">visualizzare il numero di iscritti al nostro sito</a></p> <p>- Visualizza il numero di iscritti con un determinato nome</p> <p><form action="query_2.php" method="post"> Nome: <input type="text" name="nome" /><br /><br />
<br> <input type="submit" value="esegui QUERY" /> <input type="reset" value="reset" /> </p> <p>- <a href="query_3.php">visualizzare il numero di prodotti in magazzino</a></p> <br> <p>- Visualizzare i prodotti con un determinato prezzo</p> <form action="query_4.php" method="post"> Prezzo: <input type="text" name="prezzo" /><br /><br /> <input type="submit" value="esegui" /> <input type="reset" value="reset" /> </form> <div id="footer"><div class="widget"><p> Giada Fumagalli @Copyright 2011</p> <div class="grid_4 left"> <div id="sidebar" class="main-style"><div class="widget title"><h2>attenzione</h2><div class="widget"> <img src="http://im.altervista.org/alterpages/thinkstock/small/106470010.jpg" class="align-left img-small" alt="" title=""/> <p> <p> N.B: questo sito è una</p> <u>simulazione SCOLASTICA</u></p> <div class="widget"> <img src="http://im.altervista.org/adv/alter_300x250.gif" class="align-center img-medium" alt="" title=""/> <div style="clear:both"> <div id="footer-edit"> <a class="page-edit" href="#" onclick="return apstarteditor()" id="edit-switch" title="modifica la pagina"><span> </span> Edit</a> <a class="av-link" href="http://it.altervista.org/" target="_blank" title="crea sito web gratis">altervista</a> <br />
<script type="text/javascript"> /* <![CDATA[ */ switchtomobilelink(); var _gaq = _gaq []; _gaq.push(['_setaccount', 'UA-1240215-6']); _gaq.push(['_setdomainname', 'altervista.org']); _gaq.push(['_trackpageview']); _gaq.push(['_setcustomvar', 1, 'DisplayMode', 'desktop']); (function() { var ga = document.createelement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol? 'https://ssl' : 'http://www') + '.googleanalytics.com/ga.js'; var s = document.getelementsbytagname('script')[0]; s.parentnode.insertbefore(ga, s); })(); /* ]]> */ </script> </body> </html>
query1.php Testo: visualizzare il numero di iscritti al nostro sito <?php //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo ""; //Operazioni sul DataBase $query="select * FROM registro WHERE Nome IS NOT NULL"; $result=mysql_query($query); if(!$result) { die("errore nella query". mysql_error()."<br>"); } $num=mysql_num_rows($result); //Chiudo la connessione mysql_close($conn); echo ""; //Mando a video il risultato echo "Il numero degli iscritti è: $num<br><br>"; echo "<a href=\"query.html\">query</a>";?>
query 2.php Testo: visualizzare il numero di iscritti con un determinato nome scelto dall utente <?php //Inizializzo Variabili $name=$_post['nome']; //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo ""; //Operazioni sul DataBase $query="select * FROM registro WHERE Nome='$name'"; $result=mysql_query($query); if(!$result) { die("errore nella query". mysql_error()."<br>"); } $num=mysql_num_rows($result); //Chiudo la connessione mysql_close($conn); echo ""; //Mando a video il risultato echo "Gli utenti registrati con questo nome sono: $num<br><br>"; echo "<a href=\"query.html\">query</a>";?>
query3.php Testo: visualizzare il numero di prodotti presenti in magazzino <?php //Inizializzo Variabili //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo ""; //Operazioni sul DataBase $query="select * FROM magazzino"; $result=mysql_query($query); if(!$result) { die("errore nella query". mysql_error()."<br>"); } $num=mysql_num_rows($result); //Chiudo la connessione mysql_close($conn); echo ""; //Mando a video il risultato echo "In magazzino sono presenti $num titoli.<br><br>"; echo "<a href=\"query.html\">query</a>";?>
query4.php Testo: visualizzare i prodotti con un determinato prezzo scelto dall utente <?php //Inizializzo Variabili $prezzo=$_post['prezzo']; //Connessione mysql $hostname="localhost"; $username="root"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_fumagalligiada"; $db=mysql_select_db($dbname); if(!$db) die("errore di connessione al DataBase<br>"); echo ""; //Operazioni sul DataBase $query="select * FROM magazzino WHERE Prezzo='$prezzo'"; $result=mysql_query($query); if(!$result) { die("errore nella query". mysql_error()."<br>"); } $num=mysql_num_rows($result); //Chiudo la connessione mysql_close($conn); echo ""; //Mando a video il risultato echo "I prodotti registrati con questo prezzo sono: $num<br><br>"; echo "<a href=\"query.html\">query</a>";?>
Configurazione sito
Parte didattica tecnica Che cos è un database? (differenza tra myisam e innodb) In informatica, il termine database, banca dati o base di dati, indica un archivio dati, o un insieme di archivi, in cui le informazioni in esso contenute sono strutturate e collegate tra loro secondo un particolare modello relazionale. in modo tale da consentire la gestione/organizzazione efficiente dei dati stessi grazie a particolari applicazioni software dedicate (DBMS), basate su un'architettura di tipo client-server, e ai cosiddetti query language per l'interfacciamento con le richieste dell'utente (query di ricerca o interrogazione, inserimento, cancellazione ed aggiornamento). MyISAM è lo Storage Engine predefinito in MySQL. È un motore di immagazzinamento dei dati estremamente veloce e richiede poche risorse, sia in termini di memoria RAM, sia in termini di spazio su disco. InnoDB è un motore per il salvataggio di dati per MySQL, fornito in tutte le sue distribuzioni. La sua caratteristica principale è quella di supportare le transazioni di tipo ACID. Ecco in che cosa si differenzia da MyISAM. Per riparare una tabella dopo un crash del sistema, InnoDB riesegue le ultime istruzioni registrate nei log. MyISAM deve invece eseguire una scansione completa della tabella per poi ripararla, ed eventualmente ricostruire gli indici. Di conseguenza, il tempo impiegato da InnoDB per la riparazione non aumenta con il crescere dei dati contenuti nella tabella, mentre il tempo impiegato da MyISAM è proporzionale alle dimensioni della tabella. Mentre MyISAM si affida al sistema operativo per il caching delle letture e delle scritture sulle tabelle, InnoDB ha una sua propria gestione della cache. Le pagine di dati modificate non vengono inviate immediatamente al sistema e questo, in alcuni casi, può rendere la modifica dei dati molto più rapida con InnoDB. MyISAM generalmente immagazzina i record di una tabella nell'ordine in cui sono state create, mentre InnoDB le immagazzina nell'ordine seguito dalla chiave primaria. Quando viene utilizzata la chiave per la lettura di una riga, l'operazione avviene più rapidamente. InnoDB comprime i record molto meno rispetto a MyISAM. Questo significa che la memoria e lo spazio su disco richiesti da InnoDB sono maggiori Che cos è un server web? Un server web è un servizio o tipologia di server, e per estensione il computer su cui è in esecuzione, che si occupa di fornire, tramite software dedicato e su richiesta dell'utente (client), file di qualsiasi tipo, tra cui pagine web (successivamente visualizzabili dal web browser sul PC dell'utente). Le informazioni inviate dal server web all'utente viaggiano in rete trasportate dal protocollo HTTP. L'insieme di server web dà vita al World Wide Web, uno dei servizi più utilizzati della Rete Internet.
Differenza tra pagine statiche e dinamiche? Pagine statiche (quelle che in genere riconoscete dall estensione.html o.htm). Sono dei file in codice HTML che descrivono minuziosamente testi da impaginare, grafica e immagini. Quando l utente di un sito visita una pagina, ciò che avviene è che il server su cui risiede il sito invia al browser (il programma che utilizzato per navigare, ad esempio Microsoft Explorer) il file HTML; il browser sa decodificare il file, e quindi mostra i contenuti della pagina sullo schermo dell utente. Le pagine dinamiche, invece che contenere il codice HTML (o meglio invece di contenere solo quello) contengono programmi per il server; questo li esegue e quindi scrive il codice HTML da inviare al browser (che quindi non è preesistente come nella pagina statica). In altre parole, il contenuto della pagina non è deciso a priori ma può variare in base a condizioni di vario genere. Quindi anche una sola pagina dinamica può generare potenzialmente un numero infinito di pagine reali. In fondo è una specie di modello, in cui testi e immagini vengono collocati in base alle esigenze. I linguaggi utilizzati per scrivere queste pagine sono diversi; ASP, PHP o CFM e tanti altri (spesso trovate le estensioni corrispondenti nel nome delle pagine a sostituire htm o html che avevamo sulle statiche). Possono dialogare con Data Base cioè archivi puri di informazioni. Cos è Mysql? MySQL è un Relational database management system (RDBMS), composto da un client con interfaccia a riga di comando e un server, entrambi disponibili sia per sistemi Unix o Unix-like come GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix. Dal 1996 supporta la maggior parte della sintassi SQL e si prevede in futuro il pieno rispetto dello standard ANSI. Possiede delle interfacce per diversi linguaggi, compreso un driver ODBC, due driver Java, un driver per Mono e.net ed una libreria per python. Cos è PHP? PHP (acronimo ricorsivo di "PHP: Hypertext Preprocessor", preprocessore di ipertesti; originariamente acronimo di "Personal Home Page" [2] ) è un linguaggio di programmazione interpretato, originariamente concepito per la programmazione Web ovvero la realizzazione di pagine web dinamiche. L'interprete ha una licenza open source e libera (ma incompatibile con la GPL). Attualmente è utilizzato principalmente per sviluppare applicazioni web lato server ma può essere usato anche per scrivere script a riga di comando o applicazioni stand-alone con interfaccia grafica.