我正在用php构建一个聊天机器人,我希望该聊天机器人的功能是用于重置密码,因此它要求使用员工的PIS_CODE
作为其更改密码的主键在“密码”列中,您可以看到我的数据库表。
看到它有PIS_CODE
和密码列,所以我问用户PIS_CODE
,然后问用户新的密码,然后在相应的列中更改了密码
所以我已经能够使用PIS_CODE
并将其用作重置密码的主键,但是重置的密码是PIS_CODE
本身
请参阅此处,我想将密码重置为41000000 PIS_CODE
,但密码本身重置为41000000。因此,似乎我的聊天机器人将输入值假定为pis代码,并且仅使用该值更新了密码列,因此我的聊天机器人无法区分不同的输入。另外,我只想使用一个表格和一个输入字段。
您可以在这里看到我的聊天机器人。
HTML代码:
<div class="form-group">
<form action="process.php" id="form" name="f2" method="POST" >
<input type="textarea" id="tt" name="input" placeholder="Type Your Message" style="position:absolute; bottom:0; height:30px; width:100%; height:50px;" required />
</div>
// this is the code which takes the input for the PIS_CODE
$msgg=$_POST['input'];
// this is the code which takes the input for the password
$pass=$_POST['input'];
// the problem is it saves the same input(that is PIS_CODE) in both the variables($msgg and $pass)
完整代码:
<?php
require_once("config.php");
$msgg=$_POST['input'];
$msg=strtolower($msgg);
$ID = $msg;
$length=strlen($msg);
$flag=0;
$pass=$_POST['input'];
$update = "UPDATE lala SET password='$pass' WHERE PIS_CODE=".$msg;
$res_4=mysqli_query($con,$update);
$sql1 = "SELECT * FROM lala WHERE PIS_CODE='$msg'";
$res_u = mysqli_query($con, $sql1);
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<style>
.in
{
background-color:rgb(64,128,255);
color:white;
padding:10px;
right:0;
width:130px;
text-align: center;
height:auto;
border-radius: 5px;
margin-left: 120px;
margin-bottom: 5px;
}
.out
{
background-color:rgb(241,240,240);
color:black;
padding:10px;
left:5;
width:130px;
text-align: center;
height:auto;
border-radius: 15px;
}
</style>
<body>
<div class="in">
<?php echo "$msgg"; ?>
</div><br>
<div class="out">
<?php
if (($_POST['input']) =='password reset')
{
echo "Do you want to reset your password? ";
}
else if (($_POST['input']) =='yes')
{
echo "Sure, Please provide PIS code ";
}
if (mysqli_num_rows($res_u) == 1)
{
echo 'Pis verified';
echo "Enter new password";
}
if($update){//if the update worked
echo "Update successful!";
}
?>
</div><br>
</body>
</html>
答案 0 :(得分:0)
您可以使用PHP
会话。这将满足您的要求:
require_once("config.php");
$msgg=$_POST['input'];
$msg=strtolower($msgg);
$ID = $msg;
$length=strlen($msg);
$flag=0;
session_start();
if(isset($_SESSION['PIS_CODE'])){
$pass=$_POST['input'];
$update = "UPDATE lala SET password='$pass' WHERE PIS_CODE=".$_SESSION['PIS_CODE'];
$res_4=mysqli_query($con,$update);
unset($_SESSION['PIS_CODE']);
}
else{
$sql1 = "SELECT * FROM lala WHERE PIS_CODE='$msg'";
$res_u = mysqli_query($con, $sql1);
if (mysqli_num_rows($res_u) == 1) {
$_SESSION['PIS_CODE'] = $msg;
}
}
如果我是您(即在聊天机器人上工作),则我将使用$_SESSION
对象进行更多操作。您可以保留简单的1输入表单,并使用PHP
会话来保存有关下一个预期答案的信息,或者对于一系列问题(例如您的示例),以了解当前问题是什么,以及其他可能的用法