web-dev-qa-db-ja.com

WordPressのユーザー登録問題

自分のサイトのサイドバーにユーザー登録フォームを作成しようとしています。ユーザーは登録することができますが、成功メッセージを受け取る代わりに、WordPressは通常それらを404ページにリダイレクトします。

以下が私のフォームです:

<form id="joinmaillist"   method='post'>
    <table>
        <tr>
            <td>Name</td>
            <td><input type="text" placeholder="Your name here.." name="name" title="Please enter your name" required/></td>
        </tr>
        <tr>
            <td>Email</td>
            <td><input type="email" name="email" placeholder="Your email here.." required/></td>
        </tr>
        <tr>
            <td></td>
            <td style="text-align:right"><input class="submitmail" type="submit" value="Join!" name="joinm"/></td>
        </tr>
    </table>
</form>

以下は私のPHPコードです。

<?php
if (isset($_POST['joinm'])){
    $user_name=$_POST['name'];
    $email =$_POST['email'];


$user_id=  username_exists($user_name);

    if (!$user_id){
        $random_pass = wp_generate_password(12, false);
        $user_id=wp_create_user($user_name, $password, $email);
        header('Location:' . $_SERVER['REQUEST_URI']);
    }else{

    }
}

wp-login.phpのコードを見てください(481行目以降)。登録がどのように機能するのかを見ることができます。

あなたのフォームの名前 - emailname - はおそらくWordPressによって上書きされます。衝突を避けるために、フォームでは常に接頭辞の付いた名前を使用してください(例:ma_emailおよびma_name)。

受信データを準備します 。誰かがあなたに送ったものをあなたのデータベースに書いてはいけません。危険かもしれません。

ああ、そしてWordPress Stack Exchangeへようこそ。 :)

1
fuxia