Ejemplo n.º 1
0
 function getConnection()
 {
     // Variables defined in /config/config.php
     $hostname = MYSQL_HOSTNAME;
     $database = MYSQL_DATABASE;
     $username = MYSQL_USERNAME;
     $password = MYSQL_PASSWORD;
     try {
         // Create handle to database
         $dbh = new PDO("mysql:host={$hostname};dbname={$database}", $username, $password);
         // Throw PDOExceptions to catch
         $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
         // Buffered queries, MySQL specific
         $dbh->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
         return $dbh;
     } catch (PDOException $e) {
         error_log("Cannot connect to database : " . $e->getMessage());
         $request = new Lvc_Request();
         $request->setControllerName('error');
         $request->setActionName('view');
         $request->setActionParams(array('error' => '500'));
         // Get a new front controller without any routers,
         // and have it process our handmade request.
         $fc = new Lvc_FrontController();
         $fc->processRequest($request);
         exit;
     }
 }
Ejemplo n.º 2
0
 /**
  * Send a 404 error page
  * @SuppressWarnings(PHPMD.ExitExpression)
  */
 protected function send404()
 {
     $request = new Lvc_Request();
     $request->setControllerName('error');
     $request->setActionName('index');
     $request->setActionParams(array('error' => '404', 'message' => 'We were unable to locate this recommendation, or it has already been submitted.'));
     // Get a new front controller without any routers, and have it process our handmade request.
     $frontController = new Lvc_FrontController();
     $frontController->processRequest($request);
     exit;
 }
Ejemplo n.º 3
0
 /**
  * Output a single file
  * @param string $name
  */
 public function actionGet($name)
 {
     if ($file = $this->_em->getRepository('\\Jazzee\\Entity\\VirtualFile')->findOneBy(array('name' => $name))) {
         $virtualFile = new \Foundation\Virtual\VirtualFile($file->getName(), $file->getContents());
         $virtualFile->output();
     }
     //send a 404
     $request = new Lvc_Request();
     $request->setControllerName('error');
     $request->setActionName('index');
     $request->setActionParams(array('error' => '404', 'message' => 'File Not Found'));
     // Get a new front controller without any routers, and have it process our handmade request.
     $frontController = new Lvc_FrontController();
     $frontController->processRequest($request);
 }
Ejemplo n.º 4
0
 /**
  * Output a single file
  * @param string $name
  */
 public function actionGet($name)
 {
     if ($file = \Jazzee\Globals::getFileStore()->getSessionFile($name)) {
         $file->output();
     }
     //send a 404
     $request = new Lvc_Request();
     $request->setControllerName('error');
     $request->setActionName('index');
     $request->setActionParams(array('error' => '404', 'message' => 'File Not Found'));
     // Get a new front controller without any routers, and have it process our handmade request.
     $frontController = new Lvc_FrontController();
     $frontController->processRequest($request);
     exit(0);
 }
Ejemplo n.º 5
0
 /**
  * Constructor
  * Set up configuration containers
  * Start session handling
  * Setup error processing and email
  * @SuppressWarnings(PHPMD.ExitExpression)
  */
 public function __construct()
 {
     parent::__construct();
     $this->_previewMode = false;
     if ($this->_config->getMode() == 'MAINTENANCE') {
         $request = new \Lvc_Request();
         $request->setControllerName('maintenance');
         $request->setActionName('index');
         // Get a new front controller without any routers, and have it process our handmade request.
         $frontController = new \Lvc_FrontController();
         $frontController->processRequest($request);
         exit;
     }
     $this->setupSession();
     $this->setupDoctrine();
 }
Ejemplo n.º 6
0
 /**
  * Constructor
  * Check for maintenance mode
  * @SuppressWarnings(PHPMD.ExitExpression)
  */
 public function __construct()
 {
     parent::__construct();
     if ($this->_config->getMode() == 'APPLY_MAINTENANCE') {
         $request = new \Lvc_Request();
         $request->setControllerName('error');
         $request->setActionName('index');
         if (!($message = $this->_config->getMaintenanceModeMessage())) {
             $message = 'The application is currently down for maintenance';
         }
         $request->setActionParams(array('error' => '503', 'message' => $message));
         // Get a new front controller without any routers, and have it process our handmade request.
         $frontController = new \Lvc_FrontController();
         $frontController->processRequest($request);
         exit;
     }
 }
Ejemplo n.º 7
0
$basicRouter->addRoute('#^apply/([^/]+)/([^/]+)/status/do/([^/]+)/([0-9]+)/?([0-9]+)?$#i', array('controller' => 'apply_status', 'action' => 'do', 'action_params' => array('programShortName' => 1, 'cycleName' => 2, 'what' => 3, 'pageId' => 4, 'answerId' => 5)));
//applicant status
$basicRouter->addRoute('#^apply/([^/]+)/([^/]+)/applicant/?(index|login|logout|new|forgotpassword)?$#i', array('controller' => 'apply_applicant', 'action' => 3, 'action_params' => array('programShortName' => 1, 'cycleName' => 2)));
//applicant status
$basicRouter->addRoute('#^apply/([^/]+)/([^/]+)/preview/([a-z]+)$#i', array('controller' => 'apply_preview', 'action' => 3, 'action_params' => array('programShortName' => 1, 'cycleName' => 2)));
//applicant status
$basicRouter->addRoute('#^apply/([^/]+)/([^/]+)/applicant/resetpassword/([a-z0-9]+)$#i', array('controller' => 'apply_applicant', 'action' => 'resetpassword', 'action_params' => array('programShortName' => 1, 'cycleName' => 2, 'uniqueId' => 3)));
//default controller
$basicRouter->addRoute('#^admin$#i', array('redirect' => 'admin/welcome'));
//single applicant view
$basicRouter->addRoute('#^admin/applicants/single/([0-9]+)/?([^/]+)?/?(.*)$#i', array('controller' => 'applicants_single', 'action' => 2, 'action_params' => array('applicantId' => 1), 'additional_params' => 3));
//transactions come as posts from outside sources
$basicRouter->addRoute('#^transaction/(.*)$#i', array('controller' => 'transaction', 'action' => 'post', 'action_params' => array('name' => 1)));
$fc->addRouter($basicRouter);
//We use preg replace in the admin routers to cleanly group the administrative responsiblities in the URL
$advancedRouter = new \Foundation\VC\FullRegexRewriteRouter();
$advancedRouter->addRoute('#^admin/(manage|payments|setup|applicants|scores)/([^/]+)/?([^/]*)/?(.*)$#i', array('controller' => '$1_$2', 'action' => '$3', 'additional_params' => '$4'));
$advancedRouter->addRoute('#^admin/([^/]+)/?([^/]+)?/?(.*)$#i', array('controller' => 'admin_$1', 'action' => '$2', 'additional_params' => '$3'));
$fc->addRouter($advancedRouter);
try {
    $fc->processRequest(new Lvc_HttpRequest());
} catch (\Lvc_Exception $e) {
    $request = new \Lvc_Request();
    $request->setControllerName('error');
    $request->setActionName('index');
    $request->setActionParams(array('error' => '404', 'message' => 'Sorry the page you are looking for could not be found.'));
    // Get a new front controller without any routers, and have it process our handmade request.
    $frontController = new \Lvc_FrontController();
    $frontController->processRequest($request);
    exit(1);
}
Ejemplo n.º 8
0
if (isset($_GET['url']) && $_GET['url'] === 'favicon.ico') {
    // Avoid "not found" errors for favicon, which is automatically requested by most browsers.
} else {
    // Load core application config
    include_once '../config/application.php';
    try {
        // Process the HTTP request using only the routers we need for this application.
        $fc = new Lvc_FrontController();
        $fc->addRouter(new Lvc_RegexRewriteRouter($regexRoutes));
        $fc->processRequest(new Lvc_HttpRequest());
    } catch (Lvc_Exception $e) {
        // Log the error message
        error_log($e->getCode() . ': ' . $e->getMessage());
        $code = $e->getCode() == 0 ? '404' : $e->getCode();
        // Get a request for the 404 error page.
        $request = new Lvc_Request();
        $request->setControllerName('error');
        $request->setActionName('view');
        $request->setActionParams(array('error' => $code));
        // Get a new front controller without any routers, and have it process our handmade request.
        $fc = new Lvc_FrontController();
        $fc->processRequest($request);
    } catch (ErrorException $e) {
        // Some other error, output "technical difficulties" message to user?
        error_log($e->getMessage());
    } catch (Exception $e) {
        // Some other error, output "technical difficulties" message to user?
        error_log($e->getMessage());
    }
}
Ejemplo n.º 9
0
 /**
  * Handle PHP Exception
  * @SuppressWarnings(PHPMD.ExitExpression)
  * @param Exception $exception
  */
 public function handleException(\Exception $exception)
 {
     $message = $exception->getMessage();
     $userMessage = 'Unspecified Technical Difficulties';
     $code = 500;
     $log = $this->_log;
     if ($exception instanceof \Lvc_Exception) {
         $code = 404;
         $log = $this->_404Log;
         $userMessage = 'Sorry the page you are looking for could not be found.';
     }
     if ($exception instanceof \PDOException) {
         $message = 'Problem with database connection. PDO says: ' . $message;
         $userMessage = 'We are experiencing a problem connecting to our database.  Please try your request again.';
     }
     if ($exception instanceof \Foundation\Exception) {
         $userMessage = $exception->getUserMessage();
     }
     if ($exception instanceof \Foundation\Virtual\Exception) {
         $userMessage = $exception->getUserMessage();
         $code = $exception->getHttpErrorCode();
         $log = $this->_404Log;
     }
     /* Map the PHP error to a Log priority. */
     switch ($exception->getCode()) {
         case E_WARNING:
         case E_USER_WARNING:
             $priority = \Monolog\Logger::WARNING;
             break;
         case E_NOTICE:
         case E_USER_NOTICE:
             $priority = \Monolog\Logger::INFO;
             break;
         case E_ERROR:
         case E_USER_ERROR:
             $priority = \Monolog\Logger::CRITICAL;
             break;
         default:
             $priority = \Monolog\Logger::INFO;
     }
     $log->addRecord($priority, $message);
     //send the error to PHP as well
     error_log($message);
     // Get a request for the error page
     $request = new \Lvc_Request();
     $request->setControllerName('error');
     $request->setActionName('index');
     $request->setActionParams(array('error' => $code, 'message' => $userMessage));
     // Get a new front controller without any routers, and have it process our handmade request.
     $frontController = new \Lvc_FrontController();
     $frontController->processRequest($request);
     exit(1);
 }