2011-09-20 2 views
0

나는 사용자 데이터를 데이터베이스에 추가하기 위해 테마에 사용자 정의 테이블을 가지고 있습니다. 그런 다음 사용자 정의 테이블을 통해 데이터를 데이터베이스에 추가하려고합니다.사용자 테이블에 새로운 사용자 추가 Wordpress

<form action="" method="post"> 
    <table> 
     <tr> 
     <td>User Name:</td> 
     <td><input type="text" name="user"/> </td> 
     </tr> 
     <tr> 
     <td>Pass word:</td> 
     <td><input type="password" name="pass"/></td> 
     </tr> 
     <tr> 
     <td>Website:</td> 
     <td><input type="text" name="url"/></td> 
     </tr> 
    </table> 
     <input type="submit" name="scroll_submit" /> 
     </form> 


<?php 
if(isset($_POST['scroll_submit'])){ 
    $username = $_POST['user']; 
    $pass = $_POST['pass']; 
    $url = $_POST['url']; 

    wp_insert_user(array(
    'user_pass' => $pass, 
    'user_login' => $username, 
    'user_url' => $url 
    )); 
    } 

난 사용자 테이블에서 1 개 레코드를 추가 할 수 있지만 다른 ... PLZ 도와 문제가 무엇 ..

답변

0

방법

if(isset($_POST['scroll_submit'])){ 

    $username = $_POST['user']; 
    $pass = $_POST['pass']; 
    $url = $_POST['url']; 
    // YOU NEED AN EMAIL ADDRESS TO CREATE AN ACCOUNT 
    $useremail = sanitize_user($_POST['email']); 

    if($pass==''){ 
     // Generate random 12 Character password 
     $pass = wp_generate_password(12, false); 
    } 

    // Check if that username is taken already 
    if (username_exists($username)){ 
    die("Im sorry that Username Is in Use! please choose another"); 
    }else{ 
    echo "Username is available..."; 
    } 

    // CREATES WP USER ACCOUNT 
    $user_id = wp_create_user($username, $pass, $useremail); 

    // SENDS EMAIL NOTIFICATION 
    wp_new_user_notification($user_id, $pass); 

    // Use 'update_user_meta()' to add or update the user information fields. 
    update_user_meta($user_id, 'user_url', $url); 
    echo "New User Created ID: ".$user_id; 
} 

이 의지 ...에 대한 암호가없는 경우 암호를 확인한 다음 12 자의 임의 암호를 생성하고 해당 사용자 이름이 사용되는지 확인하십시오.

새 wp 사용자 계정을 만들고 다음 주소로 전자 메일을 보내십시오. 관리자가 새 사용자가 생성되었음을 알리고 사용자 이름과 암호를 사용하여 사용자에게 전자 메일을 보내십시오.

사용자 새 ID 번호를 사용하여 wp_user_meta 테이블에 사용자 정보를 추가하십시오.

일반 사용자의 배열이 반환됩니다

([ID] => 6 
    [user_login] => MyUserName 
    [user_pass] => $KJSHDFLUHWSEIFNPOSUDHVSJDN 
    [user_nicename] => MyDisplayNicename 
    [user_email] => [email protected] 
    [user_url] => 
    [user_registered] => 2011-09-20 10:00:00 
    [user_activation_key] => 
    [user_status] => 0 
    [display_name] => My Display Name 
    [wp_capabilities] => Array 
    (
    [subscriber] => 1 
) 
    [jabber] => 
    [yim] => 
    [aim] => 
    [show_admin_bar_admin] => false 
    [use_ssl] => 0 
    [show_admin_bar_front] => true 
    [admin_color] => fresh 
    [comment_shortcuts] => false 
    [rich_editing] => true 
    [description] => 
    [nickname] => MyNickName 
    [last_name] => 
    [first_name] => 
    [wp_user_level] => 0 
    [user_level] => 0 
    [user_firstname] => 
    [user_lastname] => 
    [user_description] => 
) 

을 update_user_meta ($ USER_ID, 'WHATYOUWANTTOCHANGE', $ URL을)를 사용하여;

update_user_meta($user_id, 'user_firstname', $firstname); 
update_user_meta($user_id, 'user_lastname', $lastname); 
update_user_meta($user_id, 'user_description', $user_desc); 

또한 사용자 입력을 소독하기 위해 기억 wp reference

를 통해 봐 ... 이 사용자에 대한 FIRSTNAME를 추가/업데이트합니다 USER_FIRSTNAME; 는 배열 이름의 예와 WHATYOUWANTTOCHANGE 교체 어떤 SQL 주입을 방지하는 등, 는 사용자 입력 ....

항상

stripslashes, mysql_real_escape_string, htmlspecialchars을 신뢰하지

관련 문제