i was using laravel to develop a simple website i was facing undifinde variable problem and after long search i figure the problem in my controller lets see the code
public function login(Request $req){// login main
    $data= Input :: except(array('_token'));
$rule=array(
  'username'=>'required',
  'password'=>'required',
        );
$massage=array(
  'username.required'=> 'you must enter username',                                                          // message if the user name or pass kept empty
  'password.required'=> 'you must enter password',
        );
$valid=Validator::make ($data,$rule,$massage);
        if ($valid->fails()){// if ends in line 38
          return Redirect::to('login')->withErrors($valid);
        }/*for if line 34*/ else{//ends in line 162
        $username=$req->input('username');
        $password=$req->input('password');
        $checkLogin = DB::table('logfile')->where(['user_name'=>$username,'password'=>$password])->get();
        $users = DB::table('logfile')
                        ->join('student', 'logfile.id', '=', 'student.std_id')
                        ->where('user_name', $username)
                        ->first();
                                                              //written by Ahmed...................
            // this code done by ahmed to rote the student for agreement or exception
         Session::put('key', $users);
                if(count($checkLogin) > 0){//ends at line 159
                    $type=DB::table('logfile')->where('user_name', $username)->value('user_kind');
                        if($type === 2){// ends in line 61
                            return Redirect::to('doc'); 
                        }/* start at line 58*/else if($type === 3){// ends at line 70
                    $super=DB::table('logfile')
                  ->join('supervisor','logfile.id','=','supervisor.sup_id')
                  ->where('user_name',$username)
                  ->first();
                  return view('supervisor', ['super' =>$super]);         //printing name for Supervisor
                    Session::put('name',$super);        
                        }/* start in line 61*/else  if($type === 1){//ends at line 148 
                       $page=$users->std_flag;
                       $pageupdate = $page + 1;
                       if($page === 0){// ends at line 93
                      $hour=DB::table('student')->where('std_fname', $username)->value('std_hour');
                      if ($hour >= 87) {//ends at line 88                                                                      // first check the student hours 
                                                                                                 // if greater than or equal 87 go to agreement page
                        return view('agreement', ['users' =>$users]);
                        //من بعد هذي النقطة تبدا المشكلة
                      }//start at line 84
                       else {//ends at line 92
                         return view('exception', ['users' =>$users]);              // if else than 87 go to exception page
                       }//start at line  89
                       }// start at line 75
                       elseif($page === 1){
                           return view('orgselect');
                       }
                       /*elseif($page === 2){
                           return Redirect::to('printletter');
                       }
                       elseif($page === 3){
                           DB::table('student')
                                ->where('std_id', $users->std_id)
                                ->update(['std_flag' => $pageupdate]);
                           return Redirect::to('orgselect');
                       }
                       elseif($page === 4){
                           DB::table('student')
                                ->where('std_id', $users->std_id)
                                ->update(['std_flag' => $pageupdate]);
                           return Redirect::to('orgselect');
                       }
                       elseif($page === 5){
                           DB::table('student')
                                ->where('std_id', $users->std_id)
                                ->update(['std_flag' => $pageupdate]);
                           return Redirect::to('orgselect');
                       }
                       elseif($page === 6){
                           DB::table('student')
                                ->where('std_id', $users->std_id)
                                ->update(['std_flag' => $pageupdate]);
                           return Redirect::to('orgselect');
                       }
                       elseif($page === 7){
                           DB::table('student')
                                ->where('std_id', $users->std_id)
                                ->update(['std_flag' => $pageupdate]);
                           return Redirect::to('orgselect');
                       }
                       elseif($page === 8){
                           DB::table('student')
                                ->where('std_id', $users->std_id)
                                ->update(['std_flag' => $pageupdate]);
                           return Redirect::to('orgselect');
                       }*/
                }/* start at line 70*/else {
           //return Redirect::to('login')->withErrors('alert-success','You are now logged in');     
           $errors = new MessageBag(['password' => ['Email and/or password invalid.']]);             // to check login and print message Email and/or password invalid.
            return Redirect::back()->withErrors($errors)->withInput(Input::except('password'));     // to check login and print message Email and/or password invalid.
          // return Redirect::to('agree')->withErrors($valid);
         }
        }//start in line 56
}// start in line 38
}//end login main this is was the first action..
now i want if this condition is ture
if ($hour >= 87) {//ends at line 88                                                                      // first check the student hours 
                                                                                                 // if greater than or equal 87 go to agreement page
                        return view('agreement', ['users' =>$users]);
to go to the action
public function agreement(Request $request)
{
   $sestest=Session::get('key');
   $sestest1 = DB::table('logfile')
                        ->join('student', 'logfile.id', '=', 'student.std_id')
                        ->where('user_name', $sestest->user_name)
                        ->first();
   $page=$sestest1->std_flag;
   if($page!= 1){
   $pageupdate = $page + 1;
   $agr=$request->input('checkbox');
  DB::table('AgreementTerms')->insert(
  ['agreement_id' => 3, 'std_id' => $sestest->std_id, 'satus' => $agr]);
DB::table('student')
    ->where('std_id', $sestest->std_id)
    ->update(['std_flag' => $pageupdate]);
   }
   $query = DB::table('Department_city')->select('city','Dep_location')->first();
return view('orgselect', ['query' =>$query], ['sestest1' =>$sestest1]);
}
this is the route
Route::post('/agreement_check','MyController@agreement');
i really search alote but nothing works my laravel version is 5.2 hope you guys help me in this
via Adel