簡體   English   中英

POST注冊腳本的其他字段

[英]Additional fields to POST registration script

我一直在使用此腳本將新用戶添加到我的user_list表中,但是我在表單中添加了一些新字段,但確實很難查看允許腳本在何處或何處發布新字段。

<form method="POST" action="register.php">

  <br>
  <p><input name="user" type="text" placeholder="Username" /></p>
  <p><input name="pass" type="password" placeholder="Password"/></p>
  <br>
  <p><input name="firstname" type="text" placeholder="First Name" /></p>
  <p><input name="lastname" type="text" placeholder="Last Name" /></p>
  <p><input name="email" type="text" placeholder="Ricoh Email Address" /></p>
  <p><input name="ext" type="text" placeholder="Telephone Extension (e.g. 3312)" /></p>
  <br>
  <p><input type="submit" name="submit" value="Register User"></p>

</form>


</div>   




 <?

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

      include_once '../db_con.php';
      include_once 'config.php';

    if(isset($_POST['user'], $_POST['email']) && isset($_POST['pass'], $_POST['email'])){
      $password=$_POST['pass'];
      $sql=$dbh->prepare("SELECT * FROM user_login WHERE username= ? ");
      $sql->execute(array($_POST['user']));

    if($sql->fetchColumn()!=0){

    die("User Exists");

    }else{
     function rand_string($length) {
      $str="";
      $chars = "subinsblogabcdefghijklmanopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
      $size = strlen($chars);
      for($i = 0;$i < $length;$i++) {
       $str .= $chars[rand(0,$size-1)];
     }

      return $str;
     }
     $p_salt = rand_string(20);
     $site_salt="subinsblogsalt";
     $salted_hash = hash('sha256', $password.$site_salt.$p_salt);

     $sql=$dbh->prepare("INSERT INTO `user_login` (`id`, `username`, `email`, `password`, `psalt`) VALUES (NULL, ?, ?, ?, ?);");
     $sql->execute(array($_POST['user'], $salted_hash, $p_salt));
        echo 'New user added';
    }
   }
  }

  ?>

如您所見,我嘗試將其他字段添加為$ _POST ['email']等,但它表示存在錯誤:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens'

在$ sql-> execute()中添加$ _POST ['email']

$sql->execute(array($_POST['user'], $_POST['email'], $salted_hash, $p_salt));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM