另一个晚上,另一个问题!
我创建了一个登录页面,如果密码是纯文本,它可以正常工作.
我遇到的问题是我的注册表单使用password_hash为表输入加密密码.
我目前的脚本如下.
注册脚本
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
Run Code Online (Sandbox Code Playgroud)
登录脚本
<?php
session_start();
if(isset($_POST['email'], $_POST['password'])){
require('../../../private_html/db_connection/connection.php');
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = $conn->prepare("SELECT * FROM user_accounts WHERE email=:email AND password=:password");
$query->bindParam(':email', $_POST['email']);
$query->bindParam(':password', $_POST['password']);
$query->execute();
if($row = $query->fetch()){
$_SESSION['email'] = $row['email'];
$_SESSION['first_name'] = $row['first_name'];
header("Location: ../../myaccount/myaccount.php");
}
else {header("Location:../../login/login.php ");}
}
?>
Run Code Online (Sandbox Code Playgroud)
我对这个有几个问题:
password_verify在哪里放入登录脚本?$_SESSION['xxx'] = $row['xxx'];在"我的帐户"页面上不必输入多个来显示用户详细信息,如何使用$results = $stmt->fetch(PDO::FETCH_ASSOC);我读过的方法?提前谢谢了,
CyrilWalrus
我有一个问题,让jQuery Validation检查mysql表中是否已存在电子邮件地址.
每次我提交表单时,它都会告诉我电子邮件已经存在,即使我知道它没有.
这是我的代码:
validation.js
$(document).ready(function () {
$('#signup').validate({
errorLabelContainer: "#cs-error-note",
wrapper: "li",
rules: {
email: {
required: true,
email: true,
remote: {
url: "check-username.php",
type: "post"
}
}
},
messages: {
email: {
required: "Please enter your email address.",
email: "Please enter a valid email address.",
remote: "Email already in use!"
}
},
submitHandler: function(form) {
form.submit();
}
});
});
Run Code Online (Sandbox Code Playgroud)
入住username.php
<?php
require('../../private_html/db_connection/connection.php');
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$query = $conn->prepare("SELECT * FROM 'user_accounts' WHERE email = '" …Run Code Online (Sandbox Code Playgroud)