Avatar of sanjay1911
sanjay1911

asked on 

PHP - inserting values in database and maintaining session

Hello,

I have created a form, this purpose of this form is to store user data in the database. Also, it should store user data in sessions. However, when I click on submit button, nothing happens. Data is not getting inserted into database.

Here is my code for create CV page.
<?php 
require_once('include/config.php');

	if (isset($_POST['submit']))
	{
	$fname = $_POST['fname'];
	$lname = $_POST['lname'];
	$address = $_POST['address'];
	$phone = $_POST['phone'];
	$age = $_POST['age'];	
	$school = $_POST['school'];
	$college = $_POST['college'];
	$university = $_POST['university'];
	$company = $_POST['company'];
	$personality = $_POST['personality'];
	$hobbies = $_POST['hobbies'];
	
if ( (!empty($_POST["fname"])) && (!empty($_POST["lname"])) && (!empty($_POST["address"])) && (!empty($_POST["phone"])) && (!empty($_POST["age"])) && (!empty($_POST["school"])) && (!empty($_POST["college"])) && (!empty($_POST["university"])) && (!empty($_POST["company"])) && (!empty($_POST["personality"]))  && (!empty($_POST["hobbies"])))
{
    // Yes, the posted data is available. Escape it for use in query
	$fname = mysql_real_escape_string($_POST["fname"]);
    $lname = mysql_real_escape_string($_POST["lname"]);
    $address = mysql_real_escape_string($_POST["address"]);
    $phone = mysql_real_escape_string($_POST["phone"]);
	$age = mysql_real_escape_string($_POST["age"]);
	$school = mysql_real_escape_string($_POST["school"]);
	$college = mysql_real_escape_string($_POST["college"]);
	 $university = mysql_real_escape_string($_POST["university"]);
	 $company = mysql_real_escape_string($_POST["company"]);
	$personality = mysql_real_escape_string($_POST["personality"]);
	$hobbies = mysql_real_escape_string($_POST["hobbies"]);
}
	
	
$errors=array();
if(!preg_match('/[A-Za-z]/', $fname))
	$errors[]="Name is not valid.";
if(!preg_match('/[A-Za-z]/', $lname))
	$errors[]="Name is not valid.";
if(empty($fname))
	$errors[]="Please enter your first name.";
	if(empty($lname))
	$errors[]="Please enter your last name.";
if(empty($address))
	$errors[]="Please enter your address.";
if(empty($phone))
	$errors[]="Please enter your phone number.";
if(!preg_match('/[0-9]/', $phone))
	$errors[]="Phone number is not valid.";
if(empty($age))
	$errors[]="Please enter your age.";
if(!preg_match('/[0-9]/', $age))
	$errors[]="Age is not valid.";
if(empty($school))
    $errors[]="Please enter your schooling details.";
if(empty($college))
	$errors[]="Please enter your College details.";
if(empty($university))
	$errors[]="Please enter your University details.";
	if(empty($company))
	$errors[]="Please enter your work experience.";
	if(empty($personality))
	$errors[]="Please provide informaiton about your personality traits.";
	if(empty($hobbies))
	$errors[]="Please provide information about your hobbies.";
	
  // $res=mysql_query($sql) or die(mysql_error());

if(sizeof($errors)>0){
	echo ("<font color='red'>");
	foreach ($errors as $err){
	echo ($err."<br/>");
	}
	echo ("</font>");
	exit();
}else{
        // Make the unique user key
      //  $uuk = md5($uid . $pwd . rand());
	  
        $sql = "INSERT INTO createprofile (count,fname, lname, address, phone, age, school, college, university,company, personality, hobbies) VALUES ('',$fname','$lname', '$address', '$phone', '$age','school','$college','$university','$company', '$personality', '$hobbies')";
       $resu=mysql_query($sql);

        
		
		// store user details in session array
        $_SESSION["fname"] = $fname;
		$_SESSION["lname"] = $lname;
		$_SESSION["address"] = $address;
		$_SESSION["phone"] = $phone;
		$_SESSION["age"] = $age;
		$_SESSION["school"] = $school;
		$_SESSION["college"] = $college;
		$_SESSION["university"] = $university;
		$_SESSION["company"] = $company;
		$_SESSION["personality"] = $personality;
		$_SESSION["hobbies"] = $hobbies;

       
        // If create cv form is sucessfull, redirect the user to login_main page
echo "<meta http-equiv='refresh' content='0;url=\"99home.php?page=login_main\"'>";
			exit;
    }

}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Create Profile</title>

</head>
<div>
<h3> PERSONAL DETAILS</h3>
  <form  name="createprofile" method="post" >
    
<p>Firstname:<input type="text" name="fname"  />
<p>Lastname:<input type="text" name="lname"  />
<p>Address: <textarea name="address" cols="45" rows="5"></textarea>
<p>Phone: &nbsp;&nbsp;&nbsp;<input type="text" name="phone"  />

<p>Age &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="age" /><br/>

<h3> Education Qualification</h3><br/>
<p>School:&nbsp;&nbsp;<textarea name="school" cols="45" rows="5"></textarea>
<p>College:&nbsp;&nbsp;<textarea name="college" cols="45" rows="5"></textarea>
<p>University:&nbsp;&nbsp;<textarea name="university" cols="43" rows="5"></textarea>


<p><h3> Work Experience</h3>
<p>Company Details:&nbsp;&nbsp;<textarea name="company" cols="35" rows="5"></textarea>

<p><h3> Personality Traits</h3>
<p>Personality Traits:&nbsp;&nbsp;&nbsp;<textarea name="personality" cols="35" rows="5"></textarea>

<p><h3>HOBBIES</h3>
<p>HOBBIES:&nbsp;&nbsp;<textarea name="hobbies" cols="45" rows="5"></textarea>


<p><input type="submit" name="Submit"  value="Submit" />
    
    
  </form>
</div>


</body>
</html>

Open in new window

PHP

Avatar of undefined
Last Comment
sanjay1911
Avatar of jordanrynard
jordanrynard

Your 3rd line:
if (isset($_POST['submit']))

Open in new window

should actually be:
if (isset($_POST['Submit']))

Open in new window

as the name of your submit input is "Submit", not "submit"
Avatar of sanjay1911
sanjay1911

ASKER

@jordan : thankyou

The validations are working fine. However, the values are not getting inserted in the database.
Avatar of jordanrynard
jordanrynard

Syntax error near line 76 with your insert into mysql syntax:
see:
VALUES ('',$fname',

Open in new window

should be:
VALUES ('','$fname',

Open in new window

Avatar of jordanrynard
jordanrynard

...sorry - to be clear, that's line 80 in the code you provided.
Avatar of sanjay1911
sanjay1911

ASKER

The structure of database is like this: ( ' count' auto_increment, 'fname', 'lname', 'address', 'phone' and so on.

So, should I leave the auto_increment field blank??
Avatar of jordanrynard
jordanrynard

Yeah, just leave it the way you have it... you just missed a " ' " on your $fname value is all...

Line 80 of your code you provided should be this:
$sql = "INSERT INTO createprofile (count,fname, lname, address, phone, age, school, college, university,company, personality, hobbies) VALUES ('','$fname','$lname', '$address', '$phone', '$age','school','$college','$university','$company', '$personality', '$hobbies')";

Open in new window

Avatar of sanjay1911
sanjay1911

ASKER

I have two tables in my website, one table holds registration and login details. primary key is uid(userid).

The second table is createprofile, this table is intended for storing the user details. here auto_increment is count.

how can I relate this two tables? I mean, every user has a unique id(uid). When he creates a profile on the webiste, his details should get saved. How can I relate uid with createprofile table?
Avatar of jordanrynard
jordanrynard

I believe what you're looking for is:
$userid = mysql_insert_id(); 

Open in new window

When you insert a new row in a table, mysql_insert_id() returns the most recently created row's id...

Is that what you mean?
Avatar of sanjay1911
sanjay1911

ASKER

Thanks! the insert query worked. Now, the data is going in the database.

In createprofie.php page, if you look at the line  86 to 96 , even though I have created an associative array and stored user details in sessions, I am not able to retrieve that data. How can I retrieve session data?





Avatar of jordanrynard
jordanrynard

You need to include
session_start();

Open in new window

at the top of every page that is connected to a page you're leaving from/going to.
Avatar of sanjay1911
sanjay1911

ASKER

What I am trying to do here is, maintain user data. I have created a createprofile.php page and create profile table in mysql which stores user data.

What I want is , once user has submitted his details in the database, the next time when user logs in, he should be able to see his data again and make appropriate changes to them i.e. edit details, delete details.

Avatar of jordanrynard
jordanrynard

Oh - you want the data to auto-populate in the form once the user has logged in?
Avatar of sanjay1911
sanjay1911

ASKER

I have included the following code on every page.

Session_start(); is included in the config file.


require_once('include/config.php');

Open in new window

Avatar of sanjay1911
sanjay1911

ASKER

Yes, that's correct. I want the data to auto-populate  once user has logged in.
ASKER CERTIFIED SOLUTION
Avatar of jordanrynard
jordanrynard

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Avatar of sanjay1911
sanjay1911

ASKER

@jordanrynard : you are awesome!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Thanks so much!!!!! It worked. Thanks a lot!
PHP
PHP

PHP is a widely-used server-side scripting language especially suited for web development, powering tens of millions of sites from Facebook to personal WordPress blogs. PHP is often paired with the MySQL relational database, but includes support for most other mainstream databases. By utilizing different Server APIs, PHP can work on many different web servers as a server-side scripting language.

125K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo