[wp-hackers] meta box and input field seem not to work on writing post/page
Pasi Koponen
pasi.koponen at eetanet.fi
Mon Sep 21 10:16:29 UTC 2009
Thousands thanks for all of you for responses. They really fixed my
problem. Here is fixed version of the code.
<?php
/*
Plugin Name: metaboxtest
Plugin URI:
Description: testing metabox
Version: 1.0
Author: basix
Author URI:
*/
?>
<?php
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301 USA
*/
?>
<?php
if(!class_exists(metaboxTest)){
class metaboxTest{
function metaboxHook(){
add_meta_box('hellomessage', 'hellomessage', array(&
$this,'metabox'), 'post', 'side', 'high');
}
function metabox(){
printf('<label for="hellomessage">Hi</label><input
type="hidden" id="hellomessage" name="hellomessage" value=", Hello
World" />');
echo get_option('metaboxtest');
}
function savePostHook(){
update_option('metaboxtest',esc_attr($_POST['hellomessage']));
}
}
}
if(class_exists(metaboxTest)) {
if(!isset($mBox)) {
$mBox= new metaboxTest;
add_action('admin_menu', array(& $mBox, 'metaboxHook'));
add_action('save_post', array(&$mBox, 'savePostHook'));
}
}
?>
John Blackbourn wrote:
> On a side note, you shouldn't be echoing unescaped $_POST (or $_GET or
> $_REQUEST) data to the page, as this can potentially cause security
> issues and other problems. Have a look into the esc_attr() function.
>
> John.
>
> 2009/9/16 scribu <scribu at gmail.com>:
>
>> The thing is that the request is sent to post.php and then redirected
>> to edit.php.
>>
>> So you have to hook into 'save_post' and store the POST data in the
>> database to be able to retrieve it later.
>>
>> On 9/16/09, Pasi Koponen <pasi.koponen at eetanet.fi> wrote:
>>
>>> This is my first message in here so sorry if you have allready covered
>>> add_meta_box() (
>>> http://codex.wordpress.org/Function_Reference/add_meta_box ) function
>>> and usage in here and picking up PUT/GET http commands on post/page
>>> writing page.
>>>
>>> I am fidling around with posts and pages meta box. It seems that I
>>> cannot get <input type="hidden" ....> to work right. I have googled and
>>> searched around and it seems that I am doing something totally wrong.
>>> Does anybody have an idea where I am doing stuff wrong. Here is a simple
>>> "Hello World" plugin to illustrate the problem. It seems that wordpress
>>> is messing around in writing post/page the $_REQUEST['hellomessage'] and
>>> $_POST['hellomessage'] variables(this might not be the correct term).
>>>
>>> How the sample plugin works:
>>> It first creates the meta box by adding metboxHook to wordpress
>>> 'admin_menu' hook and creates meta_box to posts side panel. The sample
>>> plugin should send (pushing the update post button) to server(http POST)
>>> hellomessage which is first echo:ed out by $_POST and after that with
>>> $_REQUEST (just for testing). So basicly in the metabox there should
>>> became text "Hello World" after submitting editing post. It seems not to
>>> work and I am totally clueless what I am doing wrong.
>>>
>>>
>>> Here is the sample plugin to illustrate the problem:
>>> --X<---X<---X<---X<---X<---X<---X<---X<---X<---X<---X<--
>>> <?php
>>> /*
>>> Plugin Name: metaboxtest
>>> Plugin URI:
>>> Description: testing metabox
>>> Version: 1.0
>>> Author: basix
>>> Author URI:
>>> */
>>> ?>
>>> <?php
>>> /*
>>> This program is free software; you can redistribute it and/or modify
>>> it under the terms of the GNU General Public License as published by
>>> the Free Software Foundation; either version 2 of the License, or
>>> (at your option) any later version.
>>>
>>> This program is distributed in the hope that it will be useful,
>>> but WITHOUT ANY WARRANTY; without even the implied warranty of
>>> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>>> GNU General Public License for more details.
>>>
>>> You should have received a copy of the GNU General Public License
>>> along with this program; if not, write to the Free Software
>>> Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
>>> 02110-1301 USA
>>> */
>>> ?>
>>> <?php
>>> if(!class_exists(metaboxTest)){
>>> class metaboxTest{
>>> function metaboxHook(){
>>> add_meta_box('hellomessage', 'hellomessage', array(&
>>> $this,'metabox'), 'post', 'side', 'high');
>>> }
>>> function metabox(){
>>> printf('<label for="hellomessage">Hi</label><input
>>> type="hidden" id="hellomessage" name="hellomessage" value="Hello World"
>>> />');
>>>
>>> echo $_POST['hellomessage'];
>>> echo $_REQUEST['hellomessage'];
>>> }
>>> }
>>> }
>>>
>>> if(class_exists(metaboxTest)) {
>>> if(!isset($mBox)) {
>>> $mBox= new metaboxTest;
>>> add_action('admin_menu', array(& $mBox, 'metaboxHook'));
>>> }
>>> }
>>> ?>
>>>
>>> -X<---X<---X<---X<---X<---X<---X<---X<---X<---X<---X<--
>>> _______________________________________________
>>> wp-hackers mailing list
>>> wp-hackers at lists.automattic.com
>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>>
>>>
>> --
>> http://scribu.net
>> _______________________________________________
>> wp-hackers mailing list
>> wp-hackers at lists.automattic.com
>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>
>>
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers
>
>
More information about the wp-hackers
mailing list