Jump to content

PHP form issue


clint

Recommended Posts

Hello,

I was hoping I could get a little help on the following:

I have a form to insert a job into the job table which is accessed by users on the users table. The form works and adds data to the job table but is not inserting the user_id from the user so I can use it in a join.

 

Here is my form:

<?php
include 'dbc.php';
page_protect();

if($_POST['submit'] == 'Submit Job') 

{ 
/******************* Filtering/Sanitizing Input *****************************
This code filters harmful script code and escapes data of all POST data
from the user submitted form.
*****************************************************************/
foreach($_POST as $key => $value) {
$data[$key] = filter($value);
}

/********************* RECAPTCHA CHECK *******************************
This code checks and validates recaptcha
****************************************************************/
require_once('recaptchalib.php');
     
      $resp = recaptcha_check_answer ($privatekey,
                                      $_SERVER["REMOTE_ADDR"],
                                      $_POST["recaptcha_challenge_field"],
                                      $_POST["recaptcha_response_field"]);

      if (!$resp->is_valid) {
        die ("<h3>Image Verification failed!. Go back and try again.</h3>" .
             "(reCAPTCHA said: " . $resp->error . ")");			
      }
/***************************************************************************/

if (isset($_SESSION['user_id']))

        $user_id = ($_POST['user_id']);
        $job_title = ($_POST['job_title']);
        $description = ($_POST['description']);
        $type = ($_POST['type']);
        $remuneration = ($_POST['remuneration']);
        $terms = ($_POST['terms']);
        $start_date = ($_POST['start_date']);

 $sql_insert = "INSERT into `jobs` (`id`,`job_title`,`description`,`type`,`date`,`remuneration`,`terms`,`start_date`)
  	  	VALUES ('".$_SESSION['user_id']."','$job_title','$description','$type','$remuneration','$terms','$start_date',now())";

mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());
$user_id = mysql_insert_id($link); 
?>

<html>
<head>
<title>Market Affinity - Post a job</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script language="JavaScript" type="text/javascript" src="js/jquery.validate.js"></script>

  <script>
  $(document).ready(function(){
    $.validator.addMethod("username", function(value, element) {
        return this.optional(element) || /^[a-z0-9\_]+$/i.test(value);
    }, "Username must contain only letters, numbers, or underscore.");

    $("#regForm").validate();
  });
  </script>

<link href="styles.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="5" class="main">
  <tr> 
    <td colspan="3"> </td>
  </tr>
  <tr> 
    <td width="160" valign="top"><p> </p>
      <p>  </p>
      <p> </p>
      <p> </p>
      <p> </p></td>
    <td width="732" valign="top"><p>
  <h2>Thank you</h2> Your job posting is now complete and you can <a href="mysettings.php">return to your menu here</a>";
 <?php exit();
  }
?>
      <h3 class="titlehdr">Add a job to the directory</h3>
      <p>Please fill out the form below to add a job to the directory.<br />
  The more details you fill out the more chance of your post being read.</p>

  <br>
