Example of using form input for two numbers and selection of one of nine possible arithmetic operation or function.
Our php application frontend is on next picture:
Our code is located in one index.php file and consist from:
HTML part with input form – obtain data from user, contain submit button and last part show result in two posiblle way. If there is no error message and result ist generated, then well formatted number (2 decimal numbers) is shown. Else (if number was not calculated and result is not prepared or error output message was set) warning text of red color take output (formating is created with alert message of bootstrap linked style).
PHP code – obtain numbers from submitted post form, controll if data available with filter_has_var(); prevent for injecting sql with simple htmlspecialchars($_POST[‚nr1‘]); and calculate result along submitted $operator = htmlspecialchars($_POST[‚operation‘]); . As demonstration for controll of user inputed data dividing by zero check take place.
<button type=“submit“ name=“submit“ class=“btn btn-primary“> Calculate result </button>
<?php //($is_result == „true“) ? {
if ($is_result && $msg == “) {
$result = number_format($result, 2, ‚,‘, ‚ ‚); // formating number refer to https://www.php.net/manual/en/function.number-format.php
echo „<br> <br>“;
echo “ <table class=\“table table-success\“> „;
echo “ <tr>
<td><h3> = $result</h3> <td>
</tr> „;
echo “ </table> „;
} ;
?>
<br>
<?php if($msg != “): ?> <!– This part show error or warning message if one of the operand does not meet calculations requirements – dividing by zero –>
Small altering is created by own style.css that follow
.navbar {
background-color: #325d88;
margin-bottom: 25px ;
}
.navbar-brand {
color: white;
}
/* set midle container to width 580px */
.container {
width: 580px;
margin-left: 240px;
}
/* add margin to both sides in calculator input fields */
.inputSelector {
margin-left: 20px;
margin-right: 15px;
}
/* colorizing backround and change font-size of input number fields n1 and n2 partialy alter bootstrap css */
.form-control {
background-color: rgb(250, 250, 131);
font-size:25px
}
/* aboolute positioning of image on calc frontend – on left side */
#calcimage {
position: absolute;
top: 80px;
left: 20px;
right: 0;
}
/* change wight of label text before input field of form */
label {
font-weight: bold;
}
.footer {
background-color: #325d88;
margin-top: 25px;
padding-left: 15px;
height: auto;
}
Full code for further study can be obtained from github here.
Submit form – example php code
This article contains example of simple submit form with control of fulfilment of all fields and valdation. For proper testing of our code is used mercury e-mail server build in in XAMPP environment.
Next picture show visual look of submit form frontend that use bootstrap stylesheet downloaded from https://bootswatch.com/.
<a class=“navbar-brand“ href=“https://cdesigner.eu“> Visit us on CDesigner.eu </a>
</div>
</body>
</html>
PHP code grab $_POST[] submited variables, assign them into php code variables and test its content against filtering rules. First test detect content of all needed values as name, e-mail and mesage text. Next verifies e-mail against rules expected from valid e-mails.
If something is missing or e-mail is incorrect red (bootstrap alerted style) highlight in outputed text is used.
Also our code test sucessfull e-mail sending, if sendig finished correct green message display with text
$msg = ‚Your e-mail has been sent‘; $msgClass = ‚alert-success‘;
if sending was unsuccessful red message is displayed
$msg = ‚Your e-mail was not sent‘; $msgClass = ‚alert-danger‘;
For proper work of this code you must use appropriate webhosting or use XAMPP with runing mercury e-mail server. After enabling mercury through xamp control-panel go to administration and add new user. In our case we used account with name ciljak. local domain aliases that are posible to use are localhost (can not be validate with this code), localhost.net or localhost.org. Next picture show example of mercury enabled features in XAMPP server
Mercury e-mail server in XAMPP
For versioning of our code can be used git with github service. Mouch simpler graphical tool for commiting changes and share your code with team is gitkraken https://www.gitkraken.com/. For further reading please wisit next tutorial.
Our project setup screen in gitkraken looks like next picture
Setup of new project with gitkraken
Introduction to web developement technology
From the early years of www new technology will arisen. As fundamental building bocks of all web can be recongnized HTML and CSS.
HTML or Hypertext Markup Language is content descripting markup language for description of appropriate building blocks of all webpages. Today longterm supported version is 5.0. This version is meant to be open standard – new improvements are continualy added to its syntax.
For styling or visual theming is used CSS standard (standard for Cascade Style sheets). Actual verion is 3.0. HTML+CSS introduced separation of content and look of a pages. Content is more rigid bud external styles enable quick change of look of your page from one location on your webserver.
We can say that only HTML and CSS are main building blocks of all webpages but today webs are mor dynamic and adaptive. You can make administration from web backends, or you can make subscription and then gain access to elevated content of pages.
These improvements enable scripting technologies. These technologies can be divided on two main parts:
a) scripting technologies on server side – for a long time and beacause wide support in hosting houses wide spreaded technology is PHP. For PHP is common that generate pure HTML as interpreted output. Today standardized version is 7.4 but version 8.0 is in development. More reading about PHP can be found on https://www.php.net/docs.php or in more descriptive way on wiki https://en.wikipedia.org/wiki/PHP .
PHP is not only server side technology – for bigger projects but with lover support at hosting company are node.js (server side scripting with javascript), java jsp or servlets or microsoft asp.
b) scripting technology on client side – widely used is javascript (not confuse with java because this scripting languahe has nothing with java/ jsp as its name will sugest). Difference between server side and client side scripting is that client script must be downloaded to the browser and interpreted by them. Taht lead to possible problems with code confidentiality and posible blocking features on browser/ client side. Output of server scripting technology can by pure HTML/ CSS pages.
If you are involved in bigger projects or make common web for larger public existing frameworks will accelerate development. When you use framework you can obtain generated parts and use prepared parts of web. Most frameworks insist on design patterns named MVC (model – view – controller). MVC concept separate building parts of code in to:
model – driving logic of aplication, how are data handled and stored with database
view – visual part of aplication
controller – part handling requests from the clients and event generated by states of application
angular – used by google, big framewor for creation robust application, based on javascriptsyntax https://angular.io/docs
react – frontend development framwork used by facebook, based on javascript syntax (user friendlier as angular) https://reactjs.org/
jQuery – small framework for web scripting and DOM manipulation (separtaion of parts of page and manipuating them). Can be used for srooling menu creation, animation of galeries … .For furter reading you can visit https://jquery.com/ .