Jump to content

Ignoring a field with script that checks for blank field


liquinas

Recommended Posts

Hello. I have here a standard form with some additional code to check that fields are not left blank. However, fields $L1 through $L20 I want those fields to be allowed to be left blank. Anything I could do to exclude these fields from being required?

 

<?php
$lol = $_GET['lol'];
?>
<?php
$user="liquinas";
$host="localhost";
$password="roflmao";
$database = "tlcmotors";
$connection = mysql_connect($host,$user,$password)
	or die ("An error occured while accessing the database. Please contact liquinas@yahoo.com");
$carinfo = getcarinfo("$lol");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Super Duper Database Management System 2k7</title>
</head>

<body>
<?php
$user="liquinas";
$host="localhost";
$password="roflmao";
$database = "tlcmotors";
$connection = mysql_connect($host,$user,$password)
	or die ("An error occured while accessing the database. Please contact liquinas@yahoo.com");
$carinfo = getcarinfo("$lol");
$DB = mysql_select_db($database,$connection)
	or die ("Error selecting database. Please contact liquinas@yahoo.com");

	/* check information from the form */
	/* set up array of field labels */
	$label_array = array ( "List_title" => "List_title",
							"Short_title" => "Short_title",
							"VIN" => "VIN",
							"ID" => "ID",
							"Engine" => "Display_engine",
							"Transmission" => "Transmission",
							"Color" => "Color",
							"Miles" => "Miles",
							"Display_miles" => "Display_miles",
							"Style" => "Style",
							"Make" => "Make",
							"Price" => "Price",
							"Display_price" => "Display_price",
							"Year" => "Year");
foreach ($HTTP_POST_VARS as $key => $value)
{
/* check each field for blank fields */
if ($value == "")
{
	$blank_array[$key] = "blank";
	}
	elseif ( ereg("(name)",$key) )                //if key includes "name"
	{
		if (!ereg("^[A-Za-z' -]{1,50}$",$HTTP_POST_VARS[$key]) )
		{
			$bad_format[$key] = "bad";
			}
			}
			}
			/* If any fields were not okay, display error message and form */
		if (@sizeof($blank_array) > 0 or @sizeof($badformat) > 0)
		{
			if (@sizeof($blank_array) > 0)
			{
				/* Display message for missing information */
				echo "<b>You didn't fill in one or more required fields. You must enter:</b><br>";
				/* Display listing of missing information */
				foreach($blank_array as $key => $value)
				{
					echo "   {$label_array[$key]}<br>";
					}
					}
				if (@sizeof($bad_format) > 0)
				{
					/* Display message for bad information */
				echo "<b>One or more fields have information that appear to be incorrect. This means it has an incorrect format (i.e. inserting comas or symbols on a text-only field). Please correct the format for the following fields:</b><br>";
				/* Display list of incorrect information */
				foreach($bad_format as $key => $value)
				{
				echo "    {label_array[$key]}<br>";
				}
				}
				/* REDISPLAY THE FORM */

echo "FORM GOES HERE";

exit();
}
else       //if data is okay
{
$query = "INSERT INTO Cars (ID,List_title,Short_title,VIN,Year,Make,Engine,Display_engine,Transmission,Color,Miles,Display_miles,Style,Price,Display_price,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18,L19,L20,Pic_1,Pic_2,Pic_3,Pic_4,Thumb_1,Thumb_2,Thumb_3,Thumb_4) VALUES('$ID','$List_title','$Short_title','$VIN','$Year','$Make','$Engine','$Display_engine','$Transmission','$Color','$Miles','$Display_miles','$Style','$Price','$Display_price','$L1','$L2','$L3','$L4','$L5','$L6','$L7','$L8','$L9','$L10','$L11','$L12','$L13','$L14','$L15','$L16','$L17','$L18','$L19','$L20','$Pic_1','$Pic_2','$Pic_3','$Pic_4','$Thumb_1','$Thumb_2','$Thumb_3','$Thumb_4')";
$result = mysql_query($query)
or die ("Problem with Query. Contact liquinas@yahoo.com");
echo "Database has been updated<br>";
}

?>
</body>
</html>
<?php
function getcarinfo($ID)
{
$db = mysql_select_db("tlcmotors")
or die ("Error-Could not select database. Please contact liquinas@yahoo.com");
$query = "SELECT * FROM cars WHERE ID='$ID'";
$result = mysql_query($query)
or die ("Error-Could not execute query. Please contact liquinas@yahoo.com");
return mysql_fetch_array($result,MYSQL_ASSOC);
}
?>

Link to comment
Share on other sites

I haven't tested this but try:

<?php
$allowed_fields = array();

$i = 1;
while($i < 20)
{
     $i++;
     $allowed_fields[] = 'L' . $i;
}

