コード例 #1
0
ファイル: BlogController.php プロジェクト: benms/MK_Framework
 /**
  * Edit post.
  *
  * @param $id
  * @return \Framework\Response\ResponseRedirect
  * @throws HttpNotFoundException
  * @throws \Framework\Exception\DatabaseException
  */
 public function editAction($id)
 {
     $dirty_request = new Request(null, false);
     if ($this->getRequest()->isPost()) {
         try {
             $post = new Post();
             $date = new \DateTime();
             $post->id = $id;
             $post->title = $dirty_request->post('title');
             $post->content = $dirty_request->post('content');
             $post->date = $date->format('Y-m-d H:i:s');
             $post->users_id = Service::get('session')->get('authenticated')->id;
             $validator = new Validator($post);
             if ($validator->isValid()) {
                 $post->save($id);
                 return $this->redirect($this->generateRoute('home'), 'success', 'The post has been edit successfully');
             } else {
                 $error = $validator->getErrors();
             }
         } catch (DatabaseException $e) {
             $error = $e->getMessage();
         }
     }
     $post = Post::find((int) $id);
     return $this->render('add.html', array('post' => $post, 'action' => '/posts/' . $id . '/edit', 'errors' => isset($error) ? $error : null));
 }
コード例 #2
0
ファイル: Security.php プロジェクト: steemd/framework
 /**
  * Validation token
  * 
  * @throws Exception
  */
 public function verifyCsrfToken()
 {
     $request = new Request();
     if ($request->isPost() && $request->post('csrfToken')) {
         if ($request->post('csrfToken') !== Service::get('session')->csrfToken) {
             throw new CustomException('Invalid token');
         }
     }
 }
コード例 #3
0
ファイル: Renderer.php プロジェクト: steemd/framework
 /**
  * Renderer and return all content to Response Class
  * 
  * @return string $resalt
  */
 public function renderContent()
 {
     //get all controller input data
     extract($this->data);
     //include controller relust in content
     $include = function ($controllerName, $actionName, $data = array()) {
         $reflectionMethod = new \ReflectionMethod($controllerName, $actionName . 'Action');
         $response = $reflectionMethod->invokeArgs(new $controllerName(), $data);
         echo '<h3>Include</h3>';
         echo '<p>';
         $response->getContent();
         echo '</p>';
     };
     //generate CSRF token to hidden form element
     $generateToken = function () {
         $csrfToken = Service::get('security')->generateCsrfToken();
         echo '<input type="hidden" value="' . $csrfToken . '" name="csrfToken">';
     };
     //get current route information
     $getRoute = function ($name) {
         $routes = Service::get('routes');
         return $routes[$name]['pattern'];
     };
     $route = Service::get('route');
     $request = new Request();
     if ($request->isPost() && empty($post)) {
         $post = new \stdClass();
         $post->title = $request->post('title');
         $post->content = $request->post('content');
     }
     if (Session::get('auth')) {
         $user = Service::get('security')->getUser();
     }
     if (isset(Service::get('session')->flash)) {
         $flush = array('info' => array(Service::get('session')->flash));
         unset(Service::get('session')->flash);
     } else {
         $flush = array();
     }
     //Render template
     ob_start();
     include $this->templateUrl;
     $content = ob_get_contents();
     ob_end_clean();
     //Render main layout
     ob_start();
     include $this->layoutUrl;
     $this->renderDevMode();
     $result = ob_get_contents();
     ob_end_clean();
     return $result;
 }
コード例 #4
0
ファイル: BlogController.php プロジェクト: Insidexa/Framework
 public function editAction($id, Request $request)
 {
     $id = (int) $id;
     $errors = [];
     if ($request->isPost()) {
         try {
             $date = new \DateTime();
             $id = Post::where(['id' => $id])->update(['title' => $request->post('title'), 'content' => $request->post('content'), 'date' => $date->format('Y-m-d H:i:s')]);
             return $this->redirect($this->generateRoute('home'), 'The data has been updated successfully');
         } catch (DatabaseException $e) {
             $errors[] = $e->getMessage();
         }
     }
     return $this->render('edit.html', ['post' => Post::find($id), 'action' => $this->generateRoute('edit_post', ['id' => $id]), 'errors' => $errors ?? null]);
 }
コード例 #5
0
ファイル: Security.php プロジェクト: lyhoshva/Framework
 /**
  * Check CSRF token identity
  *
  * @return bool
  */
 public function validateToken()
 {
     $request = new Request();
     $postToken = $request->post('_csrf');
     $cookieToken = $request->cookie('_csrf');
     $sessionToken = Service::get('session')->_csrf;
     if ($postToken == $sessionToken && $cookieToken == $sessionToken) {
         return true;
     }
     return false;
 }
コード例 #6
0
ファイル: PostController.php プロジェクト: benms/MK_Framework
 public function addAction()
 {
     $dirty_request = new Request(null, false);
     if ($dirty_request->isPost()) {
         try {
             $post = new Post();
             $date = new \DateTime();
             $post->title = $dirty_request->post('title');
             $post->content = trim($dirty_request->post('content'));
             $post->date = $date->format('Y-m-d H:i:s');
             $post->users_id = Service::get('session')->get('authenticated')->id;
             $validator = new Validator($post);
             if ($validator->isValid()) {
                 $post->save();
                 return $this->redirect($this->generateRoute('home'), 'The data has been saved successfully');
             } else {
                 $error = $validator->getErrors();
             }
         } catch (DatabaseException $e) {
             $error = $e->getMessage();
         }
     }
     return $this->render('add.html', array('action' => $this->generateRoute('add_post'), 'errors' => isset($error) ? $error : null));
 }