купило программное обеспечение php, которое позволяет пользователям создавать веб-сайты. Но парень, которого я заплатил, не создал форму регистрации. Я достаточно опасен, чтобы делать базовое кодирование. Но я чувствую, что это минус мой уровень мастерства. Форма, которую я создал, вставляет в базу данных mysql просто отлично, но она позволяет новым пользователям, использующим эту форму, войти в систему, поскольку поле пароля не является хешированием.Как задать поле пароля
HMTL регистрационная форма:
<form action="input.php" method="post" class="pcss3f pcss3f-type-hor">
<header>Fillout the below to join.</header>
<section class="state-normal">
<label for="">First Name</label>
<input type="text" name="first_name"/>
<i class="icon-user"></i>
</section>
<section class="state-normal">
<label for="">Last Name</label>
<input type="text" name="last_name"/>
<i class="icon-user"></i>
</section>
<section class="state-normal">
<label for="">Email</label>
<input type="email" name="email"/>
<i class="icon-envelope"></i>
</section>
<section class="state-normal">
<label for="">Password</label>
<input type="password" name="password"/>
<i class="icon-key"></i>
</section>
<footer>
<button type="button" onclick="window.location = 'index.html'">Back</button>
<button type="submit" class="color-blue">Submit</button>
</footer>
</form>
и PHP скрипт:
<?php
$con = mysql_connect("localhost","name","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("instantw_builder", $con);
$sql="INSERT INTO users (first_name, last_name, username, email, password)
VALUES
('$_POST[first_name]','$_POST[last_name]','$_POST[email]','$_POST[email]','$_POST[password]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
Что мне нужно сделать, чтобы хэш поле пароля?
** Danger **: Вы используете [** устаревший ** API баз данных] (http://stackoverflow.com/q/12859942/19068) и должны использовать [современные замена] (http://php.net/manual/en/mysqlinfo.api.choosing.php). Вы также уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php). – Quentin
Руководство по PHP содержит [FAQ] (http://php.net/manual/en/faq.passwords.php) по этому вопросу, а также [примеры] (http://php.net/manual/en/ function.password-hash.php). – Quentin
У этого http://daveismyname.com/login-and-registration-system-with-php-bp есть все, что вам нужно. * Плюс, * он использует PDO с подготовленными операторами и 'password_hash()'. –