form example collective php forms laravel laravel-5

php - laravel collective form example



cambiar contraseƱa usuario laravel 5.3 (3)

Quiero crear un formulario con el campo 3 (old_password, new_password, confirm_password) con laravel 5.

Ver

contraseña antigua: {!! Form::password(''old_password'',[''class'' => ''form-control'']) !!} {!! Form::password(''old_password'',[''class'' => ''form-control'']) !!}

Nueva contraseña: {!! Form::password(''password'',[''class'' => ''form-control'']) !!} {!! Form::password(''password'',[''class'' => ''form-control'']) !!}

Confirmar nueva contraseña: {!! Form::password(''verify_password'',[''class'' => ''form-control'']) !!} {!! Form::password(''verify_password'',[''class'' => ''form-control'']) !!}

Controlador cuando el usuario se registra

public function postRegister(Request $request) { $rules = [ ''email'' => ''required|email|unique:users'', ''confirm_email'' => ''required|same:email'', ''password'' => ''required|min:8|regex:/^(?=/S*[a-z])(?=/S*[!@#$&*])(?=/S*[A-Z])(?=/S*[/d])/S*$/'', ''verify_password'' => ''required|same:password'', ]; $messages = [ ''email.required'' => ''email tidak boleh kosong'', ''password.required'' => ''password tidak boleh kosong'', ''password.min'' => ''Password harus minimal 8 karakter'', ''password.regex'' => ''Format password harus terdiri dari kombinasi huruf besar, angka dan karakter spesial (contoh:!@#$%^&*?><).'', ''verify_password.required'' => ''Verify Password tidak boleh kosong'', ''email.email'' => ''Format Email tidak valid'', ''email.unique'' => ''Email yang anda masukkan telah digunakan'', ''verify_password.same'' => ''Password tidak sama!'', ]; $this->validate($request,$rules,$messages); $newUser = $this->user->create([ ''email'' => $request->email, ''password'' => /Hash::make($request->password), ]); $this->activationService->sendActivationMail($newUser); return redirect(''/account/login'')->with(''success'', ''Check your email''); }

Soy nuevo en laravel, he leído un problema similar para cambiar la contraseña en stackoverflow pero no me ayudó.

¿Cómo debo escribir el código en mi controlador para cambiar la contraseña del usuario? Gracias por adelantado.


Aquí explico otro método para cambiar la contraseña de usuario changepassword.blade.php

@extends(''layouts.app'') @section(''content'') <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">Change password</div> <div class="panel-body"> @if (session(''error'')) <div class="alert alert-danger"> {{ session(''error'') }} </div> @endif @if (session(''success'')) <div class="alert alert-success"> {{ session(''success'') }} </div> @endif <form class="form-horizontal" method="POST" action="{{ route(''changePassword'') }}"> {{ csrf_field() }} <div class="form-group{{ $errors->has(''current-password'') ? '' has-error'' : '''' }}"> <label for="new-password" class="col-md-4 control-label">Current Password</label> <div class="col-md-6"> <input id="current-password" type="password" class="form-control" name="current-password" required> @if ($errors->has(''current-password'')) <span class="help-block"> <strong>{{ $errors->first(''current-password'') }}</strong> </span> @endif </div> </div> <div class="form-group{{ $errors->has(''new-password'') ? '' has-error'' : '''' }}"> <label for="new-password" class="col-md-4 control-label">New Password</label> <div class="col-md-6"> <input id="new-password" type="password" class="form-control" name="new-password" required> @if ($errors->has(''new-password'')) <span class="help-block"> <strong>{{ $errors->first(''new-password'') }}</strong> </span> @endif </div> </div> <div class="form-group"> <label for="new-password-confirm" class="col-md-4 control-label">Confirm New Password</label> <div class="col-md-6"> <input id="new-password-confirm" type="password" class="form-control" name="new-password_confirmation" required> </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <button type="submit" class="btn btn-primary"> Change Password </button> </div> </div> </form> </div> </div> </div> </div> </div> @endsection

Esta es la ruta en web.php

Route::post(''/changePassword'',''HomeController@changePassword'')->name(''changePassword'');

Método del controlador

public function changePassword(Request $request){ if (!(Hash::check($request->get(''current-password''), Auth::user()->password))) { // The passwords matches return redirect()->back()->with("error","Your current password does not matches with the password you provided. Please try again."); } if(strcmp($request->get(''current-password''), $request->get(''new-password'')) == 0){ //Current password and new password are same return redirect()->back()->with("error","New Password cannot be same as your current password. Please choose a different password."); } $validatedData = $request->validate([ ''current-password'' => ''required'', ''new-password'' => ''required|string|min:6|confirmed'', ]); //Change Password $user = Auth::user(); $user->password = bcrypt($request->get(''new-password'')); $user->save(); return redirect()->back()->with("success","Password changed successfully !"); }

Tengo que seguir ese enlace: - 5balloons.info/…


Este es el formulario de cambio de contraseña

<form id="form-change-password" role="form" method="POST" action="{{ url(''/user/credentials'') }}" novalidate class="form-horizontal"> <div class="col-md-9"> <label for="current-password" class="col-sm-4 control-label">Current Password</label> <div class="col-sm-8"> <div class="form-group"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <input type="password" class="form-control" id="current-password" name="current-password" placeholder="Password"> </div> </div> <label for="password" class="col-sm-4 control-label">New Password</label> <div class="col-sm-8"> <div class="form-group"> <input type="password" class="form-control" id="password" name="password" placeholder="Password"> </div> </div> <label for="password_confirmation" class="col-sm-4 control-label">Re-enter Password</label> <div class="col-sm-8"> <div class="form-group"> <input type="password" class="form-control" id="password_confirmation" name="password_confirmation" placeholder="Re-enter Password"> </div> </div> </div> <div class="form-group"> <div class="col-sm-offset-5 col-sm-6"> <button type="submit" class="btn btn-danger">Submit</button> </div> </div> </form>

Crear reglas

public function admin_credential_rules(array $data) { $messages = [ ''current-password.required'' => ''Please enter current password'', ''password.required'' => ''Please enter password'', ]; $validator = Validator::make($data, [ ''current-password'' => ''required'', ''password'' => ''required|same:password'', ''password_confirmation'' => ''required|same:password'', ], $messages); return $validator; }

Método del controlador de usuario para cambiar la contraseña

utilizar validador;

public function postCredentials(Request $request) { if(Auth::Check()) { $request_data = $request->All(); $validator = $this->admin_credential_rules($request_data); if($validator->fails()) { return response()->json(array(''error'' => $validator->getMessageBag()->toArray()), 400); } else { $current_password = Auth::User()->password; if(Hash::check($request_data[''current-password''], $current_password)) { $user_id = Auth::User()->id; $obj_user = User::find($user_id); $obj_user->password = Hash::make($request_data[''password'']);; $obj_user->save(); return "ok"; } else { $error = array(''current-password'' => ''Please enter correct current password''); return response()->json(array(''error'' => $error), 400); } } } else { return redirect()->to(''/''); } }


changePassword.blade.php

@extends(''layouts.app'') @section(''content'') <!-- header logo: style can be found in header.less --> <header class="header"> <div class="container"> <div class="row"> <div class="col-lg-6"> <a href="index.php" class="logo"> <!-- Add the class icon to your logo image or logo icon to add the margining --> <img src="img/airbus-logo.png" /> </a></div> <!-- Header Navbar: style can be found in header.less --> <div class="col-lg-6"> @include(''partials._userModal'') @include(''partials._menu'') </div> </div> </div> </header> <div class="wrapper"> <div class="container"> <!-- Right side column. Contains the navbar and content of the page --> <aside class="content files-list clearfix"> <h2> @if(Auth::check()) Welcome {{ Auth::user()->fullName }} @endif </h2> <div class="col-xs-5"> <h4>Change password</h4><br /> @if($errors->any()) @foreach($errors->all() as $error) <p style=''padding:15px;'' class=''bg-danger''>{{ $error }}</p> @endforeach @endif @if(Request::get(''errorMessage'') !== null) <p style=''padding:15px;'' class=''bg-danger''>{{ Request::get(''errorMessage'') }}</p> @endif <form method="post"> {{ csrf_field() }} <div class="placeholder">Current Password</div> <input style="max-width:200px;" placeholder=''Current password'' name="oldpass" id="oldpass" class="form-control" type="password"><br> <div class="placeholder">New password</div> <input style="max-width:200px;" placeholder=''New password'' name="password" id="password" class="form-control" type="password"><br> <div class="placeholder">Confirm password</div> <input id="password_confirmation" style="max-width:200px;" placeholder=''Confirm password'' name="password_confirmation" class="form-control" type="password"> <hr> <input type="submit" class="btn btn-primary" value="Save"> </form> </div> </aside> <!-- /.right-side --> </div> <div style=" height: 155px;"></div> <div id="footer"> <div class="container"> © Airbus Group 2015 </div> </div> </div> <!-- ./wrapper --> <!-- <script src="js/hub/demo.js" type="text/javascript"></script> --> <script type="text/javascript"> $(document).ready(function(){ var bHeight = $("body").height(); var wHeight = $( window ).height(); if(bHeight < wHeight){ $("#footer").addClass("absolute"); }else{ $("#footer").removeClass("absolute"); } if (!$.support.htmlSerialize && !$.support.opacity){ $(".placeholder").show(); } }); </script> @endsection

Función de puesto de controlador

public function postChangePassword(Request $request) { $validatedData = $request->validate([ ''oldpass'' => ''required|min:6'', ''password'' => ''required|string|min:6'', ''password_confirmation'' => ''required|same:password'', ],[ ''oldpass.required'' => ''Old password is required'', ''oldpass.min'' => ''Old password needs to have at least 6 characters'', ''password.required'' => ''Password is required'', ''password.min'' => ''Password needs to have at least 6 characters'', ''password_confirmation.required'' => ''Passwords do not match'' ]); $current_password = /Auth::User()->password; if(/Hash::check($request->input(''oldpass''), $current_password)) { $user_id = /Auth::User()->id; $obj_user = User::find($user_id); $obj_user->password = /Hash::make($request->input(''password'')); $obj_user->save(); return view(''auth.passwords.changeConfirmation''); } else { $data[''errorMessage''] = ''Please enter correct current password''; return redirect()->route(''user.getChangePassword'', $data); } }