Per completare la nostra applicazione e testarla abbiamo la necessità di registrare gli utenti nel database. Per questa operazione avevamo già predisposto un link nella home page, si tratta ora di attivarlo e produrre il codice necessario. Il primo intervento sarà una modifica al file app.yaml
, dovremo registrare la nuova rotta e associare il file che stiamo per creare ad essa. Quindi aggiungiamo agli handlers
- url: /registrati
script: registrati.php
Passiamo alla creazione del file nella root del nostro progetto. Come prima cosa predisponiamo lo scheletro della pagina html:
<!doctype html>
<html lang="en">
<head>
<title>Google Cloud Platform: registrazione</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<?php echo $contenuto; ?>
</div>
<script src="/js/jquery-3.2.1.slim.min.js"></script>
<script src="/js/popper.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
</body>
</html>
La variabile PHP $contenuto
sarà valorizzata da due funzioni che verranno utilizzate a seconda del metodo di accesso alla pagina: in GET
creeremo il form mediante la funzione form()
, in POST
andremo a fare l'inserimento del database grazie alla funzione scrivi()
.
if(strtolower($_SERVER['REQUEST_METHOD'])=='post'){
$contenuto=scrivi();
}
else{
$contenuto=form();
}
La funzione form()
serve per creare il form di registrazione, sarà un form composto da pochi campi, che verranno inserite in una variabile stringa restituita dalla nostra funzione.
function form(){
$str='<h1>Registrati</h1>
<form action="/registrati" method="post">
<label id="nome">Nome</label>
<input type="text" name="nome" id="nome" class="form-control" required>
<label id="cognome">Cognome</label>
<input type="text" name="cognome" id="cognome" class="form-control" required>
<label id="email">Username</label>
<input type="email" name="email" id="email" class="form-control" required>
<label id="password">Password</label>
<input type="password" name="password" id="password" class="form-control" required>
<br>
<div class="row">
<div class="mx-auto">
<button type="submit" class="btn btn-success">Registrati</button>
<a href="/" class="btn btn-success">Annulla</a>
</div>
</div>
</form>';
return $str;
}
Nello specifico bisogna notare il metodo con cui verrà inviato il form, POST, la formattazione affidata a Bootstrap, i controlli sui campi obbligatori via HTML5 e, infine, la pulsantiera: un bottone per il submit
e un link per tornare alla pagina iniziale.
Quindi, partendo dalla pagina iniziale, accediamo in GET alla pagina registrati, verrà invocata la funzione form()
, che restituirà il codice HTML per la creazione del form stesso stampato nella pagina dalla variabile $contenuto
. Una volta compilato il form procediamo al submit dello stesso e questa volta accedendo in POST
useremo la funzione scrivi()
(che analizzeremo a breve). Dato che dovremo scrivere nel database, sarà necessario includere la connessione a inizio pagina:
include('include/connessione.php');