AWS EC2 Amazon Linux невозможно запустить php файлы - PullRequest
0 голосов
/ 04 марта 2020

У меня есть страница входа / регистрации, которая использует файл php, называемый регистрацией. php, чтобы сохранить адрес электронной почты / пароль в базе данных RDS MySQL. Все это работает на моем локальном хосте, но когда я отправил код в экземпляр Amazon Linux 2 с файлом appspe c, в котором есть хук "BeforeInstall" для файла install_dependencies. sh, в котором есть команды от это руководство , в котором установлены apache и php.

Файл входа / регистрации выглядит следующим образом ...

регистрация. php

<? php include(registration.php) ?> 
// HTML 
// 
<form method="post" action="registration.php"> // the form 
// 
<button name="register_user">Sign Up</button> (the form and button have the same layout for both the login and sign up pages) 
// rest of HTML"

регистрация. php

<?php

session_start();

// initializing variables
$email = "";
$errors = array();

$db_host = 'db-instance endpoint';
$db_username = 'admin';
$db_pass = 'password';
$db_name = 'db';

// connect to the database
$db = mysqli_connect($db_host, $db_username, $db_pass, $db_name);

// Register User
if (isset($_POST['register_user'])) {
    // receive all input values from form
    $email = mysqli_real_escape_string($db, $_POST['email']);
    $reg_password = mysqli_real_escape_string($db, $_POST['password']);

    // form validation
    if (empty($email)) { array_push($errors, "Email is required"); }
    if (empty($reg_password)) { array_push($errors, "Password is required"); }

    // check database for same email
    $user_check_query = "SELECT * FROM users WHERE email='$email' LIMIT 1";
    $result = mysqli_query($db, $user_check_query);
    $user = mysqli_fetch_assoc($result);

    if ($user) { // if user exists
        if ($user['email'] === $email) {
            array_push($errors, "Email already exists");
        }
    }

    // register the user if there are no errors in form
    if (count($errors) == 0) {
        $password = md5($reg_password);
        $query = "INSERT INTO users (email, password) VALUES('$email', '$password')";
        mysqli_query($db, $query);
        header('location: https://drivense.com/homepage.html');
    }
}

// Login User
if (isset($_POST['login_user'])) {
    $email = mysqli_real_escape_string($db, $_POST['email']);
    $login_password = mysqli_real_escape_string($db, $_POST['password']);

    if (empty($email)) {
        array_push($errors, "Email is required");
    }
    if (empty($login_password)) {
        array_push($errors, "Password is required");
    }

    if (count($errors) == 0) {
        $password = md5($login_password);
        $query = "SELECT * FROM users WHERE email='$email' AND password='$password'";
        $results = mysqli_query($db, $query);
        if (mysqli_num_rows($results) == 1) {
            header('location: https://drivense.com/homepage.html');
        } else {
            array_push($errors, "Wrong email/password combination");
        }
    }
}

?>

"regsitration. php" работает для локального хоста, а для AWS я сделал оба "/registration.php "и полная ссылка" https://www.website.com/registration.com ". Ни один из этих трех способов не работает для AWS экземпляров.

Если бы я мог указывать, как это исправить, это было бы очень полезно.

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