Во-первых, я бы СИЛЬНО посоветовал не использовать только MySQL sha()
или PHP * sha1()
для хэширования паролей. Это огромный риск для безопасности ваших пользователей, если ваша база данных взломана.
Пожалуйста, найдите время, чтобы прочитайте мой предыдущий ответ на тему хеширования пароля , чтобы должным образом защитить ваши данные.
Во-вторых, ваш код уязвим для атаки SQL-инъекцией . Используйте mysql_real_escape_string()
для экранирования переменных, которые вы собираетесь поместить в свой запрос заранее.
$query2 = "insert into company(username,password)
values('" . mysql_real_escape_string($username) .
"', sha1('" . mysql_real_escape_string($password) . "'))";
В-третьих, ваша $password
переменная перезаписывается вашим databaseconnection.php
файлом.
include("databaseconnection.php");
$databaseconnect = connect($host,$user, $password ,$database);
Чтобы подчеркнуть ...
$databaseconnect = connect($host,$user,
$password
,$database);
Таким образом, $password
, используемый позже в вашем запросе, по-прежнему содержит пароль для подключения к базе данных, а не пароль вашего пользователя.
Измените имя вашей переменной в databaseconnection.php
или, что еще лучше, используйте массив для хранения всей конфигурации.
$dbConnectParams = array('host' => 'localhost'
'user' => 'myUser',
'pass' => 'myPassword',
'db' => 'myDB');
Затем измените свой код следующим образом:
include("databaseconnection.php");
$databaseconnect = mysql_connect($dbConnectParams['host'],
$dbConnectParams['user'],
$dbConnectParams['pass'],
$dbConnectParams['db']);
Поскольку вы уже передаете базу данных при вызове mysql_connect()
, вам не нужно звонить mysql_select_db()
.