0

wordpress用の簡単なJavaScriptログインフォームを作成しています。ログインを処理するために、次のビットのphpに送信するフォームがあります。

<?php
get_header(); 
global $user_ID;


if (!$user_ID) {

    if($_POST){
        //We shall SQL escape all inputs
        $username = $wpdb->escape($_REQUEST['username']);
        $password = $wpdb->escape($_REQUEST['password']);
        $remember = $wpdb->escape($_REQUEST['rememberme']);

        if($remember) $remember = "true";
        else $remember = "false";
        $login_data = array();
        $login_data['user_login'] = $username;
        $login_data['user_password'] = $password;
        $login_data['remember'] = $remember;
        $user_verify = wp_signon( $login_data, false ); 
        //wp_signon is a wordpress function which authenticates a user. It accepts user info parameters as an array.

        if ( is_wp_error($user_verify) ) 
        {
           echo "<span class='error'>Invalid username or password. Please try again!</span>";
           exit();
         } else 
         {  
            echo "<script type='text/javascript'>window.location='". get_bloginfo('url') ."'</script>";
            exit();
          }
    } else { 

//get_header();

?>

エラーが発生する理由についてのアイデアはありますか? 乾杯、ダン

4

1 に答える 1

0

オブジェクトを使用し$wpdbてスクリプトを呼び出していますが、ajaxそれはおそらく使用できません (エラー メッセージには、スクリプトで使用できないことが示されています)。スクリプトで$wpdb使用するには、最初に次の行を使用してスクリプトを Wordpress に接続します。

include "/path-to-wordpress/wp-blog-header.php";

関数内からアクセス$wpdbするには、次のようにグローバル スコープで定義する必要があります。

function my_function() {
    global $wpdb;
    $wpdb->query('...');
}

このファイルは、WordPress インストールのルート ディレクトリにあります。

于 2012-09-02T21:33:44.473 に答える