[FX.php List] Multiple Page Forms: Unsetting submit button

Jonathan Schwartz jonathan at eschwartz.com
Wed Jul 19 23:14:44 MDT 2006


Bob,

The validation code that I included originally appears on the top of 
form1.   In short, it validates only upon clicking of the submit 
button, and not on the first loading of the page.  It works fine.

When I split the form and created form2, I kept the code on the top 
of form2, assuming that I should perform the similar validation on 
the second form page.

The problem is, once the submit button on the first page is clicked, 
and the script validates the fields, then progresses to the 
createrecord.php script. But when it reaches the validation code on 
form2 , the submit_button is found to be "set", a condition truw for 
form1 but for form2.

The question is, while using this validation scripting on subsequent 
pages, how do I reset the "submit_button" value?

BTW, the advantage of the validation script I an using is that it 
displays ALL the errors at once, rather than one at a time.  I can't 
take credit for it.  I found it somewhere. ;-)

TIA,

Jonathan


At 8:10 PM -0500 7/19/06, Bob Patin wrote:
>I'm not sure why you're checking to see if the SUBMIT button was 
>set. If they don't click it, they'll never arrive at the 2nd page of 
>the form.
>
>If you're concerned about anyone getting to page 2 without going 
>thru page 1, you can set a session variable on the 1st page, which 
>essentially says, "This user did go to page 1." To do that, use this 
>at the very top of your code:
>
>session_start();
>$_SESSION['valid']='Y'; //this could be any value; just so you have 
>a variable that you can check on subsequent forms.
>
>On form 2 and so on, you'd put something like this:
>
>session_start();
>if(isset($_SESSION['valid']){
>
><< form stuff goes inside the brackets
>
>}else{
>echo "You are not authorized to view this page.";
>}
>
>Now, on to the verification stuff: I just use this for each field:
>
>if(isset($_POST['firstname']){
>}else{
>echo 'Please enter a first name.';
>include_once('back_to_form1.php'); //kicks them back before a record 
>is created
>}
>
>or I use
>
>if(strlen($_POST['firstname']<1){
>echo 'Please enter a first name.';
>include_once('back_to_form1.php'); //kicks them back before a record 
>is created
>}
>
>There may be more elegant ways to do field checking, but this seems 
>to work fine for me...
>
>Bob Patin
>Longterm Solutions
>bob at longtermsolutions.com
>615-333-6858
>http://www.longtermsolutions.com
>
>   CONTACT US VIA INSTANT MESSAGING:
>      AIM or iChat: longterm1954
>      Yahoo: longterm_solutions
>      MSN: tech at longtermsolutions.com
>      ICQ: 159333060
>
>
>On Jul 19, 2006, at 7:39 PM, Jonathan Schwartz wrote:
>
>>Moving ahead slooooooooowly with my multiple page form project...
>>
>>I am using the code (below) for form validation. The code appears 
>>on the top of the form pages.  It uses isset to see if the 
>>submit_form button was set.  The problem is now that I have moved 
>>to the second form page, how do I get the "submit_button" to get 
>>unset.  I did try unset('submit_button'), but I'm unclear whether 
>>this is the right way to go, and if so, where to put the unset 
>>command. I feel that I have to Unset while on the createrecord.php 
>>page, just after a succesfull record creation before, but before 
>>the form2.php is loaded.
>>
>>The pages go: form1.php-->createrecord.php--->form2.php.
>>
>>Code from form2.php:
>>
>><?
>>// only validate form when form is submitted
>>if(isset($_POST['submit_button'])){
>>	$msg='';
>>	if(trim($_POST['Reg1NameFirst'])==''){
>>		$msg.="Please enter a First Name.<br>";
>>	}
>>	if(trim($_POST['Reg1NameLast'])==''){
>>		$msg.="Please enter a Last Name.<br>";
>>	}
>>	/*
>>	if(trim($_POST['Reg1Session1'])==''){
>>		$msg.="Please select a Session.<br>";
>>	}
>>	if(trim($_POST["Contact1Email"])=='') {
>>		$msg.="Please enter an email<br>";
>>	} else {
>>		// check if email is a valid address in this format 
>>username at domain.com
>> 
>>	if(!ereg("[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]", 
>>$_POST["Contact1Email"])) $msg.="Please enter a valid email 
>>address<br>";
>>	}
>>*/
>>	// display error message if any, if not, proceed to other processing
>>	if($msg==''){
>>		include('form3.php');
>>		exit;
>>	} else {
>>		#echo "<font color=red>$msg</font>";
>>
>>	}
>>}
>>?>
>>
>>
>>TIA,
>>
>>Jonathan
>>--
>>
>>Jonathan Schwartz
>>Schwartz & Company
>>817 Marin Drive
>>Mill Valley, CA 94941
>>Phone: 415-381-1852
>>jonathan at eschwartz.com - http://www.eschwartz.com
>>
>>_______________________________________________
>>FX.php_List mailing list
>>FX.php_List at mail.iviking.org
>>http://www.iviking.org/mailman/listinfo/fx.php_list
>
>_______________________________________________
>FX.php_List mailing list
>FX.php_List at mail.iviking.org
>http://www.iviking.org/mailman/listinfo/fx.php_list


-- 

Jonathan Schwartz
Schwartz & Company
817 Marin Drive
Mill Valley, CA 94941
Phone: 415-381-1852
jonathan at eschwartz.com - http://www.eschwartz.com



More information about the FX.php_List mailing list