I have a registration form, with "Username", "Email", "Password" fields.
I would like that only email with "#mychoice.it" (it's only an example) can be used.
hitoeveryone#mychoice.it -> ok
erika#mychoice.it -> ok
anthony#gmail.it -> NO!!
It is possible? I'm using bootstrap and PHP.
This is my form:
<form method="post" action="registration.php" >
<div class="form-group" id="form-login" >
<label for="exampleInputEmail1">Indirizzo Email</label>
<input type="email" class="form-control" id="exampleInputEmail1" placeholder="nome.cognomeX#studio.unibo.it" name="Input_Email" required>
</div>
<div class="form-group" id="form-login">
<label for="exampleInputUsername1">Username</label>
<input type="name" class="form-control" id="exampleInputUsername1" placeholder="username" name="Input_Username" required>
</div>
<div class="form-group" id="form-login">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="example_InputPassword1" name="Input_Password" placeholder="password" required>
</div>
<button type="submit" class="btn btn-default">Submit</button>
<button type="reset" class="btn btn-default" value="Reset">Reset</button>
and this is my PHP script for registration
<?php
session_start();
require 'connect.php';
if(isset($_POST['Input_Username'])) {
$username = $conn->real_escape_string($_POST['Input_Username']);
}
if(isset($_POST['Input_Email'])) {
$email = $conn->real_escape_string($_POST['Input_Email']);
}
if(isset($_POST['Input_Password'])) {
$password = $conn->real_escape_string($_POST['Input_Password']);
}
$sql = "INSERT INTO utente (Email, Username, Password) VALUES ('$email', '$username', '$password')";
$result = $conn->query($sql);
$conn->close();
header("location:prova.php");
?>
<?php
session_start();
require 'connect.php';
$allowed_domains = array("example.com","example2.com");
if(isset($_POST['Input_Username'])) {
$username = $conn->real_escape_string($_POST['Input_Username']);
}
if(isset($_POST['Input_Email'])) {
$email = $conn->real_escape_string($_POST['Input_Email']);
}
if(isset($_POST['Input_Password'])) {
$password = $conn->real_escape_string($_POST['Input_Password']);
}
$email = explode("#",$email);
if (in_array($email[1],$allowed_domains)) {
$sql = "INSERT INTO utente (Email, Username, Password) VALUES ('$email', '$username', '$password')";
$result = $conn->query($sql);
$conn->close();
header("location:prova.php");
}else{
DO SOMETHING ELSE HERE
}
?>
Related
please i'm kinda new to website development. i tried to create a registration page to work with my database but my registration form page is not responding to the php coding page.
please i need your assistance. thank
This is my registration.html page
i don't know if the error is from my registration form page
<form action="student.php" name="register" id="register" method="POST" data-aos="fade">
<div class="form-group row">
<div class="col-md-6 mb-3 mb-lg-0">
<input type="text" name="firstname" id="firstname" class="form-control" placeholder="First name" required>
</div>
<div class="col-md-6">
<input type="text" name="lastname" id="lastname" class="form-control" placeholder="Last name" required>
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
<input type="text" name="studentid" id="studentid" class="form-control" placeholder="Student ID" value="" required>
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
<input type="text" name="level" class="form-control" placeholder="Level" required>
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
<p class="mb-0">Gender</p>
<input name="gender" type="radio" value="m" required> Male
<input name="gender" type="radio" value="f" required> Female
</div>
</div>
<div class="form-group row">
<div id="date-picker" class="col-md-12 md-form md-outline input-with-post-icon datepicker" inline="true">
<input type="text" name="dob" class="form-control" id="date9" placeholder="DD/MM/YYYY" required>
<i class="fas fa-calendar input-prefix"></i>
</div>
</div>
<script>
$('.datepicker').datepicker({
inline: true;
});
</script>
<div class="form-group row">
<div class="col-md-12">
<input type="email" name="email" class="form-control" placeholder="Email" value="" required>
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
<input type="phone" name="phonenumber" id="phonenumber" class="form-control" placeholder="+234 8179 5523 71" required>
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
<input type="department" name="department" class="form-control" placeholder="Department" required>
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
<input type="password" name="password" value="" id="password" class="form-control" placeholder="Password" required>
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
<input type="password" name="confirmpassword" id="confirmpassword" value="" class="form-control" placeholder="Confirm Password" required>
</div>
</div>
<div class="form-group row">
<div class="col-md-6">
<input type="submit" name="submit" class="btn btn-primary py-3 px-5 btn-block btn-pill" value="SUBMIT">
</div>
</div>
</form>
This is my Php page for the form
or maybe the error is from my php code. please help detect the problem guys. Thanks.
<?php
session_start();
// initializing variables
$studentid = "";
$email = "";
$errors = array();
// connect to the database
$db = mysqli_connect('localhost', 'root', '', 'oneschool');
// REGISTER USER
if (isset($_POST['submit'])) {
// receive all input values from the form
$firstname = mysqli_real_escape_string($db, $_POST['firstname']);
$lastname = mysqli_real_escape_string($db, $_POST['lastname']);
$studentid = mysqli_real_escape_string($db, $_POST['studentid']);
$level = mysqli_real_escape_string($db, $_POST['level']);
$gender = mysqli_real_escape_string($db, $_POST['gender']);
$dob = mysqli_real_escape_string($db, $_POST['dob']);
$email = mysqli_real_escape_string($db, $_POST['email']);
$phonenumber = mysqli_real_escape_string($db, $_POST['phonenumber']);
$department = mysqli_real_escape_string($db, $_POST['department']);
$password_1 = mysqli_real_escape_string($db, $_POST['password']);
$password_2 = mysqli_real_escape_string($db, $_POST['confirmpassword']);
// form validation: ensure that the form is correctly filled ...
// by adding (array_push()) corresponding error unto $errors array
if (empty($studentid)) { array_push($errors, "Student ID is required"); }
if (empty($email)) { array_push($errors, "Email is required"); }
if (empty($password_1)) { array_push($errors, "Password is required"); }
if ($password_1 != $password_2) {
array_push($errors, "The two passwords do not match");
}
// first check the database to make sure
// a user does not already exist with the same username and/or email
$user_check_query = "SELECT * FROM student_registra WHERE studentid='$studentid' OR email='$email' LIMIT 1";
$result = mysqli_query($db, $user_check_query) or die(mysqli_error($db));
$user = mysqli_fetch_assoc($result);
if ($user) { // if user exists
if ($user['studentid'] === $studentid & $user['email'] === $email) {
array_push($errors, "Student Id already taken");
}
if ($user['email'] === $email) {
array_push($errors, "email already exists");
}
}
// Finally, register user if there are no errors in the form
if (count($errors) == 0) {
$password = md5($password_1);//encrypt the password before saving in the database
$query = "INSERT INTO student_registra (firstname, lastname, studentid, level, gender, dob, email, phonenumber, department, password)
VALUES('$firstname', '$lastname', '$studentid', '$level', '$gender', '$dob', '$email', '$phonenumber', '$department', '$password')";
mysqli_query($db, $query);
$_SESSION['studentid'] = $studentid;
$_SESSION['success'] = "Registration Sucessful";
header('location: index.html');
}
}
i don't know what seems to be the problem, because i run it the first time it worked, but when i shutdown my laptop and turn it on back again after my lunch, it stop working.
Instead of it to read the .php code it's rather displaying the whole .php code and i've checked the code, i can't find what seems to be the problem.
please guys, i'll need your help in fixing this or detecting the problem.
thanks
EDIT, You have a lot of useless codes that make your code so slow, Like $_SESSION['success']; This is not neccessary, Change your index.html to index.php and delete it because it do nothing, You can check session by student id You have two gender Inputs, how comes you assign one of them? This is first mistake
Secondly, Use Prepared Statements to avoid SQLI Attacks
Thirdly How comes you header a html page when you're in php page? change index.html to index.php
And Use this code instead:
if (count($errors) == 0) {
$password = md5($password_1);//encrypt the password before saving in the database
$prepared = "INSERT INTO student_registra (firstname, lastname, studentid, level, gender, dob, email, phonenumber, department, password)
VALUES('$firstname', '$lastname', '$studentid', '$level', '$gender', '$dob', '$email', '$phonenumber', '$department', '$password')";
$query = $prepared;
mysqli_query($db, $query);
$_SESSION['studentid'] = $studentid;
# Change your files index.html To index.php
header('location: index.php');
}
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')";
I am having problem with my form.
I want to create a registration form using an email and password.
But it is not inserting on my database.
I include the database connection correctly but I don't know why it s not inserting.
This is my PHP for the registration
<?php
include ("dbconnection.php");
if(isset($_POST['submit'])) {
//gather all the data from the submission process
$email = $_POST['email'];
$password = $_POST['password'];
date_default_timezone_set('Asia/Manila');
$date_created = date('D, d M o h:i:s O', time());
$password = md5($password);
$check_email = mysql_query("SELECT email FROM tbl_clients WHERE email = '$email'") ;
$checked_email = mysql_num_rows($check_email);
if($checked_email != 0) {
echo"<script>alert('Sorry that email is already taken')</script>";
}
else {
$query = "INSERT INTO tbl_registration (email,
password,
created) VALUE
('".$email."',
'".$password."',
".$date_created.")";
$result = mysql_query($query);
echo"<script>alert('Thank you for registering. Your registration is successful!')
</script>";
}
}
?>
This is my HTML
<div class="col-lg-5 col-lg-push-1 col-md-5 col-md-push-1 col-sm-7 col-sm-push-1 col-xs-
12">
<h3><b>Register</b></h3>
<form role="form" method="post" action="">
<div class="form-group">
<label for="email">Email</label>
<input type="text" class="form-control" id="email" name="email" placeholder="Email">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" name="password"
placeholder="Password">
</div>
<button type="submit" class="btn btn-default">Sign Up</button>
</div>
</form>
</div>
You need to write VALUES not VALUE
$query = "INSERT INTO tbl_registration (email,
password,
created) VALUES
('".$email."',
'".$password."',
".$date_created.")";
And BTW, i recommending to you to salt the password