<!-- this file is called insertphpfile, you are posting to inserttest.phpÉ is this correct? -->
      <form action="inserttest.php" method="post" name="regForm" id="regForm" >
        <table width="95%" border="0" cellpadding="3" cellspacing="3" class="forms">
          <tr> 
            <td colspan="2">job_title<span class="required"><font color="#CC0000">*</font></span><br>
              <input name="job_title" type="text" id="job_title" size="40" class="required">
            </td>
            <td width="2"></td>
          </tr>
          <tr> 
            <td colspan="2"> </td>
            <td></td>
          </tr>
          <tr> 
            <td colspan="2">Job Description (max 300 words)<span class="required"><font color="#CC0000">*</font></span><br>
	<!-- you have $post['description'] but your INPUT name is job_description -->
              <textarea name="description" cols="80" rows="8" id="description" class="required"></textarea>
            </td>
            <td></td>
          </tr>
          <tr> 
            <td width="168">Job Type<font color="#CC0000">*</font></td>
            <td width="625"> 
	<!-- you have $post['type'] but your SELECT name is job_type -->
              <select name="type" class="required" id="type">
                <option value="" selected></option>
                <option value="Permanent">Permanent</option>
                <option value="Part Time">Part Time</option>
                <option value="Contract">Contract</option>
              </select>
            </td>
            <td></td>
          </tr>
          <tr> 
            <td height="25" valign="top">Remuneration:</td>
            <td valign="top"> 
              <select name="remuneration" class="required" id="remuneration">
                <option value="" selected></option>
                <option value="0-5000">0-5000</option>
                <option value="5000-10000">5000-10000</option>
                <option value="10000-20000">10000-20000</option>
                <option value="20000-50000">20000-50000</option>
                <option value="50000-100000">50000-100000</option>
                <option value="100000 and above">100000 and above</option>
              </select>
            </td>
            <td></td>
          </tr>
          <tr> 
            <td height="25" valign="top">Salary/Wage terms:<span class="required"><font color="#CC0000"></font></span></td>
            <td valign="top"> <span style="color:red; font: bold 12px verdana; " id="terms" > 
              <select name="terms" class="required" id="terms">
                <option value="" selected></option>
                <option value="hourly">hourly</option>
                <option value="weekly">weekly</option>
                <option value="monthly">monthly</option>
                <option value="other">other</option>
              </select>
              </span> </td>
            <td></td>
          </tr>
          <tr> 
            <td height="34" valign="top">Start Date<span class="required"><font color="#CC0000">*</font></span> 
            </td>
            <td valign="top"> 
              <input name="start_date"  id="start_date">
            </td>
            <td></td>
          </tr>
          <tr> 
            <td height="21" colspan="2" valign="top"> </td>
            <td></td>
          </tr>
          <tr> 
            <td height="24" valign="top"><strong>Image Verification </strong></td>
            <td valign="top"> 
              
		  <?php 
		require_once('recaptchalib.php');

			echo recaptcha_get_html($publickey);
		?>
           
	    </td>
            <td></td>
          </tr>
          <tr> 
            <td height="7"></td>
            <td></td>
            <td></td>
          </tr>
        </table>
        <p align="center">
          <input name="submit" type="submit" id="submit" value="Submit Job">
        </p>
      </form>
      <p align="right"> </p>
   
      </td>
    <td width="196" valign="top"> </td>
  </tr>
  <tr> 
    <td colspan="3"> </td>
  </tr>
</table>
</body>
</html>

 

And here is my jobs table:

 

CREATE TABLE `jobs` (

`id` bigint(20) NOT NULL auto_increment,

`user_id` varchar(200) collate latin1_general_ci NOT NULL,

`job_title` varchar(200) collate latin1_general_ci NOT NULL default '',

`description` text collate latin1_general_ci NOT NULL,

`type` varchar(200) collate latin1_general_ci NOT NULL default '',

`remuneration` varchar(200) collate latin1_general_ci NOT NULL default '',

`terms` varchar(200) collate latin1_general_ci NOT NULL default '',

`start_date` text collate latin1_general_ci NOT NULL,

`date` date NOT NULL default '0000-00-00',

`ckey` varchar(220) collate latin1_general_ci NOT NULL default '',

`ctime` varchar(220) collate latin1_general_ci NOT NULL default '',

PRIMARY KEY (`id`),

FULLTEXT KEY `idx_search` (`job_title`,`user_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=55 ;

 

It is also giving me a duplicate entry error when I use the form again but the primary key (id) is set to auto increment?

 

Any help with this would really be highly appreciated.

Thank you

 

PS: please excuse my newb non programmer lingo!  :shrug:

 

Link to comment
Share on other sites

Your trying to insert the user_id into the id field

	 $sql_insert = "INSERT into `jobs` (`id`,`job_title`,`description`,`type`,`date`,`remuneration`,`terms`,`start_date`)

Needs to be

	 $sql_insert = "INSERT into `jobs` (`user_id`,`job_title`,`description`,`type`,`date`,`remuneration`,`terms`,`start_date`)

 

You do not need to insert the id field as it auto increments

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.