I’m setting up 2 text-boxes and one drop down options list in html. I’m trying to use php to validate if these text box are filled in or not. If clicked on the submit button (‘btnCalculate’), the validation occurs, if nothing in the text boxes, there will be an error message that pops up beside it (‘pamountErrorMsg, irateErrorMsg’). If there is substance that is typed into the textboxes, the browser will save the information into Session[“pamount”] or “irate”. I am having trouble validating the blank text boxes and adding the variables into Session before I can use them in the next page. Right now it is not validating anything at all. What is wrong with my syntax, if any?
Was thinking of using just using
“php? $pamount = $_SESSION[“pamount”]; ?>” to create the variable I need to read the session variable, is that correct?
PHP
session_start(); // start PHP session!
header('Cache-Control: no-cache');
header('Pragma: no-cache');
$pamountErrorMsg = "";
$irateErrorMsg = "";
$btnCalculate = $_GET['btnCalculate'];
$irate = $_GET['irate'];
$pamount = $_GET['pamount'];
$y2d = $_GET['y2d'];
if(isset($btnCalculate))
{
if(strlen(trim($pamount)) <= 0)
{
$pamountErrorMsg = "Principal Amount cannot be empty";
$irateErrorMsg = "";
}
else if(strlen(trim($irate)) <= 0)
{
$irateErrorMsg = "The interest rate cannot be empty";
$pamountErrorMsg = "";
}
else
{
$_SESSION["pamount"] = $_GET["pamount"];
$_SESSION["irate"] = $_GET["irate"];
$_SESSION["y2d"] = $_GET["y2d"];
header("Location: Lab3DisclamerZCL.php");
exit( );
}
}
?>
HTML
<form method='get' action="Result.php">
<table>
<tr>
<td>
Principal Amount
</td>
<td>
<input type='text' class='input' name='pamount' size='30' />
</td>
<td class='error'>
<?php echo $pamountErrorMsg; ?>
</td>
</tr>
<tr>
<td>
Interest Rate (%)
</td>
<td>
<input type='text' class='input' name='irate' size='30' />
</td>
<td class='error'>
<?php echo $irateErrorMsg; ?>
</td>
</tr>
<tr>
<td>
Years to Deposite
</td>
<td>
<select name='y2d' selected='5'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5' selected='selected'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</td>
</tr>
<tr>
<td> </td>
<td>
<input type='submit' class='button' name='btnCalculate' value='Calculate'/>
<input type='reset' class='button' name='btnReset' value='Reset' />
</td>
</tr>
</table>
</form>
My Result.php (in progress)
<?php error_reporting(E_ALL); ?>
<?php
session_start(); // retrieve PHP session!
header('Cache-Control: no-cache');
header('Pragma: no-cache');
if (!isset($_SESSION["name"]))
{
header("Location: Calculator.php");
exit( );
}
if(!isset($_SESSION["pamount"]))
{
$pamount = $_SESSION["pamount"];
}
if(!isset($_SESSION["irate"]))
{
$irate = $_SESSION["irate"];
}
if(!isset($_SESSION["pamount"]))
{
$y2d = $_SESSION["y2d"];
}
?>
<html>
<head>
<title>Results</title>
<link rel = "stylesheet" type = "text/css" href = "style.css" />
</head>
<body>
<h3 class="distinct">Thank you <?php echo $_SESSION["name"]?>, for using out deposite calculation tool.</h3>
<p>Following is the results of calculation </p>
<form action='Result.php' method='post'>
<table>
<?php
$pamount = $_SESSION["pamount"];
$irate = $_SESSION["irate"];
$y2d = $_SESSION["y2d"];
$runningPrincipal = $pamount;
for($i = 1; $i <= $y2d; ++$i)
{
$interest = $runningPrincipal * $irate * 0.01;
printf("<tr><td>%s</td><td>\$%.2f</td><td>\$%.2f</td></tr>", $i, $runningPrincipal, $interest);
$runningPrincipal += $interest;
}
?>
</table>
</form>
<?php session_destroy();?>
</body>
</html>
You need to do the validation on the same page, where the HTML form is given i.e. Calculator.php. On successful validation you will assign the entered values to session variables, and redirect to Result.php where you can do the calculation and display result.