html - php include_once makes my code stop running -
i have simple html form used http post information in fields file register.php. in register.php echo performed show file has been entered. next line uses include_once include file named usermanagement.php contains class of same name. attempt made instantiate class methods can accessed, program flow never seems make past first echo statement in register.php. i'm hoping more experienced spot rookie error straight awaw. i've spent while researching problem , cant seem it.
my 2 php files , html form below:
<form action="register.php" method="post"> username: <input type="text" name="uname" /><br /> firstname: <input type="text" name="fname" /><br /> last name: <input type="text" name="lname" /><br /> date of birth: <input type="date" name="dob" /><br /> telephone: <input type="mob" name="tel" /><br /> email: <input type="email" name="email1" /><br /> confirm email: <input type="email" name="email2" /><br /> password: <input type="password" name="pass1" /><br /> confirm password: <input type="password" name ="pass2" /><br /> <input type="submit" value="register" name="sub" /> <br/><a href="login.php">already registered? login here</a><br/> </form> register.php
<?php echo "entered register.php"; require_once('usermanagement.php'); echo "userman included"; $um = new usermanagement(); echo "usermanagement object created"; $response = array("error" => false); //check fields populated http post. echo "about check if fields populsted"; if( isset($_post['uname']) && isset($_post['fname']) && isset($_post['lname']) && isset($_post['tel']) && isset($_post['dob']) && isset($_post['email1']) && isset($_post['email2']) && isset($_post['pass1']) && isset($_post['pass2'])) { echo "all fields populated"; //take values http post $uname = $_post['uname']; $fname = $_post['fname']; $lname = $_post['lname']; $tel = $_post['tel']; $dob = $_post['dob']; $email1 = $_post['email1']; $email2 = $_post['email2']; $pass1 = $_post['pass1']; $pass2 = $_post['pass2']; $um->registeruser($uname,$fname,$lname,$tel,$dob,$email1,$pass1); } else { echo "not fields populated"; } ?> usermanagement.php
<?php require_once('db_connect.php'); //contains functions user management related isues i.e. add, remove, edit user. //only user management - crm. class usermanagement { echo "entered user management class"; private $conn; function __construct() { echo "user management constructo end"; $db = new db_connect(); $this->conn = $db->connect(); echo "user management constructo end"; } function __destruct() { //todo } function registeruser($username,$firstname,$lastname,$telephone,$dob,$email,$password) { echo "you chose register new user."; $uuid = uniqid('', true); $hash = $this->hashssha($password); $encrypted_password = $hash["encrypted"]; // encrypted password $salt = $hash["salt"]; // salt $sql = "insert user(`id`,`username`,`first_name`,`last_name`,`telephone`,`email`,`password`) values (null,?,?,?,?,?,?)"; $stmt = $this->conn->prepare($sql); $stmt->bind_param('ssssss',$username,$firstname,$lastname,$telephone,$email,$encrypted_password); $result = $stmt->execute(); echo "user added"; echo $result; $stmt->close(); } function unregisteruser($uname,$pass1,$pass2) { echo "you chose deregister user."; } public function hashssha($password) { $salt = sha1(rand()); $salt = substr($salt, 0, 10); $encrypted = base64_encode(sha1($password . $salt, true) . $salt); $hash = array("salt" => $salt, "encrypted" => $encrypted); return $hash; } public function checkhashssha($salt, $password) { $hash = base64_encode(sha1($password . $salt, true) . $salt); return $hash; } } ?>
db_connect.php
<?php class db_connect { private $conn; // connecting database public function connect() { // connecting mysql database require_once('config.php'); $this->conn = new mysqli(db_host, db_user, db_password, db_database); // return database handler return $this->conn; } } ?>
your problem echo line inside class definition:
... class usermanagement { echo "entered user management class"; private $conn; ... the class definition clause can't used execute code since violates oop principles.
Comments
Post a Comment