hi there,
been readin loads of tutorials over the past couple of days trying to et my head round OOP :o
anyway... this is my first oop based script, its pretty damn basic but just wondering whether i'm goin along the right lines?
any suggestions etc... ?
It validates usernames/passwors/email addresses so far
thanks
<?php
class mysql {
// database connection class
var $connection, $username, $password, $host, $database;
function mysql() {
$this->username = "dbusername";
$this->password = "dbpassword";
$this->host = "localhost";
$this->database = "dbname";
}
function db_connect() {
$this->connection = mysql_connect($this->host, $this->username, $this->password);
if(!$this->connection) {
die("<b>Error establishing connection to database:</b> " . mysql_error());
}
$select_db = mysql_select_db($this->database, $this->connection);
if(!$select_db) {
die("<b>Error establishing connection to database:</b> " . mysql_error());
}
}
function db_disconnect() {
$disconnect = mysql_close($this->connection);
}
}
class validate_registration {
// this class validates the 3 main registration variables, username, password and email.
var $username, $password, $password2, $email, $email2, $connection, $error_array = array();
function validate_username() {
// check max username length
if(strlen($this->username) > 15) {
array_push($this->error_array, "Chosen username exedes 15 character maximum limit.");
}
// check min username length
if(strlen($this->username) < 3) {
array_push($this->error_array, "Chosen username does not meet 3 character minimum limit.");
}
// check username doesn't exist
$query_db = @mysql_query("SELECT count(userid) from users WHERE username = '" . addslashes($this->username) . "'", $this->connection) or die ("<b>MySQL Error:</b> " . mysql_error());
if(mysql_result($query_db, 0) != 0) {
// username already in use
array_push($this->error_array, "Chosen username is already in use by another member.");
}
// check for illegal characters
if(!preg_match("/^[-_a-zA-Z0-9]+$/", $this->username)) {
array_push($this->error_array, "Username contains invalid characters.");
}
}
function validate_password() {
// check passwords match
if($this->password != $this->password2) {
array_push($this->error_array, "Your passwords do not match.");
}
// check max password length
if(strlen($this->password) > 32) {
array_push($this->error_array, "Chosen password exedes 32 character maximum limit.");
}
// check min password length
if(strlen($this->password) < 6) {
array_push($this->error_array, "Chosen password does not meet 6 character minimum limit.");
}
}
function validate_email() {
// check emails match
if($this->email != $this->email2) {
array_push($this->error_array, "Your emails do not match.");
}
// check email validity
if (!preg_match("/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i", $this->email)) {
array_push($this->error_array, "Your email is formatted incorrectly.");
}
// check max password length
if(strlen($this->email) > 50) {
array_push($this->error_array, "Chosen email exedes 50 character maximum limit.");
}
// check min password length
if(strlen($this->email) < 6) {
array_push($this->error_array, "Chosen email does not meet 6 character minimum limit.");
}
}
function display_errors() {
$number_of_errors = count($this->error_array);
if($number_of_errors < 1) {
return TRUE;
}
$key = 1;
echo "Validation found <b>" . $number_of_errors . "</b> input error(s):<br><br>\n";
foreach ($this->error_array as $error) {
echo $key . ". " . $error . "<br>\n";
$key++;
}
}
}
// instantiate db connection object
$database = new mysql;
// instantiate validation object
$validation = new validate_registration;
// connect to database
$database->db_connect();
// register object variables
$validation->username = "myusername";
$validation->password = "123456";
$validation->password2 = "123456";
$validation->email = "test5@test.com";
$validation->email2 = "test5@test.com";
// register db connection variable
$validation->connection = $database->connection;
// validate
$validate_username = $validation->validate_username();
$validate_password = $validation->validate_password();
$validate_email = $validation->validate_email();
// display result of validation
if($validation->display_errors() == TRUE) {
echo "Passed validation. Register code here.";
}
// disconnect from database
$database->db_disconnect();
// kill off objects
unset($database);
unset($validation);
?>