Я хочу проверить поле входа с помощью сценария java и после сопоставления учетных данных хочу go перейти на мою ожидаемую страницу - PullRequest
0 голосов
/ 03 августа 2020

Я хочу подтвердить форму входа через javascript. Я пытаюсь сделать это так:

<script>
    function doValidate() {
        console.log('Validating...');
        try {
            addr = document.getElementById('email').value;
            pw = document.getElementById('pass').value;
            console.log("Validating addr="+addr+" pw="+pw);
            if (addr == null || addr == "" || pw == null || pw == "") {
                alert("Both fields must be filled out");
                return false;
            }

            if ( addr.indexOf('@') == -1 ) {
                alert("Invalid email address");
                return false;
            }
            return true;
        } catch(e) {
            return false;
        }
        return false;
    }
</script>

Вышеупомянутая функция для проверки формы входа и исходная функция производительности входа, приведенная ниже:

<?php
try{
    $con= new PDO("mysql:host=localhost;dbname=courseraassignment","root","");//We made the connection via pdo

    //First of all you need to submit the html form
    if(isset($_POST['Email'])){
        $email=$_POST['Email'];//Fetch the value from input field
        $password=$_POST['Password'];//Fetch the value from input field

        $query=$con->prepare("select * from users where email='$email' and password='$password'");
        $query->setFetchMode(PDO::FETCH_ASSOC);//setFetchMode is default
        $query->execute();//Here the execution is done
        $data=$query->fetch();//Here we fetch all of the data from the database
        //Here we make the condition if some information does not match

         if($data['email']!=$email and $data['password']!=$password){
            $error_login="invalid login credentials";


        }

        //Here is the condition for login purpose
      else if($data['email']=$email and $data['password']=$password){
            $_SESSION['email']=$data['email'];//For further working procedure
            $_SESSION['user_id']=$data['user_id'];//For further working procedure
            $_SESSION['princeLogin']="youAreLoggedIn";

          header('location:index.php');//after the login is done then
            //go to the view page
        }
    }else{
        echo "invalid attempt";
    }
    }catch(PDOException $e){
        echo "error".$e->getMessage();
    }
?>

HTML форма ниже

<form method="POST" action="login.php">
    <label for="email">Email</label>
    <input type="text" name="email" id="email"><br/>
    <label for="id_1723">Password</label>
    <input type="password" name="password" id="pass"><br/>
    <input type="submit" onclick="return doValidate();" value="Log In">
    <input type="submit" name="cancel" value="Cancel">
</form>

Теперь я хочу, чтобы при совпадении учетных данных пользователя я переходил go на ожидаемую страницу. Но я не смог этого сделать: когда я нажимаю кнопку входа в систему, она остается на той же странице, хотя адрес электронной почты и пароль совпадают.

Поэтому, пожалуйста, дайте мне несколько советов.

1 Ответ

0 голосов
/ 03 августа 2020

Замените ваш сценарий приведенным ниже сценарием

if($_SERVER["REQUEST_METHOD"] == "POST") {
  // username and password sent from form 
  
  $email= mysqli_real_escape_string($db,$_POST['email']);
  $password = mysqli_real_escape_string($db,$_POST['password']); 
  
  $sql = "select * from users where email='$email' and password='$password'";
  $result = mysqli_query($db,$sql);
  $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
  $active = $row['active'];
  
  $count = mysqli_num_rows($result);
  
  // If result matched $myusername and $mypassword, table row must be 1 row
    
  if($count == 1) {
     session_register("email");
     $_SESSION['login_user'] = $email;
     
     header("location: index.php");
  }else {
     $error = "Your Login Name or Password is invalid";
  }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...