1. Bio man - 27 Июля, 2011 - 14:26:39 - перейти к сообщению
изначально писал скрипт регистрации на ооп, и решил сравнить с классичеким подходом. время генерации сильно не отличилось, НО как обстоят дела с памятью? какой подход использовать при написании простых страниц, например регистрации, index.php, и других?
2. OrmaJever - 27 Июля, 2011 - 15:44:59 - перейти к сообщению
калсы работают немного медленее чем простые функции и памяти забирают больше. Если скриптик не большой то лутше разложить всё по функциям, но в больших проэктах без них не обойтись.
3. Bio man - 28 Июля, 2011 - 22:27:11 - перейти к сообщению
что лучше?
1 вариант:
1 вариант:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- require_once "common.php";
- require_once "modules/getpost.php";
- class register extends getpost {
- private $error = false;
- private $show_reg = true;
- function __construct($lang) {
- $html = new template(false);
- if($_POST) {
- parent::__construct();
- $this->validate($html, $lang);
- }
- if($this->show_reg) {
- 'USERNAME' => $lang['register']['username'],
- 'PASSWORD' => $lang['register']['password'],
- 'R_PASSWORD' => $lang['register']['r_password'],
- 'SEX' => $lang['sex']['sex'],
- 'MAN' => $lang['sex']['M'],
- 'WOMAN' => $lang['sex']['W'],
- 'EMAIL' => $lang['general']['email'],
- 'REGISTER' => $lang['register']['register']
- ));
- $html->parse('register');
- }
- }
- private function insert_in_db($html, $lang) {
- $db = new database();
- $sql = "INSERT INTO `users` (`username`, `password`, `sex`, `e-mail`, `reg_time`, `last_visit`) VALUES ('{$this->post['username']}', '{$this->post['password1']}', '{$this->post['sex']}', '{$this->post['email']}', NOW(), NOW())";
- $db->db('query', $sql);
- if($db->result) {
- $this->show_reg = false;
- $_SESSION['logged_in'] = true;
- $sql = "SELECT `id` FROM `users` WHERE `username` = '{$this->post['username']}' AND `password` = '{$this->post['password1']}'";
- $db->db('array', $sql);
- $_SESSION['id'] = $db->array['id'];
- $html = new template($user = new user($lang));
- 'ENTER' => $lang['login']['enter']
- ));
- $html->parse('welcome');
- }
- else {
- }
- }
- private function validate($html, $lang) {
- $this->error = true;
- $this->errortext[] = $lang['errors']['empty_un'];
- }
- else {
- $this->error = true;
- $this->errortext[] = $lang['errors']['un_len'];
- }
- else {
- $db = new database();
- $db->db('num_rows', "SELECT `id` FROM `users` WHERE `username` = '{$this->post['username']}'");
- if($db->num_rows) {
- $this->error = true;
- $this->errortext[] = $lang['errors']['un_exists'];
- }
- }
- }
- $this->error = true;
- $this->errortext[] = $lang['errors']['empty_pass'];
- }
- else {
- $this->error = true;
- $this->errortext[] = $lang['errors']['pass_len'];
- }
- else {
- if($this->post['password1'] != $this->post['password2']) {
- $this->error = true;
- $this->errortext[] = $lang['errors']['pass_n_m'];
- }
- }
- }
- if($this->error) {
- $errortext = '<font color="#FF0000"><ul><li>'.implode('</li><li>', $this->errortext).'</li></ul></font>';
- $html->set_var('ERROR', $errortext);
- }
- else $this->insert_in_db($html, $lang);
- }
- }
- new register($lang);
- ?>
или:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- require_once "common.php";
- require_once "modules/getpost.php";
- $error = false;
- $show_reg = true;
- $html = new template(false);
- if($_POST) {
- $data = new getpost();
- $error = true;
- $errortext[] = $lang['errors']['empty_un'];
- }
- else {
- $error = true;
- $errortext[] = $lang['errors']['un_len'];
- }
- else {
- $db = new database();
- $db->db('num_rows', "SELECT `id` FROM `users` WHERE `username` = '{$data->post['username']}'");
- if($db->num_rows) {
- $error = true;
- $errortext[] = $lang['errors']['un_exists'];
- }
- }
- }
- $error = true;
- $errortext[] = $lang['errors']['empty_pass'];
- }
- else {
- $error = true;
- $errortext[] = $lang['errors']['pass_len'];
- }
- else {
- if($data->post['password1'] != $data->post['password2']) {
- $error = true;
- $errortext[] = $lang['errors']['pass_n_m'];
- }
- }
- }
- if($error) {
- $html->set_var('ERROR', $errortext);
- }
- else {
- /////
- $db = new database();
- $sql = "INSERT INTO `users` (`username`, `password`, `sex`, `e-mail`, `reg_time`, `last_visit`) VALUES ('{$data->post['username']}', '{$data->post['password1']}', '{$data->post['sex']}', '{$data->post['email']}', NOW(), NOW())";
- $db->db('query', $sql);
- if($db->result) {
- $show_reg = false;
- $_SESSION['logged_in'] = true;
- $sql = "SELECT `id` FROM `users` WHERE `username` = '{$data->post['username']}' AND `password` = '{$data->post['password1']}'";
- $db->db('array', $sql);
- $_SESSION['id'] = $db->array['id'];
- $html = new template($user = new user($lang));
- 'ENTER' => $lang['login']['enter']
- ));
- $html->parse('welcome');
- }
- else {
- }
- /////
- }
- }
- if($show_reg) {
- 'USERNAME' => $lang['register']['username'],
- 'PASSWORD' => $lang['register']['password'],
- 'R_PASSWORD' => $lang['register']['r_password'],
- 'SEX' => $lang['sex']['sex'],
- 'MAN' => $lang['sex']['M'],
- 'WOMAN' => $lang['sex']['W'],
- 'EMAIL' => $lang['general']['email'],
- 'REGISTER' => $lang['register']['register']
- ));
- $html->parse('register');
- }
- ?>
если не сложно, проверьте какие недостатки и ошибки