if($value == "" && !in_array($key, $allowed_fileds))
{
     

 

The if() should not run if the value is L1 through L20. Once again, I didn't test this, but try it and let us know what happens.

Link to comment
Share on other sites

Looks fine to me except for the incrementing.. that'll give you L2 -> L20.  Just start with $i = 0 and that will fix it.  You can also use either

 

foreach (range(1,20) as $i) {
  $allowed_fields[] = 'L' . $i;
}

 

or a C style for loop:

 

for ($i = 1; $i <= 20; $i++) {
  $allowed_fields[] = 'L' . $i;
}

Link to comment
Share on other sites

<?php
$lol = $_GET['lol'];
?>
<?php
$user="liquinas";
$host="localhost";
$password="roflmao";
$database = "tlcmotors";
$connection = mysql_connect($host,$user,$password)
	or die ("An error occured while accessing the database. Please contact liquinas@yahoo.com");
$carinfo = getcarinfo("$lol");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Super Duper Database Management System 2k7</title>
</head>

<body>
<?php
$user="liquinas";
$host="localhost";
$password="roflmao";
$database = "tlcmotors";
$connection = mysql_connect($host,$user,$password)
	or die ("An error occured while accessing the database. Please contact liquinas@yahoo.com");
$carinfo = getcarinfo("$lol");
$DB = mysql_select_db($database,$connection)
	or die ("Error selecting database. Please contact liquinas@yahoo.com");

	/* check information from the form */
	/* set up array of field labels */
	$label_array = array ( "List_title" => "List_title",
							"Short_title" => "Short_title",
							"VIN" => "VIN",
							"ID" => "ID",
							"Engine" => "Display_engine",
							"Transmission" => "Transmission",
							"Color" => "Color",
							"Miles" => "Miles",
							"Display_miles" => "Display_miles",
							"Style" => "Style",
							"Make" => "Make",
							"Price" => "Price",
							"Display_price" => "Display_price",
							"Year" => "Year");
$allowed_fields = array();

$i = 0;
while($i < 20)
{
     $i++;
     $allowed_fields[] = 'L' . $i;
}

foreach ($HTTP_POST_VARS as $key => $value)
{
/* check each field for blank fields */
if ($value == "" && !in_array($key, $allowed_fileds))
{
	$blank_array[$key] = "blank";
	}
	elseif ( ereg("(name)",$key) )                //if key includes "name"
	{
		if (!ereg("^[A-Za-z' -]{1,50}$",$HTTP_POST_VARS[$key]) )
		{
			$bad_format[$key] = "bad";
			}
			}
			}
			/* If any fields were not okay, display error message and form */
		if (@sizeof($blank_array) > 0 or @sizeof($badformat) > 0)
		{
			if (@sizeof($blank_array) > 0)
			{
				/* Display message for missing information */
				echo "<b>You didn't fill in one or more required fields. You must enter:</b><br>";
				/* Display listing of missing information */
				foreach($blank_array as $key => $value)
				{
					echo "   {$label_array[$key]}<br>";
					}
					}
				if (@sizeof($bad_format) > 0)
				{
					/* Display message for bad information */
				echo "<b>One or more fields have information that appear to be incorrect. This means it has an incorrect format (i.e. inserting comas or symbols on a text-only field). Please correct the format for the following fields:</b><br>";
				/* Display list of incorrect information */
				foreach($bad_format as $key => $value)
				{
				echo "    {label_array[$key]}<br>";
				}
				}
				/* REDISPLAY THE FORM */

echo "FORM GOES HERE";

exit();
}
else       //if data is okay
{
$query = "INSERT INTO Cars (ID,List_title,Short_title,VIN,Year,Make,Engine,Display_engine,Transmission,Color,Miles,Display_miles,Style,Price,Display_price,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18,L19,L20,Pic_1,Pic_2,Pic_3,Pic_4,Thumb_1,Thumb_2,Thumb_3,Thumb_4) VALUES('$ID','$List_title','$Short_title','$VIN','$Year','$Make','$Engine','$Display_engine','$Transmission','$Color','$Miles','$Display_miles','$Style','$Price','$Display_price','$L1','$L2','$L3','$L4','$L5','$L6','$L7','$L8','$L9','$L10','$L11','$L12','$L13','$L14','$L15','$L16','$L17','$L18','$L19','$L20','$Pic_1','$Pic_2','$Pic_3','$Pic_4','$Thumb_1','$Thumb_2','$Thumb_3','$Thumb_4')";
$result = mysql_query($query)
or die ("Problem with Query. Contact liquinas@yahoo.com");
echo "Database has been updated<br>";
}

?>
</body>
</html>
<?php
function getcarinfo($ID)
{
$db = mysql_select_db("tlcmotors")
or die ("Error-Could not select database. Please contact liquinas@yahoo.com");
$query = "SELECT * FROM cars WHERE ID='$ID'";
$result = mysql_query($query)
or die ("Error-Could not execute query. Please contact liquinas@yahoo.com");
return mysql_fetch_array($result,MYSQL_ASSOC);
}
?>

 

Try that. If it doesn't work, please let me know.

Link to comment
Share on other sites

I have also tried setting the default value for the text fields to   but this only works when using the form to insert a new record. When using the update form, it shows up as "" again because the default value for the text field comes from the database and it prints it as empty rather than the actual   code.

 

Any other solution to this prob would be greatly appreciated, I'm totally stuck and in deep sh** if I can't get this working.

 

Thanks.

Link to comment
Share on other sites

Array ( [0] => L1 [1] => L2 [2] => L3 [3] => L4 [4] => L5 [5] => L6 [6] => L7 [7] => L8 [8] => L9 [9] => L10 [10] => L11 [11] => L12 [12] => L13 [13] => L14 [14] => L15 [15] => L16 [16] => L17 [17] => L18 [18] => L19 [19] => L20 ) 1

 

the 1 at the end is correct

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.