Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вообщем пишу свой небольшой веб интерфейс где можно создать аккаунт.
Что надо дернуть что бы в базу ложился хэшированый пароль? отправлять какие то пакетикт на логин сервер или надо прями писать в базу?
<?php
include("credentials.php");
$fsname = $_SERVER['SCRIPT_NAME'];
$msconn = mysql_connect($dbhost.":".$dbport, $dbuser, $dbpass) or die ("Не удалось установить соединение с БД");
MYSQL_SELECT_DB($dbname) or die ("Не удалось установить соединение с БД");
$way = (int)$_GET[step];
if ($way == 0){
echo ('<form name="form1" method="post" action="'.$fsname.'?step=2">
<div align="center">
<table width="266" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="105" align="right">Логин</td>
<td width="161"><label>
<input name="login" type="text" id="login1">
</label></td>
</tr>
<tr>
<td align="right">Пароль</td>
<td><label>
<input name="pass" type="password" id="pass">
</label></td>
</tr>
<tr>
<td align="right">Повтор</td>
<td><label>
<input name="repeat" type="password" id="repeat">
</label></td>
</tr>
<tr>
<td align="right"> </td>
<td align="center"><label>
<input type="submit" name="Submit" value="Регистрация">
</label></td>
</tr>
</table>
</div>
</form>
<p> </p>
');
}
$way = (int)$_GET[step];
if ($way == 2){
$login = strtolower(addslashes($_POST[login]));
$pass = addslashes($_POST[pass]);
$pass2 = addslashes($_POST[repeat]);
if ($login == "" or ctype_alnum($login) == false) {
echo ("<center>Введенное значение <font color=red>не</font> может быть логином.</center>");
}else{
if ($pass == "" or ctype_alnum($pass) == false) {
echo ("<center>Введенное значение <font color=red>не</font> может быть паролем.</center>");
}else{
if ($pass == $pass2) {
$q = mysql_query("SELECT * FROM accounts WHERE login='{$login}'");
if(!mysql_numrows($q) > "0") {
$gamepass = base64_encode(pack("H*", sha1(utf8_encode($pass))));
mysql_query("INSERT INTO accounts(login, password, lastactive, access_level) VALUES('$login' , '$gamepass', '$lastactive', '0')");
echo ("<center>Аккаунт <font color='red'>".$login."</font> успешно зарегистрирован</center>");
} else {
echo ("<center>Имя <font color='red'>".$login."</font> уже зарегистрировано, попробуйте другое.</center>");
}
}else {
echo ("<center>Пароли не совпадают</center>");
}
}
}
}
?>
pack() - какойКод:$gamepass = base64_encode(pack("H*", sha1(utf8_encode($pass))));
Какой ужас. Хоть бы форматирование было а не вырви глазВот из этого дерни что надоКод:<?php include("credentials.php"); $fsname = $_SERVER['SCRIPT_NAME']; $msconn = mysql_connect($dbhost.":".$dbport, $dbuser, $dbpass) or die ("Не удалось установить соединение с БД"); MYSQL_SELECT_DB($dbname) or die ("Не удалось установить соединение с БД"); $way = (int)$_GET[step]; if ($way == 0){ echo ('<form name="form1" method="post" action="'.$fsname.'?step=2"> <div align="center"> <table width="266" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="105" align="right">Логин</td> <td width="161"><label> <input name="login" type="text" id="login1"> </label></td> </tr> <tr> <td align="right">Пароль</td> <td><label> <input name="pass" type="password" id="pass"> </label></td> </tr> <tr> <td align="right">Повтор</td> <td><label> <input name="repeat" type="password" id="repeat"> </label></td> </tr> <tr> <td align="right"> </td> <td align="center"><label> <input type="submit" name="Submit" value="Регистрация"> </label></td> </tr> </table> </div> </form> <p> </p> '); } $way = (int)$_GET[step]; if ($way == 2){ $login = strtolower(addslashes($_POST[login])); $pass = addslashes($_POST[pass]); $pass2 = addslashes($_POST[repeat]); if ($login == "" or ctype_alnum($login) == false) { echo ("<center>Введенное значение <font color=red>не</font> может быть логином.</center>"); }else{ if ($pass == "" or ctype_alnum($pass) == false) { echo ("<center>Введенное значение <font color=red>не</font> может быть паролем.</center>"); }else{ if ($pass == $pass2) { $q = mysql_query("SELECT * FROM accounts WHERE login='{$login}'"); if(!mysql_numrows($q) > "0") { $gamepass = base64_encode(pack("H*", sha1(utf8_encode($pass)))); mysql_query("INSERT INTO accounts(login, password, lastactive, access_level) VALUES('$login' , '$gamepass', '$lastactive', '0')"); echo ("<center>Аккаунт <font color='red'>".$login."</font> успешно зарегистрирован</center>"); } else { echo ("<center>Имя <font color='red'>".$login."</font> уже зарегистрировано, попробуйте другое.</center>"); } }else { echo ("<center>Пароли не совпадают</center>"); } } } } ?>
Да я ж не сам писал, загуглил человеку и скинул)Какой ужас. Хоть бы форматирование было а не вырви глаз
И да mysql чистый же старо. В 7ой версии это вырезали
этот скрипт 100% рабочий.На всех сборках одинаковый алгоритм хэша,
/**
* @param $user
* @param $password
* @return bool
*/
public function Login($user, $password)
{
$hash_pass = $this->HashPassword($password);
$row = DB::run('SELECT * FROM accounts WHERE login=? AND password=?', [$user, $hash_pass]);
if ($row->rowCount() > 0) {
$bank = DB::run('SELECT id FROM casino_bank WHERE account=?',[$user]);
if($bank->rowCount() == 0)
{
DB::run('INSERT INTO casino_bank VALUES (null,?,0,0)',[$user]);
}
return true;
}
return false;
}
упс нето скопировал. Но тоже пригодится)я сделал так.
{PHP:/** * @param $user * @param $password * @return bool */ public function Login($user, $password) [PHP] /** * @param $pass * @param string $type * @return string */ private function HashPassword($pass, $type = 'sha1') { if ($type == 'whirlpool') { return base64_encode(hash('whirlpool', $pass, true)); } return base64_encode(pack('H*', sha1(utf8_encode($pass)))); }
$hash_pass = $this->HashPassword($password);
$row = DB::run('SELECT * FROM accounts WHERE login=? AND password=?', [$user, $hash_pass]);
if ($row->rowCount() > 0) {
$bank = DB::run('SELECT id FROM casino_bank WHERE account=?',[$user]);
if($bank->rowCount() == 0)
{
DB::run('INSERT INTO casino_bank VALUES (null,?,0,0)',[$user]);
}
return true;
}
return false;
}[/PHP]