php - 当我单击登录时,PHP PDO 没有任何反应,只是删除了两个字段
问题描述
当我使用 regitser 页面时,它工作正常,输入的所有日期都按原样保存在 sql server 上,但是当我进入登录页面时输入完全相同的日期。几天前我开始学习 PHP,我尝试了很多东西,包括 youtube 视频和其他 Stackoverflow 帖子,但我无法修复它。
登录.php
<?php
include("../validation/userValidationClass.php");
$userClass = new UserClass();
$errorMessage = "" ;
if (!empty($_POST['submitloginform'])) {
$email=$_POST['emailid'];
$password=$_POST['userpassowrd'];
if(strlen(trim($email))>1 && strlen(trim($password))>1 ){
$uid=$userClass->userLogin($email,$password);
if($uid){
$url='../home/home.php';
header("Location: $url"); //REDIRECIONAR PARA HOME
}
else{
$errorMessage = "Email ou senha inválidos!" ;
}
}
else{
$errorMessage = "Detalhes inválidos" ;
}
}
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style/login.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Train+One&display=swap" rel="stylesheet">
<link rel="icon" href="../imgs/icon.png" style="width: 100%; height: 100%">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="Author" name="Isaque Silva">
<meta charset="utf-8">
<title>Music Nation - Entrar</title>
</head>
<body>
<header>
<div class="banner" >
<span class="txt1"> Music</span>
<span class="txt2">Nation</span>
</div>
</header>
<!-- BANNER -->
<header>
<div class="banner">
<a class="text1"> MusicNation </a>
</div>
</header>
<!-- CADASTRO -->
<div class="content">
<h1> ENTRAR </h1>
<form class="inputform" method="post" action="" name="login">
<label class="labeltxt">Endereço de Email:</label> <br>
<input class="inputs" type="text" name="emailid" required /> <br>
<label class="labeltxt">Senha:</label> <br>
<input class="inputs" type="password" name="userpassowrd" required /> <br>
<input type="submit" class="entrar" name="submitloginform" value="ENTRAR"> <br>
<a class="fazerloginbtt" href="../register/register.php">Criar Conta</a><br>
<div class="errorMsg"><?php echo $errorMessage;?></div>
</form>
</div>
</body>
</html>
userValidationClass.php
<?php
Class UserClass{
public function DBConnect(){
$dbhost ="localhost";
$dbname ="musicnation";
$dbuser ="root";
$dbpass ="";
try {
$dbConnection = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbConnection->exec("set names utf8");
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbConnection;
}
catch (PDOException $e) {
echo 'Conexão falhou: ' . $e->getMessage();
}
}
public function userRegistration($username,$email,$password){
try{
$dbConnection = $this->DBConnect();
$stmt = $dbConnection->prepare('SELECT * FROM `user` WHERE `EMAILID` = :EMAILID ');
$stmt->bindParam(":EMAILID", $email,PDO::PARAM_STR);
$stmt->execute();
$Count = $stmt->rowCount();
if($Count < 1){
$stmt = $dbConnection->prepare('INSERT INTO `user`(USERNAME,EMAILID,PASSWORD,JOINDATE)
VALUES(:USERNAME,:EMAILID,:PASSWORD,:JOINDATE)');
$joindate = date("F j, Y, g:i a");
$hash_password= hash('sha256', $password);
$stmt->bindParam(':USERNAME', $username,PDO::PARAM_STR );
$stmt->bindParam(':EMAILID', $email,PDO::PARAM_STR);
$stmt->bindParam(':PASSWORD', $hash_password,PDO::PARAM_STR );
$stmt->bindParam(':JOINDATE', $joindate,PDO::PARAM_STR);
$stmt->execute();
$Count = $stmt->rowCount();
if($Count == 1 ) {
$uid=$dbConnection->lastInsertId();
$dbConnection = null;
return true;
}
else{
$dbConnection = null;
return false;
}
}
else{
$dbConnection = null;
return false;
}
}
catch (PDOException $e) {
echo 'Erro de conexão: ' . $e->getMessage();
}
}
public function userLogin($email,$password){
try{
$dbConnection = $this->DBConnect();
$stmt = $dbConnection->prepare('SELECT * FROM `user` WHERE `EMAILID` = :EMAILID and `PASSWORD` = :PASSWORD');
$hash_password= hash('sha256', $password);
$stmt->bindParam(":EMAILID", $email,PDO::PARAM_STR);
$stmt->bindParam(":PASSWORD", $hash_password,PDO::PARAM_STR);
$stmt->execute();
$Count = $stmt->rowCount();
$data=$stmt->fetch(PDO::FETCH_OBJ);
if($Count == 1){
session_start();
$_SESSION['uid']=$data->UID;
$_SESSION['uname']=$data->USERNAME;
$_SESSION['emailid']=$data->EMAILID;
$_SESSION['joindateid']=$data->JOINDATE;
$_SESSION['passid']=$data->PASSWORD;
$dbConnection = null ;
return true;
}
else{
$dbConnection = null ;
return false ;
}
}
catch (PDOException $e) {
echo 'Erro de conexão: ' . $e->getMessage();
}
}
}
?>
´´´
解决方案
推荐阅读
- c# - C# XML Deserializer 中的文件意外结束
- java - 如何正确导入 Maven 阴影插件?
- javascript - Javascript RegEx 匹配除特殊字符之间的所有空格
- python - 使用字典将用西班牙语单词写的数字转换为数字字符给我一个 KeyError: 'y' ,它将如何解决?
- python - 代码在调试模式下按预期工作,但是当我在正常运行中启动它时,它失败了
- python - 我将如何通过二维数组“向上或向下移动”
- android-print-manager - 可以使用预定义的打印框架打印 pdf 吗?
- html - HTML 必填字段验证问题
- javascript - 提交带有验证的表单
- database - 是否可以创建触发器以在 postgresql 中的数据库之间移动数据?