I have a form with about 7 fields that needs to save to a database. I have PHP validation and the Honeypot capture and the form seems to submit and validate but does not write to the database. I am guessing then the part I need help with is the section where it preps and sends the data to the DB. It is able to connect to the DB.
The error message I get is this: Fatal error: Call to undefined function PrepSQL()
I built this so far with a bunch of tutorials and pieced it together so if it can be improved, let me know. Thanks!
Code PHP:<?php //If the form is submitted if(isset($_POST['submitted'])) { //Honeypot if(trim($_POST['checking']) !== '') { $captchaError = true; } else { // First Name if(trim($_POST['first_name']) === '') { $fnameError = 'Please enter your first name.'; $hasError = true; } else { $first_name = trim($_POST['first_name']); } // Last Name if(trim($_POST['last_name']) === '') { $lnameError = 'Please enter your last name.'; $hasError = true; } else { $last_name = trim($_POST['last_name']); } // Company if(trim($_POST['company']) === '') { $companyError = 'Please enter your company name.'; $hasError = true; } else { $company = trim($_POST['company']); } //Check to make sure sure that a valid email address is submitted if(trim($_POST['email']) === '') { $emailError = 'Please enter your email address.'; $hasError = true; } else if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", trim($_POST['email']))) { $emailError = 'Please check the email address you entered.'; $hasError = true; } else { $email = trim($_POST['email']); } // If there are no errors, great! Write to the database. if(!isset($hasError)) { // Connect $db = mysql_connect("localhost","username","password"); if(!$db) die("Error connecting to MySQL database."); mysql_select_db("formdb" ,$db); // Prep $sql = "INSERT INTO contact_details (FIRST_NAME, LAST_NAME, COMPANY, EMAIL, STATE, INTEREST, HEARABOUT) VALUES (". PrepSQL($first_name) . ", " . PrepSQL($last_name) . ", " . PrepSQL($company) . ", " . PrepSQL($email) . ", " . PrepSQL($state) . ", " . PrepSQL($interest) . ", " . PrepSQL($hear_about) . ")"; function PrepSQL($value) { // Stripslashes if(get_magic_quotes_gpc()) { $value = stripslashes($value); } // Quote $value = "'" . mysql_real_escape_string($value) . "'"; return($value); } // Run SQL mysql_query($sql); // Set it to saved $formsaved = true; } }// End the Honeypot else wrap } ?>
And here is the HTML for the form - just so we have the complete file.
Code PHP:<?php if(isset($formsaved) && $formsaved == true) { ?> <div class="thanks"> <h1>Thanks, <?=$first_name;?></h1> <p>Your message is probably popping up on my iPhone right now. I'll get back to you soon!</p> </div> <?php } else { ?> <?php if(isset($hasError) || isset($captchaError)) { ?> <p class="error">There was an error submitting the form.<p> <?php } ?> <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post"> <ul> <li> <label for="first_name">First Name</label> <input type="text" id="first_name" name="first_name" value="<?php if(isset($_POST['first_name'])) echo $_POST['first_name'];?>" autofocus> <?php if($fnameError != '') { ?> <label class="error"><?=$fnameError;?></label> <?php } ?> </li> <li> <label for="last_name">Last Name</label> <input type="text" id="last_name" name="last_name" value="<?php if(isset($_POST['last_name'])) echo $_POST['last_name']; ?>"> <?php if($lnameError != '') { ?> <label class="error"><?=$lnameError;?></label> <?php } ?> </li> <li> <label for="company">Company</label> <input type="text" id="company" name="company" value="<?php if(isset($_POST['company'])) echo $_POST['company']; ?>"> <?php if($companyError != '') { ?> <label class="error"><?=$companyError;?></label> <?php } ?> </li> <li> <label for="email">Email</label> <input type="text" id="email" name="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>"> <?php if($emailError != '') { ?> <label class="error"><?=$emailError;?></label> <?php } ?> </li> <li> <label for="state">State</label> <select id="state" name="state"> <option select="selected">-- Select --</option> <option value="Alaska">Alaska</option> <option value="Alabama">Alabama</option> <option value="Arkansas">Arkansas</option> <option value="Arizona">Arizona</option> <option value="California">California</option> <option value="Colorado">Colorado</option> <option value="Connecticut">Connecticut</option> <option value="District of Columbia">District of Columbia</option> <option value="Delaware">Delaware</option> <option value="Florida">Florida</option> <option value="Georgia">Georgia</option> <option value="Hawaii">Hawaii</option> <option value="Iowa">Iowa</option> <option value="Idaho">Idaho</option> <option value="Illinois">Illinois</option> <option value="Indiana">Indiana</option> <option value="Kansas">Kansas</option> <option value="Kentucky">Kentucky</option> <option value="Louisiana">Louisiana</option> <option value="Massachusetts">Massachusetts</option> <option value="Maryland">Maryland</option> <option value="Maine">Maine</option> <option value="Michigan">Michigan</option> <option value="Minnesota">Minnesota</option> <option value="Missouri">Missouri</option> <option value="Mississippi">Mississippi</option> <option value="Montana">Montana</option> <option value="North Carolina">North Carolina</option> <option value="North Dakota">North Dakota</option> <option value="Nebraska<">Nebraska</option> <option value="New Hampshire">New Hampshire</option> <option value="New Jersey">New Jersey</option> <option value="New Mexico">New Mexico</option> <option value=">Nevada">Nevada</option> <option value="New York">New York</option> <option value="Ohio">Ohio</option> <option value="Oklahoma">Oklahoma</option> <option value="Oregon">Oregon</option> <option value="Pennsylvania">Pennsylvania</option> <option value="Puerto Rico">Puerto Rico</option> <option value="Rhode Island">Rhode Island</option> <option value="South Carolina">South Carolina</option> <option value="South Dakota">South Dakota</option> <option value="Tennessee">Tennessee</option> <option value="Texas">Texas</option> <option value="Utah">Utah</option> <option value="Virginia">Virginia</option> <option value="Vermont">Vermont</option> <option value="Washington">Washington</option> <option value="Wisconsin">Wisconsin</option> <option value="West Virginia">West Virginia</option> <option value="Wyoming">Wyoming</option> </select> </li> <li> <label for="interest">Interested In</label> <select id="interest" name="interest"> <option select="selected">-- Select --</option> <option value="A Demo">A Demo</option> <option value="Referral Partnership">Referral Partnership</option> <option value="Career Opportunities">Career Opportunities</option> <option value="Other">Other</option> </select> </li> <li> <label for="hear_about">How did you hear about us?</label> <select id="hear_about" name="hear_about"> <option select="selected">-- Select --</option> <option value="Advertisement">Advertisement</option> <option value="Internet">Internet</option> <option value="Email">Email</option> <option value="Referral">Referral</option> <option value="Facebook/Twitter/LinkedIn">Facebook/Twitter/LinkedIn</option> <option value="Newsletter">Newsletter</option> <option value="Other">Other</option> </select> </li> </ul> <input type="hidden" name="submitted" id="submitted" value="true" /><button type="submit" class="buttons">Send</button> <label for="checking" class="screenReader">Do not fill in this field</label> <input type="text" name="checking" id="checking" class="screenReader" value="<?php if(isset($_POST['checking'])) echo $_POST['checking'];?>" /> </form> <?php } ?>



Reply With Quote



Bookmarks