Thank you! I didn't know there was a certain way to indent stuff (this is my first script), but now that I see it, it makes sense.
Is there a way to make Dreamweaver do the indenting for you?
I've added a bit more code to it, and I've got the new stuff running without errors, but It's not behaving as expected.
If I leave the "TD" input field blank, the code:
PHP Code:
if (isset($_POST['TD']) and !is_numeric($_POST['TD']))
Should evaluate false, and not generate a user error message. But it does...
If I give it all three values, this should check if they all add up corectly:
PHP Code:
if ( isset($HD) and isset($VD) and isset($TD) )
{if ( $TD !== sqrt(($VD*$VD)+($HD*$HD)) )
{$error_str .= "<li>We're sorry, but you can't change the laws of physics!</li>";
}
}
But it says they're wrong even when I use 3,4, and 5, which should evaluate corectly.
And finally, this:
PHP Code:
if ( isset($HD) and isset($VD) and !isset($TD) )
{$TD=sqrt(($VD*$VD)+($HD*$HD));
echo $TD;
}
should take the first two input numbers, do the math, and spit out the answer (preferably back in the third input field), but it only gives me a blank page (when I comment out the other sections, so that I can get that far).
Here's the whole thing in context:
PHP Code:
<?php
// function to output form and hold previously entered values.
function user_form()
{
//output the form HTML.
echo '<p>Please fill in at least two fields.</p>';
echo '<form action="'.htmlspecialchars($_SERVER['PHP_SELF']).'" method="post">';
echo '<table border="0" cellspacing="4" cellpadding="0">';
echo '<tr><td>Vertical Distance:</td><td><input type="text" name="VD" value="'.htmlspecialchars($_POST['VD']).'"></td></tr>';
echo '<tr><td>Horizontal Distance:</td><td><input type="text" name="HD" value="'.htmlspecialchars($_POST['HD']).'"></td></tr>';
echo '<tr><td>Throw Distance:</td><td><input type="text" name="TD" value="'.htmlspecialchars($_POST['TD']).'"></td></tr>';
echo '<tr><td colspan="2"><input type="submit" value="Add to Database" name="submit"></td></tr>';
echo '</table>';
echo '</form>';
}
// has the form been submitted?
if (isset($_POST['submit']))
{
// the form has been submitted
// perform data checks.
$error_str = ''; // initialise $error_str as empty
if (isset($_POST['VD']) and !is_numeric($_POST['VD']))
{
$error_str .= '<li>VD must be a number</li>';
}
if (isset($_POST['HD']) and !is_numeric($_POST['HD']))
{
$error_str .= '<li>HD must be a number</li>';
}
if (isset($_POST['TD']) and !is_numeric($_POST['TD']))
{
$error_str .= '<li>TD must be a number</li>';
}
// now, have any of these errors happened? We can find out by checking if $error_str is empty
if (!empty($error_str))
{
// errors have occured, halt execution and show form again.
echo '<p>There were errors in the information you entered, they are listed below:</p>';
echo '<ul>'.$error_str.'</ul>';
// show form again
user_form();
exit; // die
}
else
//Here is where we put all the stuff we want it to do!
{
$error_str = ''; //Reset the error store
if ( isset($HD) and isset($VD) and isset($TD) )
{if ( $TD !== sqrt(($VD*$VD)+($HD*$HD)) )
{$error_str .= "<li>We're sorry, but you can't change the laws of physics!</li>";
}
}
if ( isset($HD) and isset($VD) and !isset($TD) )
{$TD=sqrt(($VD*$VD)+($HD*$HD));
echo $TD;
}
if (!empty($error_str))
{
// errors have occured, halt execution and show form again.
echo '<p>There were errors in the information you entered, they are listed below:</p>';
echo '<ul>'.$error_str.'</ul>';
// show form again
user_form();
exit; // die
}
}
// if we get here, all data checks were okay, process information as you wish.
}
else
{
// the form has not been submitted, let's show it
user_form();
}
?>
I tried to do the indenting thing with all the brackets.
This is my first time doing this, and I appreciate your taking the time to help me.