只想创建自定义注册表单,我在下面为它做的代码。一切都按照我的计划进行,但是当我在注册表中添加值时,我没有看到任何错误,也没有看到任何插入数据库的记录。任何身体帮助我解决这个问题。
<?php
function super_registration(){
if(isset( $_POST['submit'])){
/*registration_validation(
$_POST['uname'],
$_POST['pwd'],
$_POST['email'],
$_POST['weburl'],
$_POST['fname'],
$_POST['lname'],
$_POST['nname'],
$_POST['bio']
);
global $uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio;
$uname = sanitize_user($_POST['uname']);
$pwd = esc_attr($_POST['pwd']);
$email = sanitize_email($_POST['email']);
$weburl = esc_url($_POST['weburl']);
$fname = sanitize_text_field($_POST['fname']);
$lname = sanitize_text_field($_POST['lname']);
$nname = sanitize_text_field($_POST['nname']);
$bio = esc_textarea($_POST['bio']);
final_registration($uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio);
}
Registration_form($uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio);*/
echo "test";
exit;
}
}
function registration_form($uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio){
echo '
<style>
div {
margin-bottom: 2px;
}
input {
margin-bottom: 4px;
}
</style>
';
echo '
<form action="' . $_SERVER['Request_URI'] . '"method = "post">
<div>
<label for="uname"> User Name <Strong>*</strong></label>
<input type="text" name="uname" value= "' . (isset( $_POST['uname']) ? $uname : NULL) .'">
<div>
<div>
<label for="pwd"> Password <Strong>*</strong></label>
<input type="password" name="pwd" values="' . (isset($_POST['pwd']) ? $pwd : NULL) . '">
</div>
<div>
<label for="email"> Email Address <Strong>*</strong></label>
<input type="text" name="email" values="' . (isset($_POST['email']) ? $email : NULL) . '">
</div>
<div>
<label for="weburl"> Website URL </label>
<input type="text" name="weburl" values="' . (isset($_POST['weburl']) ? $weburl : NULL) . '">
</div>
<div>
<label for="fname"> First Name </label>
<input type="text" name="fname" values="' . (isset($_POST['fname']) ? $fname : NULL) . '">
</div>
<div>
<label for="lname"> Last Name </label>
<input type="text" name="lname" values="' . (isset($_POST['lname']) ? $lname : NULL) . '">
</div>
<div>
<label for="nname"> Nick Name </label>
<input type="text" name="nname" values="' . (isset($_POST['nname']) ? $nname : NULL) . '">
</div>
<div>
<label for="bio">About </label>
<textarea name="bio">' . (isset($_POST['bio']) ? $bio : NULL) . '</textarea>
</div>
<input type="submit" name="Submit" value="register" />
</form> ';
}
function registration_validation($uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio){
global $regerror;
$regerror = new WP_Error;
if( empty($uname) || empty($pwd) || empty($email)){
$regerror->add('field','Required Field are Missing');
}
/* if( strlen($uname) < 4){
$regerror->add('uname_length','Enter Username containing more than 4 character');
}
if( uname_exits($uname)){
$regerror->add('uname','User name already exits please enter different user name');
}
if( ! validate_uname( $uname ) ){
$regerror->add( 'uname_invalid', 'Sorry, the username you entered is not valid' );
}
if ( strlen( $pwd ) < 5 ) {
$regerror->add('pwd', 'Password length must be greater than 5');
}
if ( !is_email( $email ) ) {
$regerror->add('email_invalid', 'Email is not valid');
}
if ( email_exists( $email ) ) {
$regerror->add('email', 'Email Already in use');
}
if ( !empty( $weburl ) ) {
if ( !filter_var($weburl, FILTER_VALIDATE_URL) ) {
$regerror->add('weburl', 'Website is not a valid URL');
}
}
*/
if ( is_wp_error( $regerror ) ) {
foreach ( $regerror->get_error_messages() as $error ) {
echo '<div>';
echo '<strong>ERROR</strong>:';
echo $error . '<br/>';
echo '</div>';
}
}
}
function final_registration(){
global $regerror, $uname, $pwd, $email, $weburl, $fname, $lname, $nname, $bio;
if(count($regerror->get_error_messages()) < 1){
$udata = array(
'user_login' => $uname,
'user_pass' => $pwd,
'user_email' => $email,
'user_url' => $weburl,
'first_name' => $fname,
'last_name' => $lname,
'nickname' => $nname,
'description' => $bio,
);
$user = wp_insert_user($udata);
echo 'Registration Successfully Done . goto <a href="' .get_site_url() . '/wp-login.php">Login Page</a>.';
}
}
add_shortcode('srt_super_registration','super_registration_shortcode');
function super_registration_shortcode(){
ob_start();
super_registration();
return ob_get_clean();
}
?>
答案 0 :(得分:0)
表单标记中有错误&#34; =&#34;缺少.pl随之改变。
echo '
<form action="' . $_SERVER['Request_URI'] . '" method = "post">
你在$ udata中的参数也是错误的
$udata = array(
'user_login' => $uname,
'user_pass' => $pwd,
'user_email' => $email,
'user_url' => $weburl,
'first_name' => $fname,
'last_name' => $lname,
'nickname' => $nname,
'description' => $bio,
);