0

基本的に管理者ユーザーがマネージャーユーザータイプ(基本的には登録機能)を作成できるページがあります。したがって、値が送信されると、非常に基本的なものであるDBに格納されます。ただし、非表示の変数タイプがあります。理由は、3つの異なるユーザーレベルがあり、それらを整数として識別することを宣言したためです(たとえば、7 =マネージャー、8 =ユーザーなど)。

誰かがこの隠された値を正しく渡してデータベースに保存する方法を手伝ってもらえますか...

これが私のフォームです:

<form id="userreg" name="userreg" method="post" action="adduser-process.php"> 
<label>Full Name:</label> <input name="fullname" size="40" id="fullname" value="<?php if (isset($_POST['fullname'])); ?>"/>
    <br />
    <label>Username:</label> <input name="username" size="40" id="username" value="<?php if (isset($_POST['username'])); ?>"/>       <br />
    <label>Password:</label> <input name="password" size="40" id="password" value="<?php if (isset($_POST['password'])); ?>"/>        <br />
    <label>Email Address:</label> <input name="emailaddress" size="40" id="emailaddress" value="<?php if (isset($_POST['emailaddress'])); ?>"/> 
    <br />
    <input name="userlevel" type="hidden" size="1" id="userlevel" value="<?php $_POST[5]; ?>" /> <br />
    <input value="Add User" class="addbtn" type="submit" /> 
    </form></div>

次に、クエリを実行するスクリプトを次に示します。

    <?php 

require_once "config.php";


 $fullname = $_POST['fullname'];
 $username = $_POST['username'];
 $password = $_POST['password'];
 $emailaddress = $_POST['emailaddress'];
 $userlevel = $_POST[5];


 $sql = "INSERT INTO users_tb VALUES('".$user_id."','".$fullname."','".$username."',MD5('".$password."'),'".$emailaddress."','".$userlevel."')";
 $result = mysql_query($sql, $connection)
  or die("MySQL Error: ".mysql_error());

 header("Location: administratorfrontview.php");
 exit();
 ?>  

私は基本的に、このフォームのためだけに「5」の定数値で非表示のtypemを渡そうとしています。これは変更されないためです...また、ここにいる間、何らかの理由で「フルネーム」はに保存されません。 DBどちらか!!?? WTH ?? 他のすべてのフィールドは正常に処理されます。どんな助けでも大歓迎です!ありがとうございました。

4

2 に答える 2

3

2つのこと。1つは、POSTデータが常にその順序であるとは限らないため、$userlevel等しく$_POST['userlevel']ない必要があります。52つ目は、挿入ステートメントの前に列名を付ける必要があります(データが間違った順序になるのを防ぐため)。

$sql = "INSERT INFO users_tb (id, name, username, password, email, userlevel) ".
       "('".$user_id."','".$fullname."','".$username."',MD5('".$password."'),'".
       $emailaddress."','".$userlevel."')";
于 2010-03-12T19:56:59.250 に答える
2

値を出力するためのPHPが間違っています。使用する:

<?= $_POST[5]; ?>

また

<?php echo $_POST[5]; ?>
于 2010-03-12T19:53:45.577 に答える