I am new to coding and stackoverflow so I apologise in advance. I have looked through stackoverflow but cannot find the answer to my problem. I have a html form set up which then saves the email and password to mysql no problem. I wish to add name, DOB, Town, Country to these inputs which I have done so in the html below:
<form class="marginTop" method="post">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Name</span>
<input name="name" class="form-control" placeholder="Katie" type="text" value="<? echo addslashes($_POST['name']); ?>" />
</div>
<div class="input-group">
<span class="input-group-addon">Email</span>
<!-- email panel -->
<input name="email" class="form-control" placeholder="Katie#katie.com" type="email" value="<? echo addslashes($_POST['email']); ?>" />
</div>
<div class="input-group">
<span class="input-group-addon">DOB</span>
<!-- DOB panel -->
<input name="DOB" class="form-control" placeholder="dd/mm/yyyy" type="DOB" value="<? echo addslashes($_POST['DOB']); ?>" />
</div>
<div class="input-group">
<span class="input-group-addon">Town/City</span>
<!-- Place panel -->
<input name="Town" class="form-control" placeholder="New York" type="town" value="<? echo addslashes($_POST['town']); ?>" />
</div>
<div class="input-group">
<span class="input-group-addon">Country</span>
<!-- country panel -->
<input name="country" class="form-control" placeholder="America" type="country" value="<? echo addslashes($_POST['country']); ?>" />
</div>
<div class="input-group">
<span class="input-group-addon">Password</span>
<!-- password panel -->
<input name="password" class="form-control" placeholder="At least 8 characters and 1 cap letter" type="password" value="<? echo addslashes($_POST['password']); ?>" />
</div>
<input type="submit" name="submit" value="Sign Up" class="btn btn-success btn-lg marginTop"/>
</form>
The line in the php doc that encrupts the password and adds it along with the email to mysql is this. This works fine, what I am struggling with is adding Name, DOB, Town and Country.
$query = "INSERT INTO `users` (`email`, `password`) VALUES ('".mysqli_real_escape_string($link, $_POST['email'])."', '".md5(md5($_POST['email']).$_POST['password'])."')";
I thought i could simply add these to this line of code but i get errors when I do. For example like this with adding name to it.
$query = "INSERT INTO `users` (`email`, `password`, `name`) VALUES ('".mysqli_real_escape_string($link, $_POST['email'])."', '".md5(md5($_POST['email']).$_POST['password']).$_POST['name'])."')";
Any help would be very much appreciated, like I said I am new to this so be gentle on me.
Thanks in advance.
Do like below:
$query = "INSERT INTO `users` (`email`, `password`, `name`) VALUES ('".mysqli_real_escape_string($link, $_POST['email'])."', '".md5(md5($_POST['email']).$_POST['password']))."','".$_POST['name']."')";
As #Epodax stated, instead of separating your values (password and name) you are concatenating them.
$query = "INSERT INTO `users` (`email`, `password`, `name`) VALUES ('".mysqli_real_escape_string($link, $_POST['email'])."', '".md5(md5($_POST['email']).$_POST['password']).$_POST['name']."')";
Should be...
$query = "INSERT INTO `users` (`email`, `password`, `name`) VALUES ('".mysqli_real_escape_string($link, $_POST['email'])."', '".md5(md5($_POST['email']).$_POST['password']). "', '" . $_POST['name']."')";
try this:
$query = "INSERT INTO `users` (`email`, `password`, `name`) VALUES ('".mysqli_real_escape_string($link, $_POST['email'])."', '".md5(md5($_POST['email']).$_POST['password']))."','".$_POST['name']."')";
Related
Im using the following code to insert users into a table called 'accounts'
session_start();
include("include/connect.php");
//Posted information from the form put into variables
$username = mysqli_escape_string($conn, $_POST["username"]);
$email = mysqli_escape_string($conn,$_POST["email"]);
$password = mysqli_escape_string($conn,$_POST["password_1"]);
//check if user already exists
$usernameCheck="SELECT * FROM accounts WHERE username='$username'";
//query the db
$usernameResult = mysqli_query($conn, $usernameCheck) or die(mysqli_error($conn));
//if no users exits then add data
if(mysqli_num_rows($usernameResult) == 0){
$AddUser = "INSERT INTO `accounts` (`username`, `email`, `password`) VALUES ('$username', '$email', '$password')";
$newUserSend = mysqli_query($conn, $AddUser) or die(mysqli_error($conn));
mysqli_close($conn);
$_SESSION["user_session"]= $username;
}
However every time it runs it inserts a row with the correct data and then a blank row below. For example
ID Name email password
1 test test#test.com test
2
This is the form where the data is posted from:
<form method="POST" class="signup-form" action="RegisterProcess.php">
<h2 class="form-title">Create account</h2>
<div class="form-group">
<input type="text" value="<?php echo $username; ?>" class="form-input" name="username" placeholder="Your Name" required/>
</div>
<div class="form-group">
<input type="email" value="<?php echo $email; ?>" class="form-input" name="email" placeholder="Your Email Address" required/>
</div>
<div class="form-group">
<input type="password" class="form-input" name="password_1" placeholder="Your Password" required/>
<span toggle="#password" class="zmdi zmdi-eye field-icon toggle-password"></span>
</div>
<div class="form-group">
<input type="password" class="form-input" name="password_2" placeholder="Confirm your password" required/>
<span toggle="#password" class="zmdi zmdi-eye field-icon toggle-password"></span>
</div>
<div class="form-group">
<input type="submit" class="form-submit" value="Sign up"/>
</div>
</form>
Im using the following code to insert users into a table called 'accounts'
session_start();
include("include/connect.php");
//Posted information from the form put into variables
$username = mysqli_escape_string($conn, $_POST["username"]);
$email = mysqli_escape_string($conn,$_POST["email"]);
$password = mysqli_escape_string($conn,$_POST["password_1"]);
//check if user already exists
$usernameCheck="SELECT * FROM accounts WHERE username='$username'";
//query the db
$usernameResult = mysqli_query($conn, $usernameCheck) or die(mysqli_error($conn));
//if no users exits then add data
if(mysqli_num_rows($usernameResult) == 0){
$AddUser = "INSERT INTO `accounts` (`username`, `email`, `password`) VALUES ('$username', '$email', '$password')";
$newUserSend = mysqli_query($conn, $AddUser) or die(mysqli_error($conn));
mysqli_close($conn);
$_SESSION["user_session"]= $username;
}
However every time it runs it inserts a row with the correct data and then a blank row below. For example
ID Name email password
1 test test#test.com test
2
This is the form where the data is posted from:
<form method="POST" class="signup-form" action="RegisterProcess.php">
<h2 class="form-title">Create account</h2>
<div class="form-group">
<input type="text" value="<?php echo $username; ?>" class="form-input" name="username" placeholder="Your Name" required/>
</div>
<div class="form-group">
<input type="email" value="<?php echo $email; ?>" class="form-input" name="email" placeholder="Your Email Address" required/>
</div>
<div class="form-group">
<input type="password" class="form-input" name="password_1" placeholder="Your Password" required/>
<span toggle="#password" class="zmdi zmdi-eye field-icon toggle-password"></span>
</div>
<div class="form-group">
<input type="password" class="form-input" name="password_2" placeholder="Confirm your password" required/>
<span toggle="#password" class="zmdi zmdi-eye field-icon toggle-password"></span>
</div>
<div class="form-group">
<input type="submit" class="form-submit" value="Sign up"/>
</div>
</form>
I'm currently trying to complete this project for school and I would really appreciate some help.
I have been trying to learn PHP so I could extract data from my HTML and put it into my MySQL (which I'm accessing through XAMP). I have a problem that says:
The requested URL was not found on this server.
The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.
If you think this is a server error, please contact the webmaster.' when I press the register button. I don't know what this means? I have a table called usertable in the database Login so I feel like it should work.
This is my PHP code:
<?php
session_start();
$con = mysqli_connect('localhost', 'root', 'ocr2020');
mysqli_select_db($con, 'login');
$name = $_POST['user'];
$pass = $_POST['pass'];
$fname= $_POST['forename'];
$sname = $_POST['surname'];
$mobile = $_POST['mobile'];
$email = $_POST['email'];
$dateofB= $_POST['dateB'];
$s= "select * from usertable where name='$name'";
$s2= "select * from usertable";
$result= mysqli_query($con,$s);
$num= mysqli_num_rows($result);
$num2= mysqli_num_rows($s2);
$id= $num2+1;
if($num==1){
echo" Username Is No Longer Available";
}else{
$reg= " insert into usertable(patientID, Forename, Surname, Username, Password, Email, Mobile,
DateOfBirth) values ('$id', '$fname', '$sname', '$name', '$pass', '$email', '$mobile', '$dateOfB')";
mysqli_query($con, $reg);
echo" Registration Successful";
}
?>
As I said, I would really appreciate any help or advice. Thanks!
Edit:
Here is the updated code having taken on everyone's comments:
<?php
ini_set('display_errors', 1);
ini_set('log_errors',1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);.
session_start();
$con = mysqli_connect('localhost', 'root', 'ocr2020');
mysqli_select_db($con, 'login');
$name = $_POST['user'];
$pass = $_POST['pass'];
$fname= $_POST['forename'];
$sname = $_POST['surname'];
$mobile = $_POST['mobile'];
$email = $_POST['email'];
$dateofB= $_POST['dateB'];
$s= "select * from usertable where name='$name'";
$result= mysqli_query($con,$s);
$num= mysqli_num_rows($result);
if($num>0){
echo" Username Is No Longer Available";
}else{
$reg= " insert into usertable(patientID, Forename, Surname, Username, Password, Email, Mobile, DateOfBirth) values ('$id', '$fname', '$sname', '$name', '$pass', '$email', '$mobile', '$dateOfB')";
mysqli_query($con, $reg);
echo" Registration Successful";
}
?>
Here is the code from the login.php page which is where I press the 'register button' and it creates the problem:
<html>
<section id="loginBox">
<div class="container">
<div class="login-box">
<div class="row">
<div class="col-md-6 login-left">
<h3> Login Here </h3>
<form action="registration.php" method="POST">
<div class="form-group">
<label> Username </label>
<input type="text" name="user" placeholder="Enter your username" class="form-control" required>
</div>
<div class="form-group">
<label> Password </label>
<input type="password" name="password" placeholder="Enter your password" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary"> Login </button>
</form>
</div>
<div class="col-md-6 login-right">
<h3> Register Here </h3>
<form action="validation.php" method="POST">
<div class="form-group">
<label> Username </label>
<input type="text" name="user" placeholder="Enter your username" class="form-control" required>
</div>
<div class="form-group">
<label> Password </label>
<input type="password" name="password" placeholder="Enter your password" class="form-control" required>
</div>
<div class="form-group">
<label> Forename </label>
<input type="text" name="forename" placeholder="Enter your forename" class="form-control" required>
</div>
<div class="form-group">
<label> Surname </label>
<input type="text" name="surname" placeholder="Enter your surname" class="form-control" required>
</div>
<div class="form-group">
<label> Mobile</label>
<input type="text" name="mobile" placeholder="Enter your mobile" class="form-control" required>
</div>
<div class="form-group">
<label> Email </label>
<input type="text" name="email" placeholder="Enter your email" class="form-control" required>
</div>
<div class="form-group">
<label> Date of Birth</label>
<input type="date" name="dateB" placeholder="Enter your date of birth" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary"> Register </button>
</form>
</div>
</div>
</div>
</div>
</section>
</body>
</html>
This is my first question here. I hope I will find the answer.
As the title says I am unable to add users using form I created in html and I am unable to add a user using php function into database.
db.php
<?php
$db['db_host'] = 'localhost';
$db['db_user'] = 'root';
$db['db_pass'] = '';
$db['db_name'] = 'cms';
foreach($db as $key => $value){
define(strtoupper($key),$value);
}
$con = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
//you need to exit the script, if there is an error
exit();
}
?>
add-user.php
<?php
require_once('inc/top.php');
if(!isset($_SESSION['username'])){
header('Location:login.php');
}
else if(isset($_SESSION['username']) and $_SESSION['role'] =='author'){
header('Location:index.php');
}
?>
</head>
<body>
<div id="wrapper">
<?php require_once('inc/header.php');?>
<div class="container-fluid body-section">
<div class="row">
<div class="col-md-3">
<?php require_once('inc/sidebar.php');?>
</div>
<div class="col-md-9">
<h1><i class="fa fa-user-plus"></i> Add User<small>Add
New User</small></h1>
<hr>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-tachometer">
</i> Dashboard</a></li>
<li class="active"><i class="fa fa-user-plus">
</i>Add New User</li>
</ol>
<?php
if(isset($_POST['submit'])){
$date=time();
$first_name = mysqli_real_escape_string($con,$_POST['first-name']);
$last_name = mysqli_real_escape_string($con,$_POST['last-name']);
$username = mysqli_real_escape_string($con,strtolower($_POST['username']));
$username_trim=preg_replace('/\s*/','',$username);
$email = mysqli_real_escape_string($con,strtolower($_POST['email']));
$password = mysqli_real_escape_string($con,$_POST['password']);
$role = $_POST['role'];
$image = $_FILES['image']['name'];
$image_tmp = $_FILES['image']['tmp_name'];
$check_query="SELECT * FROM users WHERE username='$username' or email='$email'";
$check_run=mysqli_query($con,$check_query);
$salt_query="SELECT * FROM users ORDER BY id LIMIT 1";
$salt_run=mysqli_query($con,$salt_query);
$salt_row=mysqli_fetch_array($salt_run);
$salt=$salt_row['salt'];
$password=crypt($password, $salt);
if(empty($first_name) or empty($last_name) or empty($username) or empty($email) or empty($password) or empty($image)) {
$error="All field Required";
}
else if($username!=$username_trim){
$error="Don't use spaces in username";
}
else if(mysqli_num_rows($check_run)){
$error="Username or Email Already Exist";
}
else{
$insert_query="INSERT INTO `users` (`id`, `date`, `first_name`, `last_name`, `username`, `email`, `image`, `password`, `role`) VALUES (NULL, NULL', '$first_name', '$last_name', '$username', '$email', '$image', '$password', '$role')";
if(mysqli_query($con,$insert_query)){
$msg="User has been Added";
move_uploaded_file($image_tmp,"img/$image");
}
else{
$error="user has not been Added";
}
}
}
?>
<div class="row">
<div class="col-md-8">
<form action="" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="first-name">First Name:*</label>
<?php
if(isset($error)){
echo "<span class='pull-right' style='color:red;'>$error</span>";
}
else if(isset($msg)){
echo "<span class='pull-right' style='color:green;'>$msg</span>";
}
?>
<input type="text" name="first-name" value="<?php if(isset($first_name)){ echo $first_name;}?>" id="first-name" class="form-control" placeholder="First Name">
</div>
<div class="form-group">
<label for="last-name">Last Name:*</label>
<input type="text" name="last-name" value="<?php if(isset($last_name)){ echo $last_name;}?>" id="last-name" class="form-control" placeholder="Last Name">
</div>
<div class="form-group">
<label for="username">Username:*</label>
<input type="text" name="username" id="username" value="<?php if(isset($username)){ echo $username;}?>" class="form-control" placeholder="Username">
</div>
<div class="form-group">
<label for="email">Email:*</label>
<input type="text" name="email" id="email" value="<?php if(isset($email)){ echo $email;}?>" class="form-control" placeholder="Email Address">
</div>
<div class="form-group">
<label for="Password">Password:*</label>
<input type="password" name="password" id="password" class="form-control" placeholder="Password">
</div>
<div class="form-group">
<label for="role">Role:*</label>
<select name="role" id="role" class="form-control">
<option value="author">Author</option>
<option value="admin">Admin</option>
</select>
</div>
<div class="form-group">
<label for="image">Profile Picture:*</label>
<input type="file" name="image" id="image">
</div>
<input type="submit" value="Add User" name="submit" class="btn btn-primary">
</form>
</div>
<div class="col-md-4">
<?php
if(isset($check_image)){
echo "<img src='img/$check_image' width='100%'>";
}
?>
</div>
</div>
</div>
</div>
</div>
<?php require_once('inc/footer.php');?>
I have done many searches but didn't find it to work the code and add user. whenever I try to add a user as "author" or "admin" it says "user has not been added".
Thanks in advance
Please try this query where you insert:
INSERT INTO `users` (`date`, `first_name`, `last_name`, `username`, `email`, `image`, `password`, `role`) VALUES (NULL, '$first_name', '$last_name', '$username', '$email', '$image', '$password', '$role');
Solved it by removing id and date because it is auto_increment and it should not have been used into insert into function
I'm having trouble inserting values to the database from the HTML form. Here is my code:
http://pastebin.com/HhynqRnF
Can someone help me out? Thanks!
first you need to create mysql connection .and change your code into this code.
<?php
$con = mysqli_connect("localhost", "root", "", "my_db"); //create connection
if(isset($_POST['submit']))
{
$name = $_POST['fullname'];
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$sql = "INSERT INTO users (name, username, email, password) VALUES ('$name', '$username', '$email', '$password')";
$result = mysqli_query($con, $sql);
}
?>
<form action="" method="post">
<div class="field-wrap">
<label>
Name<span class="req">*</span>
</label>
<input name="fullname" type="text" required autocomplete="off" />
</div>
<div class="field-wrap">
<label>
Username<span class="req">*</span>
</label>
<input name="username" type="text" required autocomplete="off" />
</div>
<div class="field-wrap">
<label>
Email Address<span class="req">*</span>
</label>
<input name="email" type="text" required autocomplete="off"/>
</div>
<div class="field-wrap">
<label>
Set A Password<span class="req">*</span>
</label>
<input name="password" type="password" required autocomplete="off"/>
</div>
<button type="submit" class="button button-block"/>Create Account</button>
</form>
Try Using This
$sql = "INSERT INTO `users` (`name`, `username`, `email`, `password`) VALUES ('$name', '$username', '$email', '$password')";