4E: Sito Web elenco ristoranti (Php e file di testo) - soluzione di Aurora Pagliai



Realizzare un sito web con Html5, Css3, Php e file di testo che memorizzi i ristoranti del comune di Lodi. I campi del record devono contenere:
Nome del ristorante, indirizzo, città, link del sito, mappa visualizzabile del ristorante con le indicazioni stradali e eventuali stelle Michelin.
Quando si visualizza l'elenco dei ristoranti, i link devono permettere di arrivare al sito ufficiale del locale e dovrà essere visualizzata la mappa con le indicazioni stradali.

SETTING.PHP

<?php
$my_database_txt = 'ristoranti.txt';
?>

LETTURA.PHP

<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" /> 
</head>
<body style="background-color: lightpink;">
<h1>Lista articoli</h1>
<h2><a href="form_insert.php">Inserisci un nuovo articolo</a></h2>
<?php
include('setting.php');
$array_righi = file($my_database_txt);
foreach($array_righi as $key => $capi){
list($nome, $link, $mappa, $stelle) = explode("|", $capi);
echo '
<p><b>
Nome del ristorante:</b> ' .$nome. '<br />
<b>Link del sito internet:</b><a href="' .$link. '">'.$link.'</a><br>
<b>Mappa:</b> ' .$mappa. '<br >
<b>Stelle:</b> '.$stelle.'<br>
<a href="action.php?delete=' .$key. '">Elimina</a> - <a href="form_update.php?row=' .$key. '">Modifica</a>
</p></b>
<hr />';
}
?>
</body>
</html>

FORM_INSERT.PHP

<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" /> 
</head>
<body style="background-color: lightpink;"><center>
<style type="text/css">
input/*modifica i pulsantini e le caselle di testo*/
{
            padding: 2px;/*la distanza fra le lettere*/
            height: 25x;
            border-radius: 10px;/*serve per arrontondare i bordi delle caselle*/
}
select/*modifica i pulsantini e le caselle di testo*/
{
            padding: 2px;/*la distanza fra le lettere*/
            height: 25x;
            border-radius: 10px;/*serve per arrontondare i bordi delle caselle*/
}
</style>
<h2><a href="lettura.php">Torna alla lista degli articoli</a></h2>
<h1>Inserisci i ristoranti di Lodi</h1>
<form action="action.php" method="post">
<label for="nome">Nome del ristorante</label>
<input type="text" id="nome" name="nome" />
<label for="link">Link del sito internet</label>
<input type="text" id="link" name="link" />
<label for="mappa">Mappa</label>
<input type="text" id="mappa" name="mappa" />
<label for="stelle">Inserisci valutazione</label>
<input  id="stelle" name="stelle" type="number" max="5" min="0" />
<input type="submit" name="scrivi" value="scrivi" />
</form></center>
</body>
</html>

FORM_UPDATE.PHP

<?php
include("setting.php");
if(!isset($_GET['row'])){
header("location: lettura.php");
exit;
}
$array_righi = file($my_database_txt);
if(!isset($array_righi[$_GET['row']])){
exit('errore nella chiave dell\'array');
}
list($nome, $link, $mappa, $stelle) = explode("|", $array_righi[$_GET['row']]);
?>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body style="background-color: lightpink;">
<h2><a href="lettura.php">Torna alla lista degli articoli</a></h2>
<form action="action.php" method="post">
<label for="nome">Nome del risorante</label>
<input type="text" id="nome" name="nome" value="<?php echo htmlentities($nome, ENT_QUOTES); ?>" />
<label for="link">Link del sito internet</label>
<input type="text" id="link" name="link" value="<?php echo htmlentities($link, ENT_QUOTES); ?>" />
<label for="mappa">Mappa</label>
<input type="text" id="mappa" name="mappa" value="<?php echo htmlentities($mappa, ENT_QUOTES); ?>" />
Inserisci valutazione<br><select name="stelle" >
<option>1 stella</option>
<option>2 stelle</option>
<option>3 stelle</option>
<option>4 stelle</option>
<option>5 stelle</option>
</select value="<?php echo htmlentities($stelle, ENT_QUOTES); ?>">
<input type="hidden" name="row_update" value="<?php echo $_GET['row']; ?>" />
<input type="submit" name="modifica" value="modifica" />
</form>
</body>
</html>

ACTION.PHP

<?php

include("setting.php");


if(isset($_POST['scrivi']))
{
if(!is_writable($my_database_txt)){
exit("il file non ha i permessi di scrittura!");
}
$bad_char = array("|", "\r\n", "\r", "\n");
$nome = str_replace($bad_char, "", $_POST['nome']);
$link = str_replace($bad_char, "", $_POST['link']);
$mappa = str_replace($bad_char, "", $_POST['mappa']);
$stelle = str_replace($bad_char, "", $_POST['stelle']);
$open = fopen($my_database_txt, "a+");
fwrite($open, $nome."|".$link."|".$mappa."|".$stelle."\r\n"); 
 

fclose($open);
header("location: lettura.php");
exit;
}



else if(isset($_GET['delete']))
{
$array_righi = file($my_database_txt);

unset($array_righi[$_GET['delete']]);
$open = fopen($my_database_txt, "w");
foreach($array_righi as $key => $value){
fwrite($open, $value);
}
fclose($open);
header("location: lettura.php");
exit;
}



else if(isset($_POST['modifica']) AND isset($_POST['row_update']))
{

$array_righi = file($my_database_txt);
$bad_char = array("|", "\r\n", "\r", "\n");
$nome = str_replace($bad_char, "", $_POST['nome']);
$link = str_replace($bad_char, "", $_POST['link']);
$mappa = str_replace($bad_char, "", $_POST['mappa']);
$stelle = str_replace($bad_char, "", $_POST['stelle']);
$array_righi[$_POST['row_update']] = $nome."|".$link."|".$mappa."|".$stelle."\r\n";

$open = fopen($my_database_txt, "w");
foreach($array_righi as $key => $value){
fwrite($open, $value);
}
fclose($open);
header("location: lettura.php");
exit;
}
?>


Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)