У меня есть страница входа / регистрации, которая использует файл 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 экземпляров.
Если бы я мог указывать, как это исправить, это было бы очень полезно.