Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
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