php创建登录表单,使用php,mysql和html创建登录表单

我想创建一个工作登录表单.这是我所做的,这个显示不能选择db.

编辑了login.php文件

error_reporting(E_ALL);

//Connection Variables:

$dbhost = "localhost";

$dbname = "";

$dbuser = "";

$dbpass = "";

try{

//Connection to SQL:

$conn = new PDO("mysql:host=$dbhost; dbname=$dbname", $dbuser, $dbpass);

//Error messagin enabled:

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

}

catch (PDOException $e)

{

echo $e->getMessage();

}

$user = '';

$pass = '';

$sum = 0;

$error_msg = "Please type a username and a password";

if(isset($_POST['login']))

{

//Start a session:

session_start();

$user = $_POST['email'];

$pass = $_POST['password'];

if(empty($user) && empty($pass))

{

echo $error_msg;

$pass = '';

}

if(empty($user) || empty($pass))

{

echo $error_msg;

$user = '';

$pass = '';

}

if(!empty($user) && !empty($pass))

{

//SQL:

$query = $conn->prepare("SELECT * FROM login WHERE user = :u AND password= :p LIMIT 1");

$query->bindParam(":u", $user);

$query->bindParam(":p", $pass);

//Execute query:

$query->execute();

$number_rows = $query->fetch(PDO::FETCH_NUM);

if($number_rows>0)

{

echo $user;

$_SESSION['usern'] = $user;

$_SESSION['passw'] = $pass;

header("Location: ./pages/home.php");

}

//echo $user;

else

{

echo "Invalid username or password";

header("Location: index.html");

}

}

}

if(!isset($_POST['login']))

{

echo "Login button not clicked";

}

?>

我读了越来越多关于此的文章,但我找不到解决方案.

编辑过的HTML

Signin for OTMS

Email address

Password

Remember me

Sign in

请帮我找出错误是什么.

我使用phpMyAdmin创建了我的数据库,它在localhost中.我使用Bootstrap设计的接口.

这是我现在得到的错误:

Mzzm1.png

database name- otmsdb

table name- login

email, passowrd,

button name- login

解决方法:

先生,您的代码很容易受到SQL注入的攻击.请开始使用MySQLi或PDO.这是一个用于登录的PDO代码,应该可以正常使用:

资料来源:Udemy Online课程.

编辑:使用此代码,并将变量更改为您的

if(isset($_POST['login'])){

session_start();

$errmsg_arr = array();

$errflag = false;

// configuration

$dbhost = "localhost";

$dbname = "your database name";

$dbuser = "your username";

$dbpass = "your password";

// database connection

$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$conn->exec("SET CHARACTER SET utf8mb4");

// new data

$user = $_POST['your name of email input'];

$password = $_POST['password'];

if($user == '') {

$errmsg_arr[] = 'You must enter your Username';

$errflag = true;

}

if($password == '') {

$errmsg_arr[] = 'You must enter your Password';

$errflag = true;

}

// query

$result = $conn->prepare("SELECT * FROM login WHERE username= :u AND password= :p");

$result->bindParam(':u', $user);

$result->bindParam(':p', $password);

$result->execute();

$rows = $result->fetch(PDO::FETCH_NUM);

if($rows > 0) {

$_SESSION['username'] = $user;

header("location: ./pages/home.php");

}

else{

$errmsg_arr[] = 'Username and Password are not found';

$errflag = true;

}

}

?>

HTML表格:

标签:php,mysql

来源: https://codeday.me/bug/20190722/1503587.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值