php form trouble

Questions about the MySQL, PostgreSQL, and most other databases, as well as using it with PHP can be asked here.

Moderator: General Moderators

Post Reply
longhorn14
Forum Newbie
Posts: 8
Joined: Mon Aug 18, 2003 10:49 pm
Location: austin

php form trouble

Post by longhorn14 »

I am close, but doing something wrong. I have a php page with a form and all of the php code to process it. The database is set up, but when I submit the form, my database does not reflect the information submitted, but it has variable names. I think it is a problem with assigning variables. The hidden field values appear, but nothing else (i.e. the company field has $1_company as the value. If someone could put me on the right track, I would be very happy!
thanks,
nat
code pasted below.

Code: Select all

<?
include("dbcustomers.inc.php");
mysql_connect(mysql,$username,$password);
@mysql_select_db($database) or die( "Unable to select database"); 


$query = "INSERT INTO customers VALUES ('','$whichform','$typeName','$a_company','$1_contact','$1_address','$1_city','$1_state','$1_zip','$1_region','$1_area','$1_phone','$1_fax','$1_cell','1_email','$1_website','$1_comments','1_submittedBy')";
mysql_query($query);

mysql_close();
?> 
<html>
<head>
<title>Customer Database</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../../mdm.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="644" border="0" cellpadding="0" cellspacing="0" class="FORMlive">
  <form name="processors_taxidermists" method="post" action="add_customer.php">
    <tr> 
      <td colspan="2"><strong>Game Processors and Taxidermists</strong></td>
      <td width="58">&nbsp;</td>
      <td width="144"><input name="whichform" type="hidden" id="whichform" value="1">
        <input name="typeName" type="hidden" id="typeName" value="Game Processors and Taxidermists"></td>
      <td width="22">&nbsp;</td>
      <td width="144">&nbsp;</td>
    </tr>
    <tr> 
      <td width="130">&nbsp;</td>
      <td width="144">&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle"> <div align="right">Business/Company</div></td>
      <td> <input name="1_company" type="text" class="INPUTTEXTAREA" id="1_company"> 
      </td>
      <td><div align="right">Contact</div></td>
      <td><input name="1_contact" type="text" class="INPUTTEXTAREA" id="1_contact"></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle"> <div align="right">Address</div></td>
      <td><input name="1_address" type="text" class="INPUTTEXTAREA" id="1_address"></td>
      <td><div align="right">City/State</div></td>
      <td valign="middle"> <input name="1_city" type="text" class="INPUTTEXTAREA" id="1_city" size="10"> 
        &nbsp; <select name="1_state" class="INPUTTEXTAREA" id="1_state">
          <option value="TX" selected>TX</option>
          <option value="AL">AL</option>
          <option value="AK">AK</option>
          <option value="AZ">AZ</option>
          <option value="AR">AR</option>
          <option value="CA">CA</option>
          <option value="CO">CO</option>
          <option value="CT">CT</option>
          <option value="DE">DE</option>
          <option value="DC">DC</option>
          <option value="FL">FL</option>
          <option value="GA">GA</option>
          <option value="HI">HI</option>
          <option value="ID">ID</option>
          <option value="IL">IL</option>
          <option value="IN">IN</option>
          <option value="IA">IA</option>
          <option value="KS">KS</option>
          <option value="KY">KY</option>
          <option value="LA">LA</option>
          <option value="ME">ME</option>
          <option value="MD">MD</option>
          <option value="MA">MA</option>
          <option value="MI">MI</option>
          <option value="MN">MN</option>
          <option value="MS">MS</option>
          <option value="MO">MO</option>
          <option value="MT">MT</option>
          <option value="NE">NE</option>
          <option value="NV">NV</option>
          <option value="NH">NH</option>
          <option value="NJ">NJ</option>
          <option value="NM">NM</option>
          <option value="NY">NY</option>
          <option value="NC">NC</option>
          <option value="ND">ND</option>
          <option value="OH">OH</option>
          <option value="OK">OK</option>
          <option value="OR">OR</option>
          <option value="PA">PA</option>
          <option value="RI">RI</option>
          <option value="SC">SC</option>
          <option value="SD">SD</option>
          <option value="TN">TN</option>
          <option value="UT">UT</option>
          <option value="VT">VT</option>
          <option value="VA">VA</option>
          <option value="WA">WA</option>
          <option value="WV">WV</option>
          <option value="WI">WI</option>
          <option value="WY">WY</option>
          <option value="Other">N/A</option>
        </select> </td>
      <td><div align="right">Zip</div></td>
      <td><input name="1_zip" type="text" class="INPUTTEXTAREA" id="1_zip"></td>
    </tr>
    <tr> 
      <td valign="middle"> <div align="right"></div></td>
      <td>&nbsp;</td>
      <td><div align="right"></div></td>
      <td>&nbsp;</td>
      <td><div align="right"></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle"> <div align="right">Region</div></td>
      <td><input name="1_region" type="text" class="INPUTTEXTAREA" id="1_region"></td>
      <td><div align="right">Area</div></td>
      <td><input name="1_area" type="text" class="INPUTTEXTAREA" id="1_area"></td>
      <td><div align="right"></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td height="15" valign="middle"> <div align="right"></div></td>
      <td>&nbsp;</td>
      <td><div align="right"></div></td>
      <td>&nbsp;</td>
      <td><div align="right"></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle"> <div align="right">Business Phone</div></td>
      <td><input name="1_phone" type="text" class="INPUTTEXTAREA" id="1_phone"></td>
      <td><div align="right">Fax</div></td>
      <td><input name="1_fax" type="text" class="INPUTTEXTAREA" id="1_fax"></td>
      <td><div align="right">Cell</div></td>
      <td><input name="1_cell" type="text" class="INPUTTEXTAREA" id="1_cell"></td>
    </tr>
    <tr> 
      <td valign="middle"> <div align="right">Email</div></td>
      <td><input name="1_email" type="text" class="INPUTTEXTAREA" id="1_email"></td>
      <td><div align="right">Website</div></td>
      <td><input name="1_website" type="text" class="INPUTTEXTAREA" id="1_website"></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle"> <div align="right"></div></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle"> <div align="right">Comments/Agreement</div></td>
      <td colspan="3"><textarea name="1_comments" cols="50" rows="5" class="INPUTTEXTAREA" id="1_comments"></textarea></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle">&nbsp;</td>
      <td colspan="3">&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle"><div align="right">Submitted By</div></td>
      <td colspan="3"><select name="1_submittedBy" class="INPUTTEXTAREA" id="1_submittedBy">
          <option value="null">Please Select</option>
          <option value="Mitchell Aswell">Mitchell Aswell</option>
          <option value="Nathan Dragoo">Nathan Dragoo</option>
          <option value="Alan Hill">Alan Hill</option>
          <option value="Frank Nelson">Frank Nelson</option>
          <option value="John Nelson">John Nelson</option>
        </select></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle">&nbsp;</td>
      <td colspan="3">&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle">&nbsp;</td>
      <td colspan="3"><div align="center"> 
          <input name="Submit" type="submit" class="INPUTTEXTAREAGREEN" value="Add Record">
        </div></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td valign="middle">&nbsp;</td>
      <td colspan="3">&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </form>
</table>
</body>
</html>


?>
McGruff
DevNet Master
Posts: 2893
Joined: Thu Jan 30, 2003 8:26 pm
Location: Glasgow, Scotland

Post by McGruff »

Variable names must start with a letter or underscore.

http://www.php.net/manual/en/language.variables.php
longhorn14
Forum Newbie
Posts: 8
Joined: Mon Aug 18, 2003 10:49 pm
Location: austin

Thanks

Post by longhorn14 »

That worked! I have one more question:
Since I have my PHP code and the HTML form on the same page, if you refresh the page, it submits another empty record. Is there some to get it to submit only when the submit button is pressed? (like is_submitted = true ...)
Thanks for your help.
Caped Knight
Forum Commoner
Posts: 33
Joined: Wed Jan 01, 2003 6:20 pm
Location: Somewhere...out there...

Post by Caped Knight »

That worked! I have one more question:
Since I have my PHP code and the HTML form on the same page, if you refresh the page, it submits another empty record. Is there some to get it to submit only when the submit button is pressed? (like is_submitted = true ...)
Thanks for your help.
Check to see if the variable's value is "" before submitting anything:

Code: Select all

<?php

if($varname == ""){unset($varname);}

?>
Or you be even more creative and add a hidden form:

Code: Select all

<input type="hidden" name="confirm" value="">

<?php if(isset($confirm)){ [execute queries] } ?>
?>
longhorn14
Forum Newbie
Posts: 8
Joined: Mon Aug 18, 2003 10:49 pm
Location: austin

Post by longhorn14 »

Thanks a ton, I will give it a shot. I knew there must be some way, as there is in ASP.
User avatar
JAM
DevNet Resident
Posts: 2101
Joined: Fri Aug 08, 2003 6:53 pm
Location: Sweden
Contact:

Post by JAM »

Well, refreshing the page will make the page submit the same info again if I'm not mistaking...

You could add the following after the $_POST info has been dealt with:

Code: Select all

<script language="JavaScript">window.location="add_customer.php";
</script>
...or using php's header() function to redirect the user to the same (or other) page a second time, and while doing that loosing the $_POST info...
Caped Knight
Forum Commoner
Posts: 33
Joined: Wed Jan 01, 2003 6:20 pm
Location: Somewhere...out there...

Post by Caped Knight »

You could just unset all $_POST's, couldn't you?
fractalvibes
Forum Contributor
Posts: 335
Joined: Thu Sep 26, 2002 6:14 pm
Location: Waco, Texas

Post by fractalvibes »

I usually just check for the submit button that fires the event being greater than "". Usually have a number of different submit buttons and sections of the page that either display or are hidden depending upon the button clicked...seems logical to me!

fv
Post Reply