Complete validations of register, change some names of routes.
This commit is contained in:
@@ -7,6 +7,7 @@ use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use App\GoodCat;
|
||||
use App\GoodInfo;
|
||||
use App\Transaction;
|
||||
@@ -59,9 +60,9 @@ class GoodController extends Controller
|
||||
public function getInfo(Request $request, $good_id)
|
||||
{
|
||||
$data = [];
|
||||
$data['goods'] = GoodInfo::where('id', $good_id)->first();
|
||||
$data['users'] = UserInfo::where('id',$data['goods']->user_id)->first();
|
||||
$data['sells'] = Transaction::where('good_id',$good_id)->first();
|
||||
$data['good'] = GoodInfo::where('id', $good_id)->first();
|
||||
$data['user'] = UserInfo::where('id',$data['good']->user_id)->first();
|
||||
$data['sell'] = Transaction::where('good_id',$good_id)->first();
|
||||
if($request->session()->has('user_id'))
|
||||
$data['user_id'] = $request->session()->get('user_id');
|
||||
else
|
||||
@@ -149,7 +150,7 @@ class GoodController extends Controller
|
||||
$good->save();
|
||||
$new_good = GoodInfo::orderby('id', 'dsc')->first();
|
||||
Storage::put(
|
||||
'good/title/'.$new_good->id,
|
||||
'good/titlepic/'.$new_good->id,
|
||||
file_get_contents($request->file('goodTitlePic')->getRealPath())
|
||||
);
|
||||
return Redirect::to('/good/add');
|
||||
@@ -259,4 +260,11 @@ class GoodController extends Controller
|
||||
$fav->save();
|
||||
return Redirect::to('/good');
|
||||
}
|
||||
|
||||
public function getTitlePic(Request $request, $good_id)
|
||||
{
|
||||
$image = Storage::get('good/titlepic/'.$good_id);
|
||||
$response = Response::make($image);
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,71 +21,52 @@ use Illuminate\Support\Facades\Session;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Hash;
|
||||
use Mail;
|
||||
use App\Http\Requests\RegisterRequest;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
public function adduser(Request $request)
|
||||
{
|
||||
$this->validate($request,[
|
||||
'username'=>'required|max:20',
|
||||
'email'=>'required|email|max:20',
|
||||
'password'=>'required|max:20',
|
||||
'nickname'=>'max:20',
|
||||
]);
|
||||
$input = $request->all();
|
||||
$test = User::where('username',$request->username)->first();
|
||||
if($test!=NULL)
|
||||
{
|
||||
return redirect()->back()->withInput()->withErrors('用户名已存在!');
|
||||
echo "用户名已存在!";
|
||||
}
|
||||
$user = new User;
|
||||
$user->username = $input['username'];
|
||||
$user->password = sha1($input['password']);
|
||||
$user->email = "#".$input['email'];
|
||||
$user->nickname = $input['nickname'];
|
||||
$userinfo=new UserInfo;
|
||||
if($user->save())
|
||||
{
|
||||
$userinfo->save();
|
||||
$new_user = User::where('username', $user->username)->first();
|
||||
return redirect('/user/'.$new_user->id.'/sendCheckLetter');
|
||||
}
|
||||
else
|
||||
{
|
||||
return redirect()->back()->withInput()->withErrors('注册失败!');
|
||||
}
|
||||
}
|
||||
|
||||
public function login(Request $request)
|
||||
{
|
||||
$input = $request->all();
|
||||
$user = User::where('username',$input['username'])->first();
|
||||
// if($user->password==$request->password&&$user->baned==0)
|
||||
if(sha1($input['password'])==$user->password)
|
||||
{
|
||||
if($user->email[0]=='#') return redirect()->back()->withInput()->withErrors('未验证您的邮箱,请查收您的电子邮箱或<a href\"/user/'.$user->id.'/sendCheckLetter\">重新发送一封</a>');
|
||||
$request->session()->put('user_id', $user->id);
|
||||
$request->session()->put('username', $user->username);
|
||||
$request->session()->put('nickname', $user->nickname);
|
||||
if($user->privilege == 2)
|
||||
$request->session()->put('is_admin', 1);
|
||||
return redirect('/');
|
||||
}
|
||||
else
|
||||
{
|
||||
return redirect()->back()->withInput()->withErrors('用户名或者密码错误!');
|
||||
if($request->method()=='GET'){
|
||||
return View::make('user.login');
|
||||
}else{
|
||||
$input = $request->all();
|
||||
$user = User::where('username',$input['username'])->first();
|
||||
if(sha1($input['password'])==$user->password&&(!$user->baned))
|
||||
{
|
||||
if(!$user->havecheckedemail) return Redirect::back()->withInput()->withErrors('未验证您的邮箱,请查收您的电子邮箱或<a href\"/user/'.$user->id.'/sendCheckLetter\">重新发送一封</a>');
|
||||
$request->session()->put('user_id', $user->id);
|
||||
$request->session()->put('username', $user->username);
|
||||
$request->session()->put('nickname', $user->nickname);
|
||||
if($user->privilege == 2)
|
||||
$request->session()->put('is_admin', 1);
|
||||
return Redirect::to('/');
|
||||
}
|
||||
else
|
||||
{
|
||||
return Redirect::back()->withInput()->withErrors('用户名或者密码错误!');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function register(Request $request)
|
||||
public function register(RegisterRequest $request)
|
||||
{
|
||||
return View::make('user.register');
|
||||
}
|
||||
|
||||
public function show(Request $request)
|
||||
{
|
||||
return View::make('user.show');
|
||||
if($request->method()=='GET'){
|
||||
return View::make('user.register');
|
||||
}else{
|
||||
$input = $request->all();
|
||||
$user = new User;
|
||||
$user->username = $input['username'];
|
||||
$user->password = sha1($input['password']);
|
||||
$user->email = $input['email'];
|
||||
$user->nickname = $input['nickname'];
|
||||
$user->havecheckedemail = false;
|
||||
$user->save();
|
||||
$userinfo=new UserInfo;
|
||||
$userinfo->save();
|
||||
$new_user = User::where('username', $user->username)->first();
|
||||
return Redirect::to('/user/'.$new_user->id.'/sendCheckLetter');
|
||||
}
|
||||
}
|
||||
|
||||
public function getList(Request $request, $user_id)
|
||||
@@ -101,7 +82,7 @@ class UserController extends Controller
|
||||
$request->session()->forget('username');
|
||||
$request->session()->forget('nickname');
|
||||
$request->session()->forget('is_admin');
|
||||
return redirect('/');
|
||||
return Redirect::to('/');
|
||||
}
|
||||
|
||||
public function editList(Request $request, $user_id)
|
||||
@@ -113,7 +94,7 @@ class UserController extends Controller
|
||||
$user->tel_num = $input['tel_num'];
|
||||
$user->address = $input['address'];
|
||||
$user->update();
|
||||
return redirect('/user/'.$user_id);
|
||||
return Redirect::to('/user/'.$user_id);
|
||||
}
|
||||
|
||||
public function showEditPage(Request $request, $user_id)
|
||||
@@ -127,9 +108,9 @@ class UserController extends Controller
|
||||
{
|
||||
$data = [];
|
||||
$user = User::where('id',$user_id)->first();
|
||||
if($user->email[0]!='#') return redirect()->back();
|
||||
if($user->havecheckedemail) return Redirect::to('/')->withErrors('该用户已经验证过邮箱。');
|
||||
$check_email = CheckEmail::where('user_id',$user_id)->first();
|
||||
$email = substr($user->email, 1);
|
||||
$email = $user->email;
|
||||
$token = sha1($email.time());
|
||||
if($check_email!=NULL){
|
||||
$token = $check_email->token;
|
||||
@@ -145,20 +126,23 @@ class UserController extends Controller
|
||||
$m->from('519418441@qq.com', 'Catsworld');
|
||||
$m->to($email, $user->username)->subject('');
|
||||
});
|
||||
return redirect('/show');
|
||||
return Redirect::to('/login')->withErrors('已向您的邮箱发送一封验证邮件,请查收。验证完成后即可登录先锋市场。');
|
||||
}
|
||||
|
||||
public function haveSentCheckLetter(Request $request)
|
||||
{
|
||||
return View::make('user.haveSentCheckLetter');
|
||||
}
|
||||
|
||||
public function checkEmail(Request $request, $token)
|
||||
{
|
||||
$check_email = CheckEmail::where('token', $token)->first();
|
||||
if($check_email==NULL){
|
||||
return redirect('/show')->withError('未知的Token');
|
||||
}
|
||||
if($check_email==NULL) return Redirect::to('/login')->withErrors('未知的Token。');
|
||||
$user = User::find($check_email->user_id);
|
||||
$user->email = substr($user->email, 1);
|
||||
$user->havecheckedemail = true;
|
||||
$user->update();
|
||||
$check_email->delete();
|
||||
return redirect('/show');
|
||||
return Redirect::to('/login')->withErrors('已向验证您的邮箱!现在你可以登录并完善更多信息啦!');
|
||||
}
|
||||
|
||||
public function passwordReset(Request $request)
|
||||
|
||||
@@ -23,7 +23,7 @@ class Authenticate
|
||||
}
|
||||
else
|
||||
{
|
||||
return Redirect::to('/show');
|
||||
return Redirect::to('/login');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ class Check
|
||||
}
|
||||
else
|
||||
{
|
||||
return Redirect::to('/show');
|
||||
return Redirect::to('/login');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use App\Http\Requests\Request;
|
||||
|
||||
class RegisterRequest extends Request
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
if($this->method()=='GET') return [];
|
||||
return [
|
||||
'username'=>'required|alpha_dash|between:3,64|unique:users,username',
|
||||
'email'=>'required|email|unique:users,email|max:64',
|
||||
'password'=>'required|confirmed|between:6,128',
|
||||
'nickname'=>'max:128',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(){
|
||||
return [
|
||||
'username.required' => '用户名不能为空!',
|
||||
'username.alpha_dash' => '用户名只能为字母、数字、减号和下划线!',
|
||||
'username.between' => '用户名长度必须为3-64个字符!',
|
||||
'username.unique' => '该用户名已被注册!',
|
||||
'email.required' => '邮箱不能为空!',
|
||||
'email.email' => '邮箱格式不正确!',
|
||||
'email.unique' => '已有用户使用该邮箱注册!',
|
||||
'email.max' => '邮箱长度不能超过64个字符!',
|
||||
'password.required' => '密码不能为空!',
|
||||
'password.confirmed' => '两次输入的密码不一致!',
|
||||
'password.between' => '密码长度必须为6-128个字符',
|
||||
'nickname.max' => '昵称长度不能超过128个字符!'
|
||||
];
|
||||
}
|
||||
}
|
||||
+6
-10
@@ -76,6 +76,10 @@ Route::group(['middleware' => ['web']],function () {
|
||||
"middleware" => "auth"
|
||||
]);
|
||||
|
||||
Route::get('/good/titlepic/{good_id}', [
|
||||
"uses" => "GoodController@getTitlePic"
|
||||
]);
|
||||
|
||||
Route::get('/good/quick_access', [
|
||||
"uses" => "GoodController@quickAccess",
|
||||
"middleware" => "auth"
|
||||
@@ -149,19 +153,11 @@ Route::group(['middleware' => ['web']],function () {
|
||||
"middleware" => "admin"
|
||||
]);
|
||||
|
||||
Route::post('/adduser', [
|
||||
"uses" => "UserController@adduser"
|
||||
]);
|
||||
|
||||
Route::get('/show', [
|
||||
"uses" => "UserController@show"
|
||||
]);
|
||||
|
||||
Route::get('/register', [
|
||||
Route::match(['post', 'get'], '/register', [
|
||||
"uses" => "UserController@register"
|
||||
]);
|
||||
|
||||
Route::post('/login', [
|
||||
Route::match(['post', 'get'], '/login', [
|
||||
"uses" => "UserController@login"
|
||||
]);
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ class CreateUsersTable extends Migration
|
||||
$table->string('SSO');
|
||||
$table->string('nickname');
|
||||
$table->string('email')->unique();
|
||||
$table->boolean('havecheckedemail');
|
||||
$table->integer('role_id');
|
||||
$table->integer('baned');
|
||||
$table->timestamps();
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<body>
|
||||
@include('layout.header')
|
||||
<div class="page-content">
|
||||
<form class="form-horizontal" action="/good/add" method="POST">
|
||||
<form class="form-horizontal" action="/good/add" method="POST" enctype="multipart/form-data">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<div class="form-group ">
|
||||
@@ -63,14 +63,14 @@
|
||||
<input type="text" class="form-control" placeholder="TAG" name="good_tag">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<div class="form-group">
|
||||
<label for="goodTitleUpload" class="col-md-2 col-sm-offset-5 button">上传封面</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="file" id="goodTitleUpload" class="show-for-sr" name="goodTitlePic" style="margin: 0;" onchange="preview(this)">
|
||||
{!! csrf_field() !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">封面预览:</label>
|
||||
<div class="col-sm-10">
|
||||
<div id="preview" style="max-width: 50%;margin-left: 25%"></div>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
<body>
|
||||
@include('layout.header')
|
||||
<div class="page-content">
|
||||
@foreach($goods as $good)
|
||||
{{$good->description}}<br/>
|
||||
@if($user_id==$good->user_id)
|
||||
<a href='/good/{{$good->id}}/edit'>Edit</a><br/>
|
||||
@@ -13,20 +12,17 @@
|
||||
{{ method_field('DELETE') }}
|
||||
<input type="submit" name="submit1" value="Delete">
|
||||
</form>
|
||||
@endif
|
||||
@if($user_id!=$good->user_id)
|
||||
<form action='/good/{{$good->id}}/buy' method='POST'>
|
||||
{!! csrf_field() !!}
|
||||
<input type="submit" name="sumbit2" value="Buy" >
|
||||
</form>
|
||||
@endif
|
||||
<form action = '/good/{{ $good->id }}/add_favlist' method = 'POST'>
|
||||
{!! csrf_field() !!}
|
||||
<input type = "submit" value = "✪ω✪"/>
|
||||
</form>
|
||||
@endif
|
||||
@if($user_id!=$goods->user_id)
|
||||
<form action='/good/{{$goods->id}}/buy' method='POST'>
|
||||
{!! csrf_field() !!}
|
||||
<input type="submit" name="sumbit2" value="Buy" >
|
||||
</form>
|
||||
@endif
|
||||
@if($user_id == $sells->buyer_id&&$sells->status==2)
|
||||
{{$users->tel_num}}<br/>
|
||||
@endif
|
||||
<a href='/good'>GoodList</a>
|
||||
</div>
|
||||
@include('layout.footer')
|
||||
|
||||
@@ -4,7 +4,54 @@
|
||||
</head>
|
||||
<body>
|
||||
@include('layout.header')
|
||||
<script language="javascript" type="text/javascript">
|
||||
<div class="page-content">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">选择分类:</label>
|
||||
<div class="col-sm-10">
|
||||
<select size="1" name="D1" onChange="javascript:test('mune_x'+this.value)">
|
||||
<option value="0" selected="selected">全部显示</option>
|
||||
<option value="1" >我是分类1</option>
|
||||
<option value="2">我是分类2</option>
|
||||
<option value="3">我是分类4</option>
|
||||
<option value="4">我是滑稽</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">商品列表</label>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<td>#</td>
|
||||
<td>商品名称</td>
|
||||
<td>最低价格</td>
|
||||
<td>最高价格</td>
|
||||
</tr>
|
||||
@foreach($goods as $good)
|
||||
<tr class="cat{{ $good->cat_id }}">
|
||||
<td>{{$good->id}}</td>
|
||||
<td>{{ $good->good_name }}</td>
|
||||
<td>{{ $good->pricemin }}</td>
|
||||
<td>{{ $good->pricemax }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-3 col-sm-offset-3">
|
||||
<a href="/good/add" class="button">添加商品</a>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<a href="/good/mygood" class="button">我的商品</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<ul>
|
||||
</div>
|
||||
<script>
|
||||
function test(Names) {
|
||||
if(Names=="mune_x0")
|
||||
{
|
||||
@@ -119,51 +166,5 @@
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<div class="page-content">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">选择分类:</label>
|
||||
<div class="col-sm-10">
|
||||
<select size="1" name="D1" onChange="javascript:test('mune_x'+this.value)">
|
||||
<option value="0" selected="selected">全部显示</option>
|
||||
<option value="1" >我是分类1</option>
|
||||
<option value="2">我是分类2</option>
|
||||
<option value="3">我是分类4</option>
|
||||
<option value="4">我是滑稽</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">商品列表</label>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<td>#</td>
|
||||
<td>商品名称</td>
|
||||
<td>最低价格</td>
|
||||
<td>最高价格</td>
|
||||
</tr>
|
||||
@foreach($goods as $good)
|
||||
<tr class="cat{{ $good->cat_id }}">
|
||||
<td>{{$good->id}}</td>
|
||||
<td>{{ $good->good_name }}</td>
|
||||
<td>{{ $good->pricemin }}</td>
|
||||
<td>{{ $good->pricemax }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-3 col-sm-offset-3">
|
||||
<a href="/good/add" class="button">添加商品</a>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<a href="/good/mygood" class="button">我的商品</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@include('layout.footer')
|
||||
@include('includes.foot')
|
||||
|
||||
@@ -18,8 +18,7 @@
|
||||
<li><a href="/good/add" class="button">出售</a></li>
|
||||
@else
|
||||
<li><a href="/register">注册</a></li>
|
||||
<li><a href="/show">登录</a></li>
|
||||
<li><a href="/good/add" class="button">出售</a></li>
|
||||
<li><a href="/login">登录</a></li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="small-6 columns">
|
||||
<form action="/good/quick_access" method="GET">
|
||||
<div class="input-group" id="top-bar-quick-access">
|
||||
<input class="input-group-field" type="search" name="query" placeholder="开始我们的交易吧~"/>
|
||||
<input class="input-group-field" type="search" name="query" placeholder="开始交易吧(→﹃→)"/>
|
||||
<div class="input-group-button">
|
||||
<input type="submit" class="button" value="G♂"/>
|
||||
</div>
|
||||
|
||||
@@ -4,6 +4,13 @@
|
||||
<body>
|
||||
@include('layout.header')
|
||||
<div class="page-content">
|
||||
@if (count($errors) > 0)
|
||||
@foreach ($errors->all() as $error)
|
||||
<label>
|
||||
<span class="form-error is-visible">{{ $error }}</span>
|
||||
</label>
|
||||
@endforeach
|
||||
@endif
|
||||
<form action="/login" method="POST">
|
||||
<div>
|
||||
用户名:<input type="text" name="username">
|
||||
@@ -4,24 +4,17 @@
|
||||
<body>
|
||||
@include('layout.header')
|
||||
<div class="page-content">
|
||||
<form action="/adduser" method="POST" data-abide novalidate>
|
||||
@if (count($errors) > 0)
|
||||
<label>
|
||||
<input type="text" name="username" placeholder="用户名" required pattern="alpha_numeric">
|
||||
<span class="form-error">用户名不能为空!只允许包含字母和数字!</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="password" id="password" name="password" placeholder="密码" required>
|
||||
<span class="form-error">密码不能为空!</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="password" placeholder="确认密码" required pattern="alpha_numeric" data-equalto="password">
|
||||
<span class="form-error">两次输入的密码不一致!</span>
|
||||
</label>
|
||||
<input type="text" name="nickname" placeholder="昵称">
|
||||
<label>
|
||||
<input type="email" name="email" placeholder="邮箱" required>
|
||||
<span class="form-error">邮箱未填写或格式不正确!</span>
|
||||
<span class="form-error is-visible">{{ $errors->first() }}</span>
|
||||
</label>
|
||||
@endif
|
||||
<form action="/register" method="POST" data-abide novalidate>
|
||||
<input type="text" name="username" placeholder="用户名(必填,3-64)">
|
||||
<input type="password" id="password" name="password" placeholder="密码(必填,6-128)">
|
||||
<input type="password" name="password_confirmation" placeholder="确认密码(必填)">
|
||||
<input type="text" name="email" placeholder="邮箱(必填)">
|
||||
<input type="text" name="nickname" placeholder="昵称(<=128)">
|
||||
{!! csrf_field() !!}
|
||||
<input type="submit" class="button" value="注册">
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user