This will answer your question. This is not laravel but regular OOP. It is possible to validate the user password by setting the hashed password to an array with properties and checking the validation beforehand on the post input.
<?php
require 'core/init.php';
if(Input::exists()) {
if(Token::check(Input::get('token'))) {
$validate = new Validate();
$validation = $validate->check($_POST, array(
'username' => array(
'required' => true,
'min' => 2,
'max' => 20,
'unique' => 'users'),
'password' => array(
'required' => true,
'min' => 6),
'password_again' => array(
'required' => true,
'matches' => 'password'),
'name' => array(
'required' => false,
'min' => 2,
'max' => 50)
));
if($validation->passed()) {
$user = new User();
$salt = Hash::salt(32);
try {
$user->create(array(
'username' => Input::get('username'),
'password' => Hash::make(Input::get('password'), $salt),
'salt' => $salt,
'name' => Input::get('name'),
'joined' => date('Y-m-d H:i:s'),
'group' => 1
));
Session::flash('home', 'You have been registered and can now log in!');
Redirect::to('index.php');
} catch(Exception $e) {
die($e->getMessage());
}
} else {
foreach($validate->errors() as $error) {
echo $error, '<br>';
}
}
}
}
?>
Here is an example using Laravel
<?php
class UsersController extends BaseController {
public function __construct() {
parent::__construct();
$this->beforeFilter('csrf', array('on'=>'post'));
}
public function getNewaccount() {
return View::make('users.newaccount');
}
public function postCreate() {
$validator = Validator::make(Input::all(), User::$rules);
if ($validator->passes()) {
$user = new User;
$user->firstname = Input::get('firstname');
$user->lastname = Input::get('lastname');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->telephone = Input::get('telephone');
$user->save();
return Redirect::to('users/signin')
->with('message', 'Thank you for creating a new account. Please sign in.');
}
return Redirect::to('users/newaccount')
->with('message', 'Something went wrong')
->withErrors($validator)
->withInput();
}
public function getSignin() {
return View::make('users.signin');
}
public function postSignin() {
if (Auth::attempt(array('email'=>Input::get('email'), 'password'=>Input::get('password')))) {
return Redirect::to('/')->with('message', 'Thanks for signing in');
}
return Redirect::to('users/signin')->with('message', 'Your email/password combo was incorrect');
}
public function getSignout() {
Auth::logout();
return Redirect::to('users/signin')->with('message', 'You have been signed out');
}
}
Sign in to participate in this thread!
The Laravel portal for problem solving, knowledge sharing and community building.
The community