duanqian9503 2019-04-24 18:36
浏览 52

password_verify()和mysql的问题,有些返回正确,有些则没有

I'm quite inexperienced with a lot of php. I have a registration and login pages.

The accounts created from the index.php page are working fine, but the ones coming from a page called trucks.php page is is having an issue with verify_password();

They both use the same registration and login php pages.

Registration Page:


$type = $_REQUEST['type'];


// Register
$error = "";
$first = mysqli_real_escape_string($conn, $_REQUEST['first_name']);
$last = mysqli_real_escape_string($conn, $_REQUEST['last_name']);
$company_name = mysqli_real_escape_string($conn, $_REQUEST['restaurant_name']);
$email = mysqli_real_escape_string($conn, strtolower($_REQUEST['email']));
$pass = password_hash($_REQUEST['password1'],PASSWORD_DEFAULT);
$cpass = mysqli_real_escape_string($conn, $_REQUEST['password2']);
$phone = mysqli_real_escape_string($conn, $_REQUEST['phone']);
$address = mysqli_real_escape_string($conn, $_REQUEST['address']);
$city = mysqli_real_escape_string($conn, $_REQUEST['city']);
$state = mysqli_real_escape_string($conn, $_REQUEST['state']);
$zip = mysqli_real_escape_string($conn, $_REQUEST['zip']);
$website = mysqli_real_escape_string($conn, $_REQUEST['website']);

$q = "SELECT email FROM users WHERE (email='$email')";
$r = $conn->query($q);
while($row = $r->fetch_assoc())
    {
    if($row['email'] == $email)
    {
    $error = "email";
    }
    }
    if($first == "")
    {
        $error = "first";
    }
    else if($last == "")
    {
        $error = "last";
    }
    else if($email == "")
    {
        $error = "email2";
    }
  else if($pass == "")
    {
            $error = "password";
    }
    else if(!password_verify($cpass,$pass))
    {
            $error = "confirm";
    }
  else if($phone < 0 || $phone > 9999999999)
    {
            $error = "phone";
    }

if($error == "")
{
$q = "INSERT INTO users (first_name, last_name, email, password, phone, registration_date, type)
VALUES ('$first', '$last', '$email', '$pass', '$phone',  NOW(), '0')";
$conn->query($q);
session_start();
$q = "SELECT id, type FROM users WHERE email = '$email'";
$r = $conn->query($q);
while($row = $r->fetch_assoc())
    {
    $id = $row['id'];
  $type = $row['type'];
    }
$_SESSION['id']  = $id;


//Truck Register

if($type = 1)
{
// Link Company to User for login
$q = "INSERT INTO company (user_id, company_name, website, city, postal_code)
VALUES ('$id', '$company_name', '$website', '$city', '$zip')";
$conn->query($q);
}
  header("Location: ../index.php?regstatus=success");
exit;
}
else
{
  if($type == 1)
  {
    header("Location: ../trucks.php?error=$error");
  }
  else{
    header("Location: ../index.php?error=$error");
  }
}

Login Page:

$email = mysqli_real_escape_string($conn, $_REQUEST['email']);
$pass = $_REQUEST['pass'];
$rem = $_REQUEST['remember'];



$q = "SELECT id, password FROM users WHERE email = '$email'";
$r = $conn->query($q);
while($row = $r->fetch_assoc())
{
$passhash = $row['password'];
$id = $row['id'];
}
$verified = password_verify($pass, $passhash);
if($verified)
{
session_start();
$passhash = "";
$pass = "";
$_REQUEST['pass'] = "";
$_SESSION['id'] = $id;
header("Location: ../index.php");
exit;

}
else{
header("Location: ../index.php?status=false");
exit;
}




?>

Tried switching encoding, changed from 2 registration pages to 1 etc.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
    • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
    • ¥16 mybatis的代理对象无法通过@Autowired装填
    • ¥15 可见光定位matlab仿真
    • ¥15 arduino 四自由度机械臂
    • ¥15 wordpress 产品图片 GIF 没法显示
    • ¥15 求三国群英传pl国战时间的修改方法
    • ¥15 matlab代码代写,需写出详细代码,代价私
    • ¥15 ROS系统搭建请教(跨境电商用途)
    • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。