1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
<?php
/**
* 创建管理员账号脚本
*/
require_once dirname(__DIR__) . '/UpforPHP/bootstrap.php';
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Upfor\UpforPHP\Library\Password;
if (PHP_SAPI != 'cli') {
echo '请在CLI模式下运行';
die;
}
// 生成密码
if (isset($argv[1])) {
echo '密 码:', $argv[1], "\n";
echo '加密后:', "\n", Password::hash($argv[1]), "\n";
die;
}
// 创建账号
$email = '';
$password = '';
$realName = '';
$mobile = '';
echo '创建管理员账户...', "\n\n";
// 邮箱
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo '请输入[email]:';
READ_EMAIL:
echo "\n";
$email = read();
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo '[email]格式不正确, 请重新输入:';
goto READ_EMAIL;
}
echo "\n";
}
if (db()->table('admin_user')->where('email', $email)->has()) {
echo '账号已存在!!!', "\n";
die;
}
// 密码
if (strlen($password) < 6) {
echo '请输入[password]:';
READ_PASSWORD:
echo "\n";
$password = read();
if (strlen($password) < 6) {
echo '[password]长度不可小于6位, 请重新输入:';
goto READ_PASSWORD;
}
echo "\n";
}
// 姓名
if (strlen($realName) < 6) {
echo '请输入[姓名]:';
READ_REAL_NAME:
echo "\n";
$realName = read();
if (strlen($realName) < 2) {
echo '[姓名]错误, 请重新输入:';
goto READ_REAL_NAME;
}
echo "\n";
}
// 手机
if (strlen($mobile) < 6) {
echo '请输入[mobile]:';
READ_MOBILE:
echo "\n";
$mobile = read();
if (strlen($mobile) != 11 || !is_numeric($mobile)) {
echo '[mobile]错误, 请重新输入:';
goto READ_MOBILE;
}
echo "\n";
}
$data = [
'email' => $email,
'password' => Password::hash($password),
'real_name' => $realName,
'mobile' => $mobile,
'status' => 1,
'last_login_ip' => '0',
'last_login_time' => '0',
'create_time' => time(),
'update_time' => time(),
];
if (!model('AdminUser')->insert($data)) {
$error = db()->errorInfo();
echo '创建账号失败, 请重试';
var_dump($error);
die;
}
echo '管理员账号创建成功!!!', "\n";
var_dump($data);
die;
// 交互式读取CLI输入
function read() {
$fp = fopen('php://stdin', 'r');
$input = fgets($fp, 255);
fclose($fp);
$input = trim($input);
return $input;
}
|