2012-07-26 55 views
0

我有一个无刷新页面的发布数据的注册表格!我的问题形成重置数据。它在用户名和保持用户输入。我尝试做同样的事情“性别”太多,但如果我得到eror,“Genderselection被重置too.I无法管理保持它。保存表格中的数据

任何人都可以帮我吗?

我的代码如下:

/* Current Page */ 
    public function currentPage() { 
     /* Current Page */ 
     $currentPage = 'http'; 
     if(isset($_SERVER["HTTPS"]) == "on") {$currentPage .= "s";} 
     $currentPage .= "://"; 
     $currentPage .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; 
     return $currentPage; 
    } 

    /* Register */ 
    public function register() { 
    global $database; 

    /* Set Message Array */ 
    $message = array(); 

    /* Check if Login is set */ 
    if(isset($_POST['register'])) { 

    /* Check Username */ 
    if(!empty($_POST['username'])) { 

    $check_username = strtolower($_POST['username']); 

    /* Check the username length */ 
    $length = strlen($check_username); 
    if($length >= 5 && $length <= 25) { 

    /* Is the username Alphanumeric? */ 
    if(preg_match('/[^a-zA-Z0-9_]/', $check_username)) { 
    $error[] = "Please enter a valid alphanumeric username"; 
    $username = null; 
    } else { 
    $database->query('SELECT id FROM users WHERE username = :username', array(':username' => $check_username)); 

    /* Check if user exist in database */ 
    if($database->count() == 0) { 

    /* Require use to validate account */ 
    if($this->email_verification == true) { 

    /* Check if user exist in inactive database */ 
    $database->query('SELECT date FROM users_inactive WHERE username = :username', array(':username' => $check_username)); 

    /* If user incative is older than 24 hours */ 

    $user = $database->statement->fetch(PDO::FETCH_OBJ); 
    if($database->count() == 0 or time() >= strtotime($user->date) + 86400) { 

    /* If user incative is older than 24 hours */ 
    $username = $_POST['username']; 
    } else { 
    $error[] = "Username already in use"; 
    $username = $check_username; 
    } 
    } else { 
    $username = $_POST['username']; 
    } 
    } else { 
    $error[] = "Username already in use"; 
    $username = $check_username; 
    } 
    } 
    } else { 
    $error[] = "Please enter a username between 5 to 25 characters"; 
    $username = $check_username; 
    } 
    } else { 
    $error[] = "Please enter a username"; 
    $username = null; 
    } 

    /* Check Password */ 
    if(!empty($_POST['password'])) { 

    /* Do passwords match? */ 

    if(isset($_POST['password_again']) && $_POST['password_again'] == $_POST['password']) { 

    /* Is the password long enough? */ 
    $length = strlen($_POST['password']); 
    if($length >= 8) { 
    $password = $_POST['password']; 
    } else { 
    $error[] = "Passwords must be atleast than 8 characters"; 
    } 
    } else { 
    $error[] = "Passwords must match"; 
    } 
    } else { 
    $error[] = "Please enter a password"; 
    } 


    /* Check Gender */ 
    if(empty($_POST['gender'])) { 
    $error[] = "Please choose your gender"; 
    }else{ 

    $gender = $_POST['gender']; 

       } 


    $form = ' 
    <form name="register" action="' . $this->currentPage() . '" method="post"> 
    <label><span>Username</span> 
    <input type="text" name="username" value="' . $username . '" /> 
    </label> 

    <label><span>Password</span> 
    <input type="password" name="password" /> 
    </label> 

    <label><span>Password Again</span> 
    <input type="password" name="password_again" /> 
    </label> 

    <label><span>Gender:</span> 
    <select name="gender" value="' . $gender . '"> 
    <option value="">Choose</option> 
    <option value="Male">Male</option> 
    <option value="Female">Female</option> 

    <input name="register" type="submit" value="Register" /> 
    </form> 
      '; 
      /* Combine Data */ 
      $data = ""; 
      /* Report any Info */ 
      if(isset($info)) { 
       foreach($info as $message) { 
       $data .= '<div class="notice info">' . $message . '</div>'; 
       } 
      } 
      /* Report any Errors */ 
      if(isset($error)) { 
       foreach($error as $message) { 
       $data .= '<div class="notice error">' . $message . '</div>'; 
       } 
      } 
      /* Report any Success */ 
      if(isset($success)) { 
       foreach($success as $message) { 
       $data .= '<div class="notice success">' . $message . '</div>'; 
       } 
      } 

      /* Return data */ 
      return $data; 
     } 
+0

请缩进代码或者是没有意义 – Ibu 2012-07-26 17:23:18

回答

1

关于你提到的 “性别” 问题的价值 - 您需要更改此代码

<select name="gender" value="' . $gender . '"> 
    <option value="">Choose</option> 
    <option value="Male">Male</option> 
    <option value="Female">Female</option> 

<select name="gender"> 
    <option value="" ' .($gender == '' ? 'selected="selected"' : '') . '>Choose</option> 
    <option value="Male" ' .($gender == 'male' ? 'selected="selected"' : '') . '>Male</option> 
    <option value="Female" ' .($gender == 'female' ? 'selected="selected"' : '') . '>Female</option> 

您正试图设置valueselect标记,该标记无效。

+0

谢谢,此代码工作:<“”。$性别“‘选择name =“性别”值=> <期权价值=’”” 。($ gender ==''?'selected =“selected”':'')。 '>选择 2012-07-26 17:51:45