mirror of
https://github.com/typecho/typecho.git
synced 2025-04-07 19:52:40 +02:00
remove session requirement
This commit is contained in:
parent
949b487445
commit
3c171785d2
@ -47,7 +47,6 @@ class Typecho_Widget_Helper_Form extends Typecho_Widget_Helper_Layout
|
||||
* 构造函数,设置基本属性
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($action = NULL, $method = self::GET_METHOD, $enctype = self::STANDARD_ENCODE)
|
||||
{
|
||||
@ -80,7 +79,7 @@ class Typecho_Widget_Helper_Form extends Typecho_Widget_Helper_Layout
|
||||
* 增加输入元素
|
||||
*
|
||||
* @access public
|
||||
* @param Typecho_Widget_Helper_Form_Abstract $input 输入元素
|
||||
* @param Typecho_Widget_Helper_Form_Element $input 输入元素
|
||||
* @return Typecho_Widget_Helper_Form
|
||||
*/
|
||||
public function addInput(Typecho_Widget_Helper_Form_Element $input)
|
||||
@ -90,24 +89,6 @@ class Typecho_Widget_Helper_Form extends Typecho_Widget_Helper_Layout
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加元素(重载)
|
||||
*
|
||||
* @access public
|
||||
* @param Typecho_Widget_Helper_Layout $item 表单元素
|
||||
* @return Typecho_Widget_Helper_Layout
|
||||
*/
|
||||
public function addItem(Typecho_Widget_Helper_Layout $item)
|
||||
{
|
||||
if ($item instanceof Typecho_Widget_Helper_Form_Submit) {
|
||||
$this->addItem($item);
|
||||
} else {
|
||||
parent::addItem($item);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取输入项
|
||||
*
|
||||
@ -213,7 +194,7 @@ class Typecho_Widget_Helper_Form extends Typecho_Widget_Helper_Layout
|
||||
* 验证表单
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
* @return mixed
|
||||
*/
|
||||
public function validate()
|
||||
{
|
||||
@ -232,10 +213,10 @@ class Typecho_Widget_Helper_Form extends Typecho_Widget_Helper_Layout
|
||||
|
||||
if ($error) {
|
||||
/** 利用session记录错误 */
|
||||
$_SESSION['__typecho_form_message_' . $id] = $error;
|
||||
Typecho_Cookie::set('__typecho_form_message_' . $id, Json::encode($error));
|
||||
|
||||
/** 利用session记录表单值 */
|
||||
$_SESSION['__typecho_form_record_' . $id] = $formData;
|
||||
Typecho_Cookie::set('__typecho_form_record_' . $id, Json::encode($formData));
|
||||
}
|
||||
|
||||
return $error;
|
||||
@ -250,11 +231,13 @@ class Typecho_Widget_Helper_Form extends Typecho_Widget_Helper_Layout
|
||||
public function render()
|
||||
{
|
||||
$id = md5(implode('"', array_keys($this->_inputs)));
|
||||
$record = Typecho_Cookie::get('__typecho_form_record_' . $id);
|
||||
$message = Typecho_Cookie::get('__typecho_form_message_' . $id);
|
||||
|
||||
/** 恢复表单值 */
|
||||
if (isset($_SESSION['__typecho_form_record_' . $id])) {
|
||||
$record = $_SESSION['__typecho_form_record_' . $id];
|
||||
$message = $_SESSION['__typecho_form_message_' . $id];
|
||||
if (!empty($record)) {
|
||||
$record = Json::decode($record, true);
|
||||
$message = Json::decode($message, true);
|
||||
foreach ($this->_inputs as $name => $input) {
|
||||
$input->value(isset($record[$name]) ? $record[$name] : $input->value);
|
||||
|
||||
@ -264,10 +247,10 @@ class Typecho_Widget_Helper_Form extends Typecho_Widget_Helper_Layout
|
||||
}
|
||||
}
|
||||
|
||||
unset($_SESSION['__typecho_form_record_' . $id]);
|
||||
Typecho_Cookie::delete('__typecho_form_record_' . $id);
|
||||
}
|
||||
|
||||
parent::render();
|
||||
unset($_SESSION['__typecho_form_message_' . $id]);
|
||||
Typecho_Cookie::delete('__typecho_form_message_' . $id);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user