Newb here trying to build a form that works with ints to count how many red shirts die in a classic episode of star trek (exercise to get better with forms and ints). I have an error which reads as '7 Error message: Undefined index: rsTot'. I have tried a few things and read that setting it(casting it?) as a float was the safest way to work with the int, however each thing i've attempted results in some sort of error so after a day of reading and trying i'm very confused and hoping for an answer I can understand here.
I have read through stackOverflow for an answer but not seen one which i can understand and apply that speaks to the problem i'm having of initially entering and process a number as an int which i can later do some math on.
<?php //w03c0102_OOPform
require '../inc_0700/config_inc.php'; #provides configuration, pathing, error handling, db credentials
//END CONFIG AREA ----------------------------------------------------------
$rsTot = (float)$_POST['rsTot'];// float more forgiving int
$rsSurvived = (float)$_POST['rsSurvived'];
$rsSum = $rsTot - $rsSurvived;
$rsRatio = 0;
# Read the value of 'action' whether it is passed via $_POST or $_GET with $_REQUEST
if(isset($_REQUEST['act'])){$myAction = (trim($_REQUEST['act']));}else{$myAction = "";}
switch ($myAction)
{//check 'act' for type of process
case "display": # 2)Display user's name!
showName();
break;
default: # 1)Ask user to enter their name
showForm();
}
function showForm()
{# shows form so user can enter their name. Initial scenario
get_header(); #defaults to header_inc.php
?>
<script type="text/javascript" src="<?=VIRTUAL_PATH;?>include/util.js"></script>
<script type="text/javascript">
function checkForm(thisForm)
{//check form data for valid info
if(empty(thisForm.YourName,"Field Empty, please fill out")){return false;}
return true;//if all is passed, submit!
}
</script>
<p align="center"><?=smartTitle();?></p>
<h3 align="center">Star Trek Classic</h3>
<h2 align="center">Death-Shirt Calculator</h2>
<form action="<?=THIS_PAGE;?>" method="post" onsubmit="return checkForm(this);">
<p align="center">Classic Star Trek Episode Name<br />
<input type="text" name="epName" /><br /><br />
Esitmated number of officers with red shirts<br />
<input type="text" name="rsTot" /><br /><br />
Esitmated number of officers with red shirts<br />
to actually survive the episode<br />
<input type="int" name="rsSurvived" /><br /><br />
<input type="submit" value="Go!">
</p>
<input type="hidden" name="act" value="display" />
</form>
<?php
get_footer(); #defaults to footer_inc.php
}
function showName()
{#form submits here we show entered name
get_header(); #defaults to footer_inc.php
if(!isset($_POST['epName']) || $_POST['epName'] == '')
{//data must be sent
feedback("No form data submitted"); #will feedback to submitting page via session variable
myRedirect(THIS_PAGE);
}
if(!ctype_alnum($_POST['epName']))
{//data must be alphanumeric only
feedback("Only letters and numbers are allowed. Please re-enter your name."); #will feedback to submitting page via session variable
myRedirect(THIS_PAGE);
}
$epSubmitted = strip_tags($_POST['epName']);# strip data entered
echo '<h3 align="center">' . smartTitle() . '</h3>';
echo '<p align="center">Episode Name: <b>' . $epSubmitted . '</b><br />';
echo '<p align="center">Total Red Shirts Appearing: <b>' . $rsTot . '<br />';
echo 'Red Shirts Still Breathing at End of Episode: <b>' . $rsSurvived . '<br />';
echo 'Red Shirt Episode Survival Ratio: <b>' . $rsRatio . '</b>!</p>';
echo '<p align="center"><a href="' . THIS_PAGE . '">RESET</a></p>';
get_footer(); #defaults to footer_inc.php
}
?>