Jump to content
Killersites Community

DavidCampbell

Member
  • Content Count

    32
  • Joined

  • Last visited

  • Days Won

    2

DavidCampbell last won the day on January 12

DavidCampbell had the most liked content!

Community Reputation

6 Good

About DavidCampbell

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. DavidCampbell

    Why is my form displaying the input data on submit?

    I had some time to return to this today - fixed it. The bug arrises because of the subtle difference between get_data in the Template class. in the oopLogin the method does not have the option to echo out the data, whereas the one in phpCart, it does. so much confusion over something so simple.
  2. DavidCampbell

    Why is my form displaying the input data on submit?

    Hi Stefan, I haven't solved it yet, I'm a little stumped. My local version of OOP Login works as expected. Obviously there are differences in the file structure and the use of DPO instead of MYSQLI. My next move was to just refactor the code and use MYSQLI. But It would be nice to get DPO working though.
  3. DavidCampbell

    Why is my form displaying the input data on submit?

    the admin index.php, is very simple: <?php // ==================================================== // INDEX // // ==================================================== /* * Are we loged in? * YES - redirect to admin home * NO - redirect to login */ include("app/init.php"); // check authorization if ($Auth->checkLoginStatus() == FALSE) { $Template->redirect('login.php'); } else { echo "redirect to home.php"; // $Template->redirect('home.php'); }
  4. DavidCampbell

    Why is my form displaying the input data on submit?

    This is the files structure:
  5. DavidCampbell

    Why is my form displaying the input data on submit?

    v_login.php (view) <!DOCTYPE html> <html> <head> <title>Login In</title> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <link href="resources/css/style.css" media="screen" rel="stylesheet" type="text/css"> </head> <body> <h1>Log In</h1> <div id="content"> <form action="" method="post"> <div> <? $alerts = $this->get_alerts(); if ($alerts != '') { echo "<ul class=\"alerts\">\n"; echo $alerts; echo "</ul>\n"; } ?> </div> <div class="row"> <label for="username">Username: *</label> <input type="text" name="username" value="<? echo $this->get_data('input_user'); ?>"> <div class="error"><? echo $this->get_data('error_user'); ?></div> </div> <div class="row"> <label for="password">Password: *</label> <input type="password" name="password" value="<? echo $this->get_data('input_pass'); ?>"> <div class="error"><? echo $this->get_data('error_pass'); ?></div> </div> <div class="row"> <p class="required">* required</p> <input type="submit" name="submit" class="submit" value="submit"> </div> </form> </div> </body> </html>
  6. DavidCampbell

    Why is my form displaying the input data on submit?

    login.php <?php // ==================================================== // LOGIN // // ==================================================== include("app/init.php"); $Template->set_data('page_class', 'login'); if (isset($_POST['submit'])) { // get data $Template->set_data('input_user', $_POST['username']); $Template->set_data('input_pass', $_POST['password']); // validate data if ($_POST['username'] == '' || $_POST['password'] == '') { // show error if ($_POST['username'] == '') { $Template->set_data('error_user', 'required');} if ($_POST['password'] == '') { $Template->set_data('error_pass', 'required');} $Template->set_alert('Please fill in all required fields', 'error'); $Template->load("app/views/v_login.php", "Login"); } else if ($Auth->validateLogin($Template->get_data('input_user'), $Template->get_data('input_pass')) == FALSE ) { // invalid login $Template->set_alert('Invalid username or password', 'error'); $Template->load("app/views/v_login.php", "Login"); } else { // successful log in $_SESSION['username'] = $Template->get_data('input_user'); $_SESSION['loggedin'] = TRUE; $Template->set_alert('Welcome <i>' . $Template->get_data('input_user') . '</i>'); $Template->redirect('home.php'); // send to admin home } } else { // echo "template load v_login.php"; $Template->load("app/views/v_login.php", "Login"); }
  7. DavidCampbell

    Why is my form displaying the input data on submit?

    auth.php <?php // ==================================================== // AUTHORIZATION CLASS // Deals with auth tasks // ==================================================== class Auth { // ========================== // Class scope vars // ========================== private $salt = 'j4H9?s0d'; // ========================== // Constructor // ========================== function __construct() { // do nothing } // ========================== // Methods // ========================== // ============= // validate login // ============= function validateLogin($user, $pass) { /* // access db global $Database; // create query if ($stmt = $Database->prepare("SELECT * FROM users WHERE username = ? AND password = ?")) { $passPlusSalt = $pass . $this->salt; $passPlusSalt = md5($passPlusSalt); $stmt->bind_param("ss", $user, $passPlusSalt); $stmt->execute(); $stmt->store_result(); // check for num rows if ($stmt->num_rows > 0) { // success $stmt->close(); return TRUE; } else { // failure $stmt->close(); return FALSE; } } else { die("ERROR: Could not prepare MySQLi statement."); } */ $sql = "SELECT * FROM users WHERE userName = :user AND password = :passPlusSalt AND adminUser = :isAdmin"; $user = $user; $passPlusSalt = $pass . $this->salt; $passPlusSalt = md5($passPlusSalt); $isAdmin = "true"; // access database global $connection; try { $statement = $connection->prepare($sql); $statement->bindParam(':user', $user, PDO::PARAM_STR); $statement->bindParam(':passPlusSalt', $passPlusSalt, PDO::PARAM_STR); $statement->bindParam(':isAdmin', $isAdmin, PDO::PARAM_STR); $statement->execute(); $result = $statement->fetchAll(); } catch(PDOException $error) { echo $sql . "<br>" . $error->getMessage(); } if ($result && $statement->rowCount() > 0) { // success return TRUE; } else { // failure return FALSE; } } // ============= // check login status // ============= function checkLoginStatus() { if (isset($_SESSION['loggedin'])) { return TRUE; } else { return FALSE; } } // ============= // logout // ============= function logout() { session_destroy(); session_start(); } // END Auth Class }
  8. DavidCampbell

    Why is my form displaying the input data on submit?

    template.php <?php // ==================================================== // TEMPLATE CLASS // Handling all templating tasks - displaying views, alerts, erros and view data // ==================================================== class Template { // ========================== // Class scope vars // ========================== private $data; private $alert_types = array('success', 'error'); // ========================== // Constructor // ========================== function __construct() { // do nothing } // ========================== // Methods // ========================== /** * Loads specified url * * @access public * @param string, string * @return null **/ public function load($url, $title) { if($title != ''){ $this->set_data('page_title', $title); } include($url); } /** * Redirects to specified url * * @access public * @param string * @return null **/ public function redirect($url) { header("Location: $url"); exit; } /* Get / Set Data */ /** * Saves provided data for use by the view later * * @access public * @param string, string, bool * @return null **/ public function set_data($name, $value, $clean = FALSE) { if ($clean == TRUE) { $this->data[$name] = htmlentities($value, ENT_QUOTES); } else { $this->data[$name] = $value; } } /** * Retrieves data based on provided name for access by view * * @access public * @param string, bool * @return string **/ public function get_data($name, $echo = TRUE) { if(isset($this->data[$name])) { if($echo) { echo $this->data[$name]; } else { return $this->data[$name]; } } return ''; } /* Get / Set Alerts */ /** * Sets an alert message stored in the session * * @access public * @param string, string (optional) * @return null **/ public function set_alert($value, $type = 'success') { $_SESSION[$type][] = $value; } /** * Returns string, containing multiple list items of alerts * * @access public * @param * @return string **/ public function get_alerts() { $data = ''; foreach ($this->alert_types as $alert) { if(isset($_SESSION[$alert])) { foreach ($_SESSION[$alert] as $value) { $data .= '<li class="' . $alert . '">' . $value . '</li>'; } unset($_SESSION[$alert]); } } // echo $data; return $data; } // END Template Class }
  9. DavidCampbell

    Why is my form displaying the input data on submit?

    <?php // =========================================== // INIT // Basic configuration settings // =========================================== // connect to database (PDO) $host = "localhost"; $username = "root"; $password = "yes"; $dbname = "recordLabel"; $dsn = "mysql:host=$host;dbname=$dbname"; $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); $connection = new PDO($dsn, $username, $password, $options); // set up constants define('SITE_NAME', 'My Record Label'); define('SITE_PATH', 'http://recordLabel.local/admin/'); // local/admin define('IMAGE_PATH', 'http://recordLabel.local/admin/resources/images/'); // local/admin // include objects include('app/models/m_template.php'); include('app/models/m_auth.php'); // create objects $Template = new Template(); $Auth = new Auth(); session_start(); my init.php
  10. Here is a screenshot of the bug: This login is based on the KillerSites OOP Login tutorial. But I've made some differences. Firstly is in a sub directory 'admin' as i'm building that first. Secondly the most important change is I've changed it to PDO instead of MySQLi. I've gone all through my code and cant see where this would decide to print out like this. Feel a bit dumb not being able to find out why this is performing like this. Hoping someone has a quick answer. I'm just at the beginning of this build and I wanted to adapt the code to use DPO, although I have had no experience with DPO. So I was thinking that is prob the route of the problem. Otherwise I'll switch back to MYSQLI, which I want to avoid.
  11. DavidCampbell

    Can put up a site but know no SEO

    You tell them that you are a web developer, not an SEO consultant. Go hire an SEO consultant. If they want you to do it, there's an extra charge - get them to pay you a monthly retainer to manage their SEO needs. If they don't like the results they can cancel anytime. This falls into the bracket of managing customer expectations. Also putting people off getting you do silly work. If you don't want to do it, put your price up so they don't ask you to do it... or you're happy to do it because you're getting paid well.
  12. DavidCampbell

    i need photoshop easy course

    https://www.youtube.com/results?search_query=photoshop
  13. DavidCampbell

    CSS stylesheet not working properly

    your style sheet should not have this syntax: <style> </style> just do it like this: body { background: url("images/background-forum.jpg"); } and include it in your html head: <link href="pathTo/style.css" media="all" rel="stylesheet" type="text/css">
  14. DavidCampbell

    Java BigDecimal

    actually I think I've solved it: BigDecimal a00 = new BigDecimal(a[0][0]); BigDecimal a01 = new BigDecimal(a[0][1]); BigDecimal a02 = new BigDecimal(a[0][2]); BigDecimal a10 = new BigDecimal(a[1][0]); BigDecimal a11 = new BigDecimal(a[1][1]); BigDecimal a12 = new BigDecimal(a[1][2]); BigDecimal a20 = new BigDecimal(a[2][0]); BigDecimal a21 = new BigDecimal(a[2][1]); BigDecimal a22 = new BigDecimal(a[2][2]); BigDecimal a00a11a22 = new BigDecimal("0.0"); BigDecimal a01a12a20 = new BigDecimal("0.0"); BigDecimal a02a10a21 = new BigDecimal("0.0"); BigDecimal a20a11a02 = new BigDecimal("0.0"); BigDecimal a21a12a00 = new BigDecimal("0.0"); BigDecimal a22a10a01 = new BigDecimal("0.0"); BigDecimal bigDecimalDeterminantMinuend = new BigDecimal("0.0"); BigDecimal bigDecimalDeterminantSubtrahend = new BigDecimal("0.0"); a00a11a22 = a00.multiply(a11).multiply(a22); a01a12a20 = a01.multiply(a12).multiply(a20); a02a10a21 = a02.multiply(a10).multiply(a21); bigDecimalDeterminantMinuend = a00a11a22.add(a01a12a20).add(a02a10a21); a20a11a02 = a20.multiply(a11).multiply(a02); a21a12a00 = a21.multiply(a12).multiply(a00); a22a10a01 = a22.multiply(a10).multiply(a01); bigDecimalDeterminantSubtrahend = a20a11a02.add(a21a12a00).add(a22a10a01);
  15. DavidCampbell

    Java BigDecimal

    anyone know how to multiply multiple BigDecimals? not like this example: BigDecimal subTotal, taxRate, tax, total; subTotal = new BigDecimal("32.50"); taxRate = new BigDecimal("0.05"); tax = subTotal.multiply(taxRate); total = subTotal.add(tax); I need to multiple more than two numbers and also do addition. This is the line i'm trying to convert to BigDecimals: double aDeterminantMinuend = (a[0][0] * a[1][1] * a[2][2]) + (a[0][1] * a[1][2] * a[2][0]) + (a[0][2] * a[1][0] * a[2][1]); as you can see those are doubles in an array that i'm doing my arithmetic to. so I've prepped them like: BigDecimal a00 = new BigDecimal(a[0][0]); BigDecimal a01 = new BigDecimal(a[0][1]); BigDecimal a02 = new BigDecimal(a[0][2]); BigDecimal a10 = new BigDecimal(a[1][0]); BigDecimal a11 = new BigDecimal(a[1][1]); BigDecimal a12 = new BigDecimal(a[1][2]); BigDecimal a20 = new BigDecimal(a[2][0]); BigDecimal a21 = new BigDecimal(a[2][1]); BigDecimal a22 = new BigDecimal(a[2][2]); so now I need to do the BigDecimal arithmetic to them, but the only examples i can find are like the one posted above. Just two BigDecimals multiplied together. i've tried embedding multiple calls the multiple() method, but that doesnt work. I'm thinking the only way to do it is to make new BigDecimals for each step of the arithmetic, but surely theres a better, neater way?
×