Jump to content

Form insert only part of data into database


Voor

Recommended Posts

Hello!

 

So I was trying to make a basic registration form for website. Thing is, it kinda send data and insert it into database but not all of it.

Name, Last name, Username and Password are not send but email and language are. I can not figure out where is a problem with it.

 

HTML:

<form name="reg" action="resscriptsdata.php" method="post" id="reg" onsubmit="return passCheck();">						<div>			<label for="name">Name:</label>			<input type="text" id="name" name="name" value="" required pattern="[^]+"/>			</div>						<div>			<label for="last_name">Last Name:</label>			<input type="text" id="last_name" name="last_name" value="" required pattern="[^]+" />			</div>			<div>			<label for="username">Username:</label>			<input type="text" id="username" name="username" value="" required pattern="[^]+"/>			</div>			<div>			<label for="password1">Password:</label>			<input type="password" id="password1" name="password1" value="" required pattern="[^]+"/><span id="passerr"></span>			</div>			<div>			<label for="email">Email:</label>			<input type="email" name="email" id="email"/>			</div>			<div>			<label for="lang1">First language</label>			<select name="lang1" onChange="callSave(this)" required>				<option value="">Select...</option>				<option value="English">English</option>				<option value="Polish">Polish</option>			</select>			</div>			<div>			<label for="lang2">Second language(optional):</label>			<select name="lang2" onChange="callSave(this)">				<option value="">Select...</option>				<option value="English">English</option>				<option value="Polish">Polish</option>			</select>			</div>			<div>			<input name="submit" type="submit" id="register" value="Register"/>			</div></form>

PHP:

<?php$con=mysqli_connect("localhost", "root", "", 'login');if (mysqli_connect_errno())  {  echo "Failed to connect to MySQL: " . mysqli_connect_error();  }/*get form data*/$name = mysqli_real_escape_string($_POST['name']);$last_name = mysqli_real_escape_string($_POST['last_name']);$username = mysqli_real_escape_string($_POST['username']);$password1 = mysqli_real_escape_string($_POST['password1']);$email = mysqli_real_escape_string($_POST['email']);$lang1 = $_POST['lang1'];$lang2 = $_POST['lang2'];/*check if user in database*/$username_check = mysqli_query($con, 'SELECT Username FROM login.users WHERE Username = $username');	if (mysqli_num_rows($username_check) > 0){		header('Location: usererr.php');	};/*check if email in database*/$email_check = mysqli_query($con, 'SELECT Email FROM login.users WHERE Email = $email');	if (mysqli_num_rows($email_check) > 0){		header('Location: emailerr.php');	};/*hash password*/$hash = hash('sha256', $password1);function createSalt(){	$text = md5(uniqid(rand(), true));	return substr($text, 0,3);	};$salt = createSalt();$password = hash('sha256',$salt . $hash);$activation = md5($email.time());/*send data*/$reg_query = "INSERT INTO users (Name, Surname, Username, Password, Email, Lang1, Lang2, Salt, Activation) VALUES	('$name', '$last_name', '$username', '$password', '$email', '$lang1', '$lang2', '$salt', '$activation');";mysqli_query($reg_query);mysqli_close;header('Location: regsuc.php');	?>

Database details:

 

 

id int(11) AI PK Name varchar(30) Surname varchar(30) Username varchar(30) Password char(128) Email varchar(50) Lang1 varchar(45) Lang2 varchar(45) Lang3 varchar(45) Userlevel int(11) Salt char(128) Ver enum('0','1') Activation varchar(300)

Thank You for any help given :)

Link to comment
Share on other sites

do a var_dump on your post array at the beginning of your php script. Is everything there with the intended key values?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...