<?php
/*
Plugin Name: Beispiel wp_nonce
Plugin URI: http://bueltge.de/
Description: Beispiel für die Nutzung von wp_nonce
Author: Frank B&uuml;ltge
Version: 0.1
License: GPL
Author URI: http://bueltge.de/
*/


/**
 * Sicherheitsbasics
 * Function definieren
 * fbexample_ ersetzen
 *
 */
if ( !function_exists('wp_nonce_field') ) {
	function fbexample_nonce_field($action = -1) {
		return;
	}
	$fbexample_nonce = -1;
} else {
	function fbexample_nonce_field($action = -1) {
		wp_nonce_field($action);
	}
	$fbexample_nonce = 'fbexample_nonce_field';
}


// zufalls-schluessel zur aktivierung einer signatur
$fbexample_key = get_option('fbexample_key');

if ($fbexample_key == '') {
	$fbexample_key = add_option('fbexample_key', rand(0, 9999));
}


/**
 * POST Uebergabe, Admin-Page
 * fbexample_ ersetzen
 *
 * @global $fbexample_nonce, $fbexample_key
 */
function fbexample_page() {
	global $fbexample_nonce, $fbexample_key;

	if ($_POST['action'] == 'submit') {
	
		if ( function_exists('current_user_can') && current_user_can('edit_plugins') && $_POST['fbexample_key'] == $fbexample_key ) {
			check_admin_referer('$fbexample_nonce', $fbexample_nonce);

			$fbexample1 = $_POST['fbexample1'];
			. . .

		} else {
			wp_die('<p>'.__('You do not have sufficient permissions to edit plugins for this blog.').'</p>');
		}
	}
?>

<div class="wrap">
	<h2><?php _e('FB Example', 'fbexample') ?></h2>
	<form method="post">
		<input type="text" name="fbexample1" value=""/>
	
		. . .
	
		<?php fbexample_nonce_field('$fbexample_nonce', $fbexample_nonce); ?>
		<input type="hidden" name="fbexample_key" value="<?php echo $fbexample_key ?>" />
		<input type="hidden" name="action" value="submit" />
		<input type="submit"/>
	</form>
</div>

<?php
}


/**
 * Installation von options-Feldern
 * fbexample* ersetzen
 *
 * @global $wpdb
 */
function fbexample_install(){
	global $wpdb;

	add_option('fbexample1', 'fbexample1_wert');
}


/**
 * Admin-Page hinzufuegen
 * fbexample* ersetzen
 *
 */
function fbexample_menu() {
	add_submenu_page('plugins.php', 'FB Example', 'FB Example Title', 10, __FILE__, 'fbexample_page');
	add_options_page('FB Example', 'FB Example Title', 8, basename(__FILE__), 'fbexample_page');
}


/**
 * Hooks nutzen und Admin-Page aktivieren
 * fbexample* ersetzen
 *
 */
if ( function_exists('add_action') ) {
	if ( isset($_GET['activate']) && $_GET['activate'] == 'true' ) {
		add_action('init', 'fbexample_install');
	}
	add_action('admin_menu', 'fbexample_menu');
}
?>