Я только что начал кодирование в PHP, и я застрял в перенаправлении. Я принял информацию $ _POST из представленной формы и присвоил ее переменным. Я получаю 2 пароля: $ password и $ c_password. Моя цель - проверить, совпадают ли оба этих пароля, если они хотят, чтобы они хешировали их. Если нет, я хочу отправить обратно пользователя (перенаправление) на страницу register.php. Проблема в том, что я блокирую все под перенаправлением javascript, это работает. Но если я не блокирую скрипт после перенаправления js, пользователь регистрируется в БД и перенаправляется на страницу login.php. Вот что я закодированы до сих пор:Перенаправление скрипта с PHP после формы хеширования
<?php
// Open database connection
include 'db_connect.php';
// check existence and accept form data
if(isset($_POST['username']) && isset($_POST['email']) && isset($_POST['password']) && isset($_POST['c_password'])) {
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$c_password = $_POST['c_password'];
}
// Hash the password if password and c_password match
if(strcmp($password, $c_password) == 0) {
$password = hash('sha512',$_POST['password']);
}
else { ?>
<script type="text/javascript">
document.location = './register.php?pass_nomatch=1';
</script>
<?php
}
// Create a random salt
$random_salt = hash('sha512', uniqid(mt_rand(1, mt_getrandmax()), true));
// Create salted password (Careful not to over season)
$password = hash('sha512', $password.$random_salt);
// Add your insert to database script here.
// Make sure you use prepared statements!
if ($insert_stmt = $mysqli->prepare("INSERT INTO members (username, email, password, salt) VALUES (?, ?, ?, ?)")) {
$insert_stmt->bind_param('ssss', $username, $email, $password, $random_salt);
// Execute the prepared query.
$insert_stmt->execute();
// Close MYSQL database connection
mysqli_close($mysqli);
// Redirect user to login page
header('Location: ./login.php');
}
?>
Если какой-либо один есть ответ на мой вопрос, пожалуйста, ответьте как можно скорее :)
Что вы подразумеваете под перенаправлением? вы имеете в виду перенаправление пользователя на другую страницу? – samayo
Я точно не знаю, каков ваш вопрос, но я бы предложил использовать заголовки для перенаправления (заголовок («Location: url /»);) как то, что вы делаете в конце, а не javascript, как в середине. – Matt
@Matt Я попробовал заголовок ('register.php? Pass_nomatch = 1'); но он не работает, если после заголовка() есть код; – Dribba