Jump to content

Basic Validation


Gainax

Recommended Posts

<div class="enquiry-form">
        	<h1>Enquiry Form</h1>
		<p> </p>
            <form action="contact_process.php" id="contactform" name="contactform" method="post" action="">
            <label for="title">Title:*</label><br />
            <input name="title" class="text" type="text" /><br />
            <label for="firstname">First Name:*</label><br />
            <input name="firstname" class="text" type="text" /><br />
            <label for="comments">Title:</label><br />
            <textarea name="comments" class="text" name="comments" cols="30" rows="5"></textarea><br /><br />
            <p class="form-small-text">* denotes mandatory fields	</p>
             <input id="time-input" type="image" src="images/send_request.jpg" alt="" title="" />
            </form>
            <p> </p>
        </div>

Link to comment
https://forums.phpfreaks.com/topic/160905-basic-validation/#findComment-849145
Share on other sites

Hi

 

Something similar to this:-

 

<?php
$Error = false;

if ($_REQUEST['submit'])
{
if (!isset($_REQUEST['field1]))
{
	$Error = true;
	$field1Error = "Field is required";
}
if (!isset($_REQUEST['field2]))
{
	$Error = true;
	$field2Error = "Field is needed";
}
if (!isset($_REQUEST['field3]))
{
	$Error = true;
	$field3Error = "Field is must be entered";
}
if (!$Error)
{
	// Do something with data
}
else
{
	?><form>
	<input type='text' name='field1' /><br />
	<?php echo (($isset($field1Error)) ? $field1Error."<br />":""); ?>
	<input type='text' name='field2' /><br />
	<?php echo (($isset($field2Error)) ? $field2Error."<br />":""); ?>
	<input type='text' name='field3' /><br />
	<?php echo (($isset($field3Error)) ? $field3Error."<br />":""); ?>
	<input type='submit' name='submit' /><br />
	</form>
	?>	
}
}
else
{
?><form>
<input type='text' name='field1' /><br />
<input type='text' name='field1' /><br />
<input type='text' name='field1' /><br />
<input type='submit' name='submit' /><br />
</form>
?>
}

 

This can easily be cleaned up should you want to (and there is almost certainly some typos in it), but left it like this to give you the basic idea.

 

All the best

 

Keith

Link to comment
https://forums.phpfreaks.com/topic/160905-basic-validation/#findComment-849149
Share on other sites

Ok, so I found a tutorial

 

I have the following code:

 

<div class="enquiry-form-obligation">
        	<?if( isset($_POST['send']) && (!validateName($_POST['name']) || !validateAddress($_POST['address']) || !validateEmail($_POST['email']) ||
        	!validateTelephone($_POST['telephone']) 	|| !validateIncome($_POST['income']) ) ):?>
			<div id="error">
				<ul>
					<?if(!validateName($_POST['name'])):?>
						<li><strong>Invalid Name:</strong>Your name must be at leasr 3 letters</li>
					<?endif?>
					<?if(!validateAddress($_POST['address'])):?>
						<li><strong>Invalid Address:</strong> Please enter your full address</li>
					<?endif?>
					<?if(!validateEmail($_POST['email'])):?>
						<li><strong>Ivalid email:</strong> Please enter a valid email address</li>
					<?endif?>
					<?if(!validateTelephone($_POST['telephone'])):?>
						<li><strong>Invalid number:</strong> You number must be at least 11 numbers</li>
					<?endif?>
					<?if(!validateIncome($_POST['income'])):?>
						<li><strong>Invalid income:</strong> Please enter your monthly income</li>
					<?endif?>
				</ul>
			</div>

		<?elseif(isset($_POST['send'])):?>
			<div id="error" class="valid">
				<ul>
					<?php
					header('Location: thankyou.html');
					?>
				</ul>
			</div>
	<?endif?>

            <form action="" id="contactform" name="contactform" method="post" action="">
            <label for="name">Name:*</label><br />
            <input name="name" class="text" type="text" id="name" value="<?=$_POST['name'] ?>" /><br />
            <label for="company">Company Name (if applicable)</label><br />
            <input name="company" class="text" type="text" value="<?=$_POST['company'] ?>" /><br />
            <label for="address">Address:*</label><br />
            <textarea name="address" class="text" name="address" cols="30" rows="5" value="<?=$_POST['address'] ?>" ></textarea><br /><br />
            <label for="postcode">Postcode:</label><br />
            <input name="postcode" class="text" type="text" value="<?=$_POST['postcode'] ?>"/><br />
            <label for="email">Email:*</label><br />
            <input name="email" class="text" type="text" value="<?=$_POST['email'] ?>" /><br />
            <label for="telephone">Tel:*</label><br />
            <input name="telephone" class="text" type="text" value="<?=$_POST['telephone'] ?>" /><br /><br />

            <p><strong>Your Status</strong></p><br />
            <input type="radio" name="status" value="ltd">
            <label for="postcode">Ltd company:</label><br />
            <input type="radio" name="status" value="sole">
            <label for="postcode">Sole Trader:</label><br />
            <input type="radio" name="status" value="partnership">
            <label for="postcode">Partnership:</label><br />
            <input type="radio" name="status" value="individual">
            <label for="postcode">Individual:</label><br /><br />

            <p><strong>About your Liabilities</strong></p>
            <div style="width: 780px; height: 150px; ">
            <div style="width: 280px; float: left;">
            <label for="credit1">Name of Creditor:</label><br />
            <textarea name="credit1" class="text" name="credit1" cols="30" rows="5" style="float: left;" value="<?=$_POST['credit1'] ?>"></textarea><br /><br />
            </div>
            <label for="owings">Total Amount Owings &#163;'s:</label><br />
            <textarea name="owings" class="text" name="owings" cols="30" rows="5" style="float: left;" value="<?=$_POST['owings'] ?>" ></textarea><br /><br />
            </div>
             <p><strong>About your Assets	</strong></p>

            <div style="width: 880px; height: 150px; ">
            <div style="width: 280px; float: left;">
            <label for="credit2">Name of Creditor:</label><br />
            <textarea name="credit2" class="text" name="credit2" cols="30" rows="5" style="float: left;" value="<?=$_POST['credit2'] ?>"></textarea><br /><br />
            </div>
            <div style="width: 280px; float: left;">
            <label for="valuation">Current Valuation:</label><br />
            <textarea name="valuation" class="text" name="valuation" cols="30" rows="5" style="float: left;" value="<?=$_POST['valuation'] ?>"></textarea><br /><br />
            </div>
                     <div style="width: 280px; float: left;">
            <label for="finance">Outstanding Finance:</label><br />
            <textarea name="finance" class="text" name="finance" cols="30" rows="5" style="float: left;" value="<?=$_POST['finace'] ?>"></textarea><br /><br />
            </div>
            </div>
		<label for="income">Monthly Income:*</label><br />
            <input name="income" class="text" type="text" value="<?=$_POST['income'] ?>" /><br /><br />



            <p class="form-small-text">* denotes mandatory fields	</p>
             <input id="send" name="send" type="submit" value="Send" />
            </form>
            <p> </p>
        </div>

 

You can see, I want it to redirect to the thank you page when all the fields are filled out correctly.

 

But I get the following error:

 

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\CRAIG\frazer\obligation_review.php:9) in C:\xampp\htdocs\CRAIG\frazer\obligation_review.php on line 152

 

Any ideas how to get around this?

 

When all the fields

Link to comment
https://forums.phpfreaks.com/topic/160905-basic-validation/#findComment-849234
Share on other sites

Hi

 

Once you have sent anything (even a space) to the browser you cannot redirect to another script. You are outputting all the DIVs, etc, as you do the validation.

 

You need to do the validation first and then output a screen based on the result or redirect to your thankyou script.

 

All the best

 

Keith

Link to comment
https://forums.phpfreaks.com/topic/160905-basic-validation/#findComment-849240
Share on other sites

Hi

 

Something like this:-

 

<?php
if( isset($_POST['send'])
{
$nameOK = validateName($_POST['name']);
$addressOK = validateAddress($_POST['address']);
$emailOK = validateEmail($_POST['email']);
$telephoneOK = validateTelephone($_POST['telephone']);
$incomeOK = validateIncome($_POST['income']);

if ($nameOK AND $addressOK AND $emailOK AND $telephoneOK  AND $incomeOK)
{
	header('Location: thankyou.html');
}	
}
else
{
$nameOK = true;
$addressOK = true;
$emailOK = true;
$telephoneOK = true;
$incomeOK = true;
}

?>
<form action="" id="contactform" name="contactform" method="post" action="">
<label for="name">Name:*</label><br />
<input name="name" class="text" type="text" id="name" value="<?=$_POST['name'] ?>" /><br />
<?php echo (($nameOK) ? "" : "<strong>Invalid Name:</strong>Your name must be at leasr 3 letters<br />"); ?>
<label for="company">Company Name (if applicable)</label><br />
<input name="company" class="text" type="text" value="<?=$_POST['company'] ?>" /><br />
<label for="address">Address:*</label><br />
<textarea name="address" class="text" name="address" cols="30" rows="5" value="<?=$_POST['address'] ?>" ></textarea><br /><br />
<?php echo (($addressOK) ? "" : "<strong>Invalid Address:</strong> Please enter your full address<br />"); ?>
<label for="postcode">Postcode:</label><br />
<input name="postcode" class="text" type="text" value="<?=$_POST['postcode'] ?>"/><br />
<label for="email">Email:*</label><br />
<input name="email" class="text" type="text" value="<?=$_POST['email'] ?>" /><br />
<?php echo (($emailOK) ? "" : "<strong>Ivalid email:</strong> Please enter a valid email address<br />"); ?>
<label for="telephone">Tel:*</label><br />
<input name="telephone" class="text" type="text" value="<?=$_POST['telephone'] ?>" /><br /><br />
<?php echo (($telephoneOK) ? "" : "<strong>Invalid number:</strong> You number must be at least 11 numbers<br />"); ?>

<p><strong>Your Status</strong></p><br />
<input type="radio" name="status" value="ltd">
<label for="postcode">Ltd company:</label><br />
<input type="radio" name="status" value="sole">
<label for="postcode">Sole Trader:</label><br />
<input type="radio" name="status" value="partnership">
<label for="postcode">Partnership:</label><br />
<input type="radio" name="status" value="individual">
<label for="postcode">Individual:</label><br /><br />

<p><strong>About your Liabilities</strong></p>
<div style="width: 780px; height: 150px; ">
	<div style="width: 280px; float: left;">
		<label for="credit1">Name of Creditor:</label><br />
		<textarea name="credit1" class="text" name="credit1" cols="30" rows="5" style="float: left;" value="<?=$_POST['credit1'] ?>"></textarea><br /><br />
	</div>
	<label for="owings">Total Amount Owings &#163;'s:</label><br />
	<textarea name="owings" class="text" name="owings" cols="30" rows="5" style="float: left;" value="<?=$_POST['owings'] ?>" ></textarea><br /><br />
</div>
<p><strong>About your Assets	</strong></p>

<div style="width: 880px; height: 150px; ">
	<div style="width: 280px; float: left;">
		<label for="credit2">Name of Creditor:</label><br />
		<textarea name="credit2" class="text" name="credit2" cols="30" rows="5" style="float: left;" value="<?=$_POST['credit2'] ?>"></textarea><br /><br />
	</div>
	<div style="width: 280px; float: left;">
		<label for="valuation">Current Valuation:</label><br />
		<textarea name="valuation" class="text" name="valuation" cols="30" rows="5" style="float: left;" value="<?=$_POST['valuation'] ?>"></textarea><br /><br />
	</div>
	<div style="width: 280px; float: left;">
		<label for="finance">Outstanding Finance:</label><br />
		<textarea name="finance" class="text" name="finance" cols="30" rows="5" style="float: left;" value="<?=$_POST['finace'] ?>"></textarea><br /><br />
	</div>
</div>
<label for="income">Monthly Income:*</label><br />
<input name="income" class="text" type="text" value="<?=$_POST['income'] ?>" /><br /><br />
<?php echo (($incomeOK) ? "" : "<strong>Invalid income:</strong> Please enter your monthly income<br />"); ?>

<p class="form-small-text">* denotes mandatory fields	</p>
<input id="send" name="send" type="submit" value="Send" />
</form>

 

Probably a few typos and no attempt at formatting there.

 

Basic idea. Validate the input data. If it is all OK then process is and / or redirect to your next script. If it isn't, or entry to the script was not from pressing the send button (ie, first time in) then output the form, complete with required error messages.

 

All the best

 

Keith

Link to comment
https://forums.phpfreaks.com/topic/160905-basic-validation/#findComment-849287
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.