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.
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: <input type="text" name="phone" />
<p>Age <input type="text" name="age" /><br/>
<h3> Education Qualification</h3><br/>
<p>School: <textarea name="school" cols="45" rows="5"></textarea>
<p>College: <textarea name="college" cols="45" rows="5"></textarea>
<p>University: <textarea name="university" cols="43" rows="5"></textarea>
<p><h3> Work Experience</h3>
<p>Company Details: <textarea name="company" cols="35" rows="5"></textarea>
<p><h3> Personality Traits</h3>
<p>Personality Traits: <textarea name="personality" cols="35" rows="5"></textarea>
<p><h3>HOBBIES</h3>
<p>HOBBIES: <textarea name="hobbies" cols="45" rows="5"></textarea>
<p><input type="submit" name="Submit" value="Submit" />
</form>
</div>
</body>
</html>
ASKER
@jordan : thankyou
The validations are working fine. However, the values are not getting inserted in the database.
The validations are working fine. However, the values are not getting inserted in the database.
Syntax error near line 76 with your insert into mysql syntax:
see:
see:
VALUES ('',$fname',
should be:VALUES ('','$fname',
...sorry - to be clear, that's line 80 in the code you provided.
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??
So, should I leave the auto_increment field blank??
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:
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')";
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?
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?
I believe what you're looking for is:
Is that what you mean?
$userid = mysql_insert_id();
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?
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?
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?
You need to include
session_start();
at the top of every page that is connected to a page you're leaving from/going to.
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.
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.
Oh - you want the data to auto-populate in the form once the user has logged in?
ASKER
I have included the following code on every page.
Session_start(); is included in the config file.
Session_start(); is included in the config file.
require_once('include/config.php');
ASKER
Yes, that's correct. I want the data to auto-populate once user has logged in.
ASKER CERTIFIED SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
ASKER
@jordanrynard : you are awesome!!!!!!!!!!!!!!!!!!! !!!!!!!!!! !!!!
Thanks so much!!!!! It worked. Thanks a lot!
Thanks so much!!!!! It worked. Thanks a lot!
Open in new window
should actually be:Open in new window
as the name of your submit input is "Submit", not "submit"