首页 > 解决方案 > 当我单击登录时,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();
 }
 
} 
}
?>
´´´ 

标签: phpauthenticationpdo

解决方案


推荐阅读