0

ユーザー テーブルにユーザーを追加しようとしています。フォームはユーザー名を要求し、ドロップダウン リストからマネージャーを選択するようユーザーに要求します。manager テーブルの manager_id 列から既存のマネージャーを入力したいと思います。しかし、私はそれを行う方法がわかりません。これはこれまでの私のコードです:

<?php

if (isset($_POST['add'])) {
require_once 'login.php'; 

  $OK = false;

  $conn = new mysqli ($host, $user, $password, $database) or die("Connection Failed");

  $stmt = $conn->stmt_init();

  $sql = 'INSERT INTO users (user_name, user_manager, user_creation_date)
          VALUES(?, ?, NOW())';
  if ($stmt->prepare($sql)) {

    $stmt->bind_param('ss', $_POST['user_name'], $_POST['user_manager']);

    $stmt->execute();
    if ($stmt->affected_rows > 0) {
      $OK = true;
    }
  }

  if ($OK) {
    header('Location: add_user_confirm.php');
    exit;
  } else {
    $error = $stmt->error;
  }
}
?>
<!DOCTYPE HTML>
<html>
<head>

<title>Add new user</title>
</head>

<body>
<h1>Add new user</h1>
<?php if (isset($error)) {
  echo "<p>Error: $error</p>";
} ?>
<form id="form1" method="post" action="">
  <p>
    <label for="user_name">user name:</label>
    <input name="user_name" type="text" class="widebox" id="user_name">
  </p>
  <p>
    User manager: <select name="user_manager" size "1">

  </p>
  <p>
    <input type="submit" name="add" value="add_user" id="add">
  </p>
</form>
</body>
</html>

私の「マネージャー」テーブルは次のようになります。manager_name | manager_dept

誰か助けてくれませんか?前もって感謝します

4

2 に答える 2

2

このようなものが機能するはずです

<p>
    User manager: <select name="user_manager" size "1">
    <?php $stmt->close();
    $stmt2 = $conn->stmt_init();
    $selectQ = 'select * from managers';
    $stmt2->prepare($selectQ);
    $stmt2->execute();
    $result = $stmt2->get_result();
    while($resultRow = $result->fetch_array(MYSQLI_ASSOC))
        echo '<option value="$resultRow[manager_id]">$resultRow[manager_name]</option>';
    $result->close();
    $stmt2->close();
    ?>
</p>
于 2013-02-10T21:52:02.783 に答える
0

以下は、ユーザーを追加する例です。

   /**
 * Storing new user
 * returns user details
 */
public function storeUser($name, $email, $password) {
    $uuid = uniqid('', true);
    $hash = $this->hashSSHA($password);
    $encrypted_password = $hash["encrypted"]; // encrypted password
    $salt = $hash["salt"]; // salt
    $result = mysql_query("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES('$uuid', '$name', '$email', '$encrypted_password', '$salt', NOW())");
    // check for successful store
    if ($result) {
        // get user details
        $uid = mysql_insert_id(); // last inserted id
        $result = mysql_query("SELECT * FROM users WHERE uid = $uid");
        // return user details
        return mysql_fetch_array($result);
    } else {
        return false;
    }
}

パスワードを元の形式で保存したくないため、$saltandhashSSHA関数を覚えておいてください。それらは以下にリストされています。

    /**
 * Encrypting password
 * @param password
 * returns salt and encrypted password
 */
public function hashSSHA($password) {

    $salt = sha1(rand());
    $salt = substr($salt, 0, 10);
    $encrypted = base64_encode(sha1($password . $salt, true) . $salt);
    $hash = array("salt" => $salt, "encrypted" => $encrypted);
    return $hash;
}

/**
 * Decrypting password
 * @param salt, password
 * returns hash string
 */
public function checkhashSSHA($salt, $password) {

    $hash = base64_encode(sha1($password . $salt, true) . $salt);

    return $hash;
}

これらの機能は、物事を安全に保つのに役立ちます。また、これについて詳しく知りたい場合、または API 全体とそのすべてのコードを確認したい場合は、ここにアクセスしてください。

于 2013-02-10T22:17:07.537 に答える