Estratto del documento

Se esiste la sessione mostra il bottone con il nome dell’utente che ha effettuato il login,

cliccando il nome, vengono mostrate le operazioni possibili: “le mie guide” e “logout”. Il

codice del menu utente viene mostrato in ogni pagina se effettuato il login.

if($_SESSION["username"]){

echo "<a class='dropdown-button btn' href='#' data-activates='dropdown1' data-

beloworigin='true' style='float:right; text-align: center; width: 200px; min-height:100%'><div

class='valign-wrapper'>

<h5 class='valign'>".$_SESSION["username"]."</h5>

</div></a>

<!-- Dropdown Structure -->

<ul id='dropdown1' class='dropdown-content'>

<li><a href='archivioutente.php'>Le mie Guide</a></li>

<li class='divider'></li>

<li><a href='logout.php'>Logout</a></li>

</ul>";

} //se si è loggati con nome utente diverso da scuolaguida mostra il link al

sistema di prenotazione online

if($_SESSION["nomeutente"] && $_SESSION["nomeutente"] !=

"scuolaguida"){ echo ' <div class="col s12 m3">

<div class="card">

<div class="card-image">

<img src="images/guida.jpg">

</div>

<div class="card-content">

<p>Da qui puoi prenotare online le tue guide.</p>

</div>

<div class="card-action">

<a href="prenota.php">Prenota Online</a>

</div>

</div>

</div>';

}else if($_SESSION["nomeutente"] == false){

//se non si è loggati mostra il tasto Registrati/Login

echo '

<div class="col s12 m3">

<div class="card"> //mostra la carta

//contenitore dell’immagine immagine

<div class="card-image">

<img src="images/guida.jpg"> //immagine

</div>

<div class="card-content"> //spiegazione 17

<p>Registrati o fai il login per prenotare online le tue guide.</p>

//collegamento con la pagina

</div>

<div class="card-action"> //azione

<a href="registrazione_login.html">Registrazione - Login</a>

</div>

</div>

</div>';

}

//se il nomeutente della sessione è scuolaguida mostra il link all'archivio di

tutte le guide if($_SESSION["nomeutente"] == "scuolaguida"){

echo ' <div class="col s12 m3">

<div class="card">

<div class="card-image">

<img src="images/guida.jpg">

</div>

<div class="card-content">

<p>Da qui puoi accedere al backoffice.</p>

</div>

<div class="card-action">

<a href="backoffice.php">backoffice</a>

</div>

</div>

</div>';

} ?>

Registrazione

<?php

session_start();

?> <?php $cf=$_POST["cf"];

$nome=$_POST["nome"];

$cognome=$_POST["cognome"];

$data=$_POST["data"];

$username=$_POST["username"];

$password=$_POST["password"];

$email=$_POST["email"];

$nomefile="dati.txt";

$utente_inserito=0;

$fp = fopen($nomefile, 'a+');//apertura in lettura e scrittura

//leggo una riga alla volta fino alla fine del file

while(!feof($fp)){

//legge una riga

$riga=fgets($fp);

$dati=explode(",", $riga); 18

//trasforma la riga estratta in un array contenente le stringhe separate

dalla virgola if($dati[0]==$cf | $dati[4]==$username){

$utente_inserito=1;

} }

if($utente_inserito==1)

echo"Utente già inserito!<br>";

else{ fwrite($fp,

"$cf,$nome,$cognome,$data,$username,$password,$email\r\n"); //inserimento dei dati del

nuovo utente nel file.txt echo"Utente $nome $cognome iscritto con successo!<br>";

}

fclose($fp);

?>

Login.php

<?php

session_start();

$userN = $_POST['username']; //creazione variabili

$passW = $_POST['password'];

$dati = file ('dati.txt'); //associazione del file ad una variabile

$success = false;

foreach ($dati as $user) {

$user_details = explode(',', $user);

if ($user_details[4] == $userN && $user_details[5] == $passW)

//controllo dei dati inseriti con i dati nel file.txt {

$success = true;

$_SESSION["nomeutente"] = $userN; //se username esiste

allora si apre la sessione. Il nome utente è scelto dall’utente (può essere un diminutivo)

l’email in

$_SESSION["usermail"] = $user_details[6]; //salvo

una variabile dal file.txt per mandare l’email nel caso in cui l’utente voglia prenotare una

guida // nome proprio dell’utente per essere

$_SESSION["username"] = $user_details[1];

messo nella barra di navigazione su tutte le pagine

break;

}

}

if ($success) {

Header("Location:index.php"); //se login è stato effettuato correttamente

allora si verrà rimandato alla home

} else { 19

?>

<script>

window.location.href = "http://scuolaguidarovereto.altervista.org/errorelogin.php";

</script> //se il login è stato effettuato scorrettamente, verrà mostrato il messaggio di

errore e rimandato alla pagina di login

<? }

include"registrazione_login.html";

?>

Prenota.php

<?php

session_start(); //apre il file guide.txt

$dati = file ('guide.txt');

//passa attraverso tutte le righe

foreach ($dati as $orari) {

//per ogni riga, divide dove trova una virgola e crea un array

$dettaglio = explode(',', $orari);

//associa la data dall'elemento 0 dell'array

$data = $dettaglio[0];

//conta quanti elementi ci sono

$orari = count($dettaglio);

for($i = 1; $i < $orari; $i++){

//crea un opzione select con valore data%ora;

echo "<option value='".$data."%".$dettaglio[$i]."'>".$data."

alle ".$dettaglio[$i]."</option>"; }

}

?>

Conferma prenotazione

<?php

session_start();

$dataora = $_POST["dataora"]; //prendo i dati del form e divido i dati con l0opzione

explode

$arraydataora = explode("%",$dataora);

$data = $arraydataora[0];

$ora = $arraydataora[1];

//aggiornamento del file delle guide, copiando tutte le guide libere saltando la guida

prenotata

$temp = fopen('guidetemp.txt', 'w');

$dati = fopen('guide.txt', 'r');

while (!feof($dati)) { 20

$line=fgets($dati);

$stringa = $line;

$dettaglio = explode(',', $line);

if($data == $dettaglio[0]){

for($i = 1; $i < count($dettaglio); $i++){

if($dettaglio[$i] == $ora){

$string = implode(",",$dettaglio);

$pattern = '/,'.$dettaglio[$i].'/';

$replacements = '';

$stringa = preg_replace($pattern,$replacements,$string);

if($i == (count($dettaglio) -1)){

$stringa = $stringa."\n";

}

}

}

} fwrite($temp, $stringa);

}

fclose($temp); //chiudo i file

fclose($dati); //chiudo file

unlink('guide.txt'); //cancella il file file temporaneo in “guide”

rename('guidetemp.txt', 'guide.txt');//rinomino

$prenotazione = $_SESSION["nomeutente"].','.$data.','.$ora."\n";

file_put_contents("registroguide.txt", $prenotazione, FILE_APPEND); //funzione che

del file, aggiunge la guida all’elenco delle guide prenotate

aggiunge qualcosa alla fine

echo 'Hai prenotato una guida a nome '.$_SESSION["nomeutente"].' per il giorno '.$data.'

alle ore '.$ora.'.';

echo "<a href='index.php'>Torna alla home</a>";

Email di conferma //destinatario dell’email, variabile creata in precedenza

$to = $_SESSION["usermail"];

$subject = 'Guida prenotata - Scuola Guida Rovereto';

$message = 'Ciao '.$_SESSION["username"].". La tua guida per il giorno ".$data." alle ore

".$ora." è stata prenotata.";

$headers = "From: scuolaguidarovereto\r\n";

if (mail($to, $subject, $message, $headers)) {

echo "Ti abbiamo spedito una mail di conferma.";

} else {

echo "Errore nell'invio dell'email di conferma.";

}

?>

Archivio utente

<?php

session_start(); 21

//Apre il file registro guide

$dati = file ('registroguide.txt');

//per ogni riga del file

foreach ($dati as $orari) {

//crea un array, separando la riga in presenza di ,

$user = explode(',', $orari);

//cerca le righe appartenenti al nome utente della sessione corrente

if($user[0] == $_SESSION["nomeutente"]){

//Crea una riga nella tabella con data e ora

echo "<tr><td>".$user[1]."</td><td>".$user[2]."</td></tr>";

}

}

?>

Registro guide

<?php $dati = file ('registroguide.txt');

foreach ($dati as $orari) {

$user = explode(',', $orari);

echo

"<tr><td>".$user[0]."</td><td>".$user[1]."</td><td>".$user[2]."</td></tr>";

}

?> –

Orari e contatti stato apertura

<?php //Ottiene il giorno della settimana, 1 è lunedì, 7 domenica

$day = date("N");

if($day >= 6){

//se è sabato o domenica

echo "<span style='color:red'>In questo momento siamo

chiusi</span>"; }else{

//Ottiene l'ora

$ora = date("H");

if(($ora >= 9 && $ora < 12) | ($ora >= 15 && $ora < 19)){

echo "<span style='color:green'>In questo momento siamo

aperti</span>"; }else{

echo "<span style='color:red'>In questo momento siamo

chiusi</span>"; }

}

?> 22

Logout

<?php

session_start();

session_unset(); //cancella tutte le variabili del sistema

session_destroy(); //distrugge tutti i dati associati alla corrente sessione

?>

8. Demo

Tutti gli screenshots del funzionamento del sistema:

Pagina principale del sito (immagine sotto) 23

“Vieni a conoscerci” (immagine sotto)

“Scopri i

Anteprima
Vedrai una selezione di 8 pagine su 32
informatica ed elementi di programmazione - report Pag. 1 informatica ed elementi di programmazione - report Pag. 2
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
informatica ed elementi di programmazione - report Pag. 6
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
informatica ed elementi di programmazione - report Pag. 11
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
informatica ed elementi di programmazione - report Pag. 16
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
informatica ed elementi di programmazione - report Pag. 21
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
informatica ed elementi di programmazione - report Pag. 26
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
informatica ed elementi di programmazione - report Pag. 31
1 su 32
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher criss. di informazioni apprese con la frequenza delle lezioni di Informatica ed elementi di programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Trento o del prof Bouquet Paolo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community