|
|
|
| Как через классы сохранить хотя бы одну переменную в МySQL!!!!!!1 Покажите пожалуйста!!!!!! Я создал форму Html при помощи класса!!!!!!! Вписываю в форму через браузер: Сохраняется только в базе данных MySQL: уникальный номер и дата!!!!!!! А что пишешь в форме, не сохраняется и показывает пусто!!!! | |
|
|
|
|
|
|
|
для: Сергей1981
(28.02.2011 в 03:41)
| | Покажите обработчик!!!!!!!! Наверняка мелкая синтаксическая ошибка, из-за которой в базу попадает пустое значение!!!!!!!!!! А заодно и запрос к базе покажите!!!!!!!! А то мало ли что!!!!!!!!! | |
|
|
|
|
 2.1 Кб |
|
|
для: deimand
(28.02.2011 в 05:08)
| | Запрос к базе данных :
$query ="INSERT INTO users VALUES (NULL,'{$form->fields['name']->value}',MD5('{$form->fields['pass']->value}'),NOW());
Класс forms.php:
<?php
////////////////////////////////////////////////////////////
// 2006-2008 (C) IT-студия SoftTime (http://www.softtime.ru)
////////////////////////////////////////////////////////////
// Класс HTML-формы
////////////////////////////////////////////////////////////
// Выставляем уровень обработки ошибок
// (http://www.softtime.ru/info/articlephp.php?id_article=23)
error_reporting(E_ALL & ~E_NOTICE);
class form
{
// Массив элементов управления
public $fields;
// Название кнопки HTML-формы
protected $button_name;
// Класс CSS ячейки таблицы
protected $css_td_class;
// Стиль CSS ячейки таблицы
protected $css_td_style;
// Класс CSS элемента управления
protected $css_fld_class;
// Стиль CSS элемента управления
protected $css_fld_style;
// Конструктор класса
public function __construct( $flds,
$button_name,
$css_td_class = "",
$css_td_style = "",
$css_fld_class = "",
$css_fld_style = "")
{
$this->fields = $flds;
$this->button_name = $button_name;
$this->css_td_class = $css_td_class;
$this->css_td_style = $css_td_style;
$this->css_fld_class = $css_fld_class;
$this->css_fld_style = $css_fld_style;
// Проверяем, является ли элементы массива $flds
// производными класса field
foreach($flds as $key => $obj)
{
if(!is_subclass_of($obj, "field"))
{
throw new ExceptionObject($key,
"\"$key\" не является элементом управления");
}
}
}
// Вывод HTML-формы в окно браузера
public function print_form()
{
$enctype = "";
if(!empty($this->fields))
{
foreach($this->fields as $obj)
{
// Назначаем всем элементам управления единый стиль
if(!empty($this->css_fld_class))
{
$obj->css_class = $this->css_fld_class;
}
if(!empty($this->css_fld_class))
{
$obj->css_style = $this->css_fld_style;
}
// Проверяем нет ли среди элементов управления
// поля file, если имеется, включаем строку
// enctype='multipart/form-data'
if($obj->type == "file")
{
$enctype = "enctype='multipart/form-data'";
}
}
}
// Если элементы оформления не пусты - учитываем их
if(!empty($this->css_td_style))
{
$style = "style=\"".$this->css_td_style."\"";
}
else $style = "";
if(!empty($this->css_td_class))
{
$class = "class=\"".$this->css_td_class."\"";
}
else $class = "";
// Выводим HTML-форму
echo "<form name=form $enctype method=post>";
echo "<table>";
if(!empty($this->fields))
{
foreach($this->fields as $obj)
{
// Получаем название поля, и его HTML-представление
list($caption, $tag, $help, $alternative) = $obj->get_html();
if(is_array($tag)) $tag = implode("<br>",$tag);
switch($obj->type)
{
case "hidden":
// Скрытое поле
echo $tag;
break;
case "paragraph":
case "title":
echo "<tr>
<td $style $class colspan=2 valign=top>$tag</td>
</tr>\n";
break;
default:
// Элементы управления по умолчанию
echo "<tr>
<td width=150
$style $class valign=top>$caption:</td>
<td $style $class valign=top>$tag</td>
</tr>\n";
if(!empty($help))
{
echo "<tr>
<td> </td>
<td $style $class valign=top>$help</td>
</tr>";
}
break;
}
}
}
// Выводим кнопку подтверждения
echo "<tr>
<td $style $class></td>
<td $style $class>
<input class=button
type=submit
value=\"".htmlspecialchars($this->button_name, ENT_QUOTES)."\">
</td>
</tr>\n";
echo "</table>";
echo "</form>";
}
}
?>
А это класс fieldtext2.php:
<?php
////////////////////////////////////////////////////////////
// 2006-2008 (C) IT-студия SoftTime (http://www.softtime.ru)
////////////////////////////////////////////////////////////
// Текстовое поле text
////////////////////////////////////////////////////////////
// Выставляем уровень обработки ошибок
// (http://www.softtime.ru/info/articlephp.php?id_article=23)
error_reporting(E_ALL & ~E_NOTICE);
class field_text extends field
{
// Размер текстового поля
public $size;
// Максимальный размер вводимых данных
public $maxlength;
// Конструктор класса
function __construct($name,
$caption,
$is_required = false,
$value = "",
$maxlength = 255,
$size = 41,
$parameters = "",
$help = "",
$help_url = "")
{
// Вызываем конструктор базового класса field для
// инициализации его данных
parent::__construct($name,
"text",
$caption,
$is_required,
$value,
$parameters,
$help,
$help_url);
// Инициализируем члены класса
$this->size = $size;
$this->maxlength = $maxlength;
}
// Метод, для возврата имени названия поля
// и самого тэга элемента управления
function get_html()
{
// Если элементы оформления не пусты - учитываем их
if(!empty($this->css_style))
{
$style = "style=\"".$this->css_style."\"";
}
else $style = "";
if(!empty($this->css_class))
{
$class = "class=\"".$this->css_class."\"";
}
else $class = "";
// Если определены размеры - учитываем их
if(!empty($this->size)) $size = "size=".$this->size;
else $size = "";
if(!empty($this->maxlength))
{
$maxlength = "maxlength=".$this->maxlength;
}
else $maxlength = "";
// Формируем тэг
$tag = "<input $style $class
type=\"".$this->type."\"
name=\"".$this->name."\"
value=\"".
htmlspecialchars($this->value, ENT_QUOTES)."\"
$size $maxlength>\n";
// Если поле обязательно, помечаем этот факт
if($this->is_required) $this->caption .= " *";
// Формируем подсказку, если она имеется
$help = "";
if(!empty($this->help))
{
$help .= "<span style='color:blue'>".
nl2br($this->help)."</span>";
}
if(!empty($help)) $help .= "<br>";
if(!empty($this->help_url))
{
$help .= "<span style='color:blue'><a href=".
$this->help_url.">помощь</a></span>";
}
return array($this->caption, $tag, $help);
}
// Метод, проверяющий корректность переданных данных
function check()
{
// Обезопасить текст перед внесением в базу данных
if (!get_magic_quotes_gpc())
{
$this->value = mysql_escape_string($this->value);
}
// Если поле обязательно для заполнения
if($this->is_required)
{
// Проверяем не пусто ли оно
if(empty($this->value))
{
return "Поле \"".$this->caption."\" не заполнено";
}
}
return "";
}
}
?> | |
|
|
|
|
 2.1 Кб |
|
|
для: Сергей1981
(28.02.2011 в 03:41)
| | Запрос к базе данных :
$query ="INSERT INTO users VALUES (NULL,'{$form->fields['name']->value}',MD5('{$form->fields['pass']->value}'),NOW());
Класс forms.php:
<?php
////////////////////////////////////////////////////////////
// 2006-2008 (C) IT-студия SoftTime (http://www.softtime.ru)
////////////////////////////////////////////////////////////
// Класс HTML-формы
////////////////////////////////////////////////////////////
// Выставляем уровень обработки ошибок
// (http://www.softtime.ru/info/articlephp.php?id_article=23)
error_reporting(E_ALL & ~E_NOTICE);
class form
{
// Массив элементов управления
public $fields;
// Название кнопки HTML-формы
protected $button_name;
// Класс CSS ячейки таблицы
protected $css_td_class;
// Стиль CSS ячейки таблицы
protected $css_td_style;
// Класс CSS элемента управления
protected $css_fld_class;
// Стиль CSS элемента управления
protected $css_fld_style;
// Конструктор класса
public function __construct( $flds,
$button_name,
$css_td_class = "",
$css_td_style = "",
$css_fld_class = "",
$css_fld_style = "")
{
$this->fields = $flds;
$this->button_name = $button_name;
$this->css_td_class = $css_td_class;
$this->css_td_style = $css_td_style;
$this->css_fld_class = $css_fld_class;
$this->css_fld_style = $css_fld_style;
// Проверяем, является ли элементы массива $flds
// производными класса field
foreach($flds as $key => $obj)
{
if(!is_subclass_of($obj, "field"))
{
throw new ExceptionObject($key,
"\"$key\" не является элементом управления");
}
}
}
// Вывод HTML-формы в окно браузера
public function print_form()
{
$enctype = "";
if(!empty($this->fields))
{
foreach($this->fields as $obj)
{
// Назначаем всем элементам управления единый стиль
if(!empty($this->css_fld_class))
{
$obj->css_class = $this->css_fld_class;
}
if(!empty($this->css_fld_class))
{
$obj->css_style = $this->css_fld_style;
}
// Проверяем нет ли среди элементов управления
// поля file, если имеется, включаем строку
// enctype='multipart/form-data'
if($obj->type == "file")
{
$enctype = "enctype='multipart/form-data'";
}
}
}
// Если элементы оформления не пусты - учитываем их
if(!empty($this->css_td_style))
{
$style = "style=\"".$this->css_td_style."\"";
}
else $style = "";
if(!empty($this->css_td_class))
{
$class = "class=\"".$this->css_td_class."\"";
}
else $class = "";
// Выводим HTML-форму
echo "<form name=form $enctype method=post>";
echo "<table>";
if(!empty($this->fields))
{
foreach($this->fields as $obj)
{
// Получаем название поля, и его HTML-представление
list($caption, $tag, $help, $alternative) = $obj->get_html();
if(is_array($tag)) $tag = implode("<br>",$tag);
switch($obj->type)
{
case "hidden":
// Скрытое поле
echo $tag;
break;
case "paragraph":
case "title":
echo "<tr>
<td $style $class colspan=2 valign=top>$tag</td>
</tr>\n";
break;
default:
// Элементы управления по умолчанию
echo "<tr>
<td width=150
$style $class valign=top>$caption:</td>
<td $style $class valign=top>$tag</td>
</tr>\n";
if(!empty($help))
{
echo "<tr>
<td> </td>
<td $style $class valign=top>$help</td>
</tr>";
}
break;
}
}
}
// Выводим кнопку подтверждения
echo "<tr>
<td $style $class></td>
<td $style $class>
<input class=button
type=submit
value=\"".htmlspecialchars($this->button_name, ENT_QUOTES)."\">
</td>
</tr>\n";
echo "</table>";
echo "</form>";
}
}
?>
А это класс fieldtext2.php:
<?php
////////////////////////////////////////////////////////////
// 2006-2008 (C) IT-студия SoftTime (http://www.softtime.ru)
////////////////////////////////////////////////////////////
// Текстовое поле text
////////////////////////////////////////////////////////////
// Выставляем уровень обработки ошибок
// (http://www.softtime.ru/info/articlephp.php?id_article=23)
error_reporting(E_ALL & ~E_NOTICE);
class field_text extends field
{
// Размер текстового поля
public $size;
// Максимальный размер вводимых данных
public $maxlength;
// Конструктор класса
function __construct($name,
$caption,
$is_required = false,
$value = "",
$maxlength = 255,
$size = 41,
$parameters = "",
$help = "",
$help_url = "")
{
// Вызываем конструктор базового класса field для
// инициализации его данных
parent::__construct($name,
"text",
$caption,
$is_required,
$value,
$parameters,
$help,
$help_url);
// Инициализируем члены класса
$this->size = $size;
$this->maxlength = $maxlength;
}
// Метод, для возврата имени названия поля
// и самого тэга элемента управления
function get_html()
{
// Если элементы оформления не пусты - учитываем их
if(!empty($this->css_style))
{
$style = "style=\"".$this->css_style."\"";
}
else $style = "";
if(!empty($this->css_class))
{
$class = "class=\"".$this->css_class."\"";
}
else $class = "";
// Если определены размеры - учитываем их
if(!empty($this->size)) $size = "size=".$this->size;
else $size = "";
if(!empty($this->maxlength))
{
$maxlength = "maxlength=".$this->maxlength;
}
else $maxlength = "";
// Формируем тэг
$tag = "<input $style $class
type=\"".$this->type."\"
name=\"".$this->name."\"
value=\"".
htmlspecialchars($this->value, ENT_QUOTES)."\"
$size $maxlength>\n";
// Если поле обязательно, помечаем этот факт
if($this->is_required) $this->caption .= " *";
// Формируем подсказку, если она имеется
$help = "";
if(!empty($this->help))
{
$help .= "<span style='color:blue'>".
nl2br($this->help)."</span>";
}
if(!empty($help)) $help .= "<br>";
if(!empty($this->help_url))
{
$help .= "<span style='color:blue'><a href=".
$this->help_url.">помощь</a></span>";
}
return array($this->caption, $tag, $help);
}
// Метод, проверяющий корректность переданных данных
function check()
{
// Обезопасить текст перед внесением в базу данных
if (!get_magic_quotes_gpc())
{
$this->value = mysql_escape_string($this->value);
}
// Если поле обязательно для заполнения
if($this->is_required)
{
// Проверяем не пусто ли оно
if(empty($this->value))
{
return "Поле \"".$this->caption."\" не заполнено";
}
}
return "";
}
}
?> | |
|
|
|
|