Pregunta

Tengo una página que básicamente permite a un usuario administrador para crear tipos Administrador de usuarios (básicamente una función de registro. Por eso, cuando se presentan los valores, que se almacenan en la base de datos, el personal es muy muy básico. Sin embargo, tengo una variable oculta type..reasons son tengo 3 niveles de usuario diferentes y he declarado que la identificación como un número entero (por ejemplo, 7 = manager, 8 = user etc.)

Puede alguien ayudarme con cómo pasar correctamente este valor oculto por lo que almacena en la base de datos ...

Aquí está mi formulario:

<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>

A continuación, aquí está el script que se ejecuta la consulta:

    <?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();
 ?>  

Estoy básicamente tratando de pasar el TypeM oculto con un valor constante de '5' sólo para esta forma, ya que no se cambiará también ... mientras estoy aquí, por alguna razón, el 'nombre completo' no es almacenada en la DB o !! ?? WTH ?? todos los demás campos se procesan bien. ¡Cualquier ayuda es muy apreciada! Gracias.

¿Fue útil?

Solución

Dos cosas. Uno, $userlevel debe ser igual $_POST['userlevel'] no 5 como datos de correos no está siempre en ese orden. Dos, su instrucción de inserción debe ir precedida con los nombres de las columnas (para evitar que los datos de entrar en el orden equivocado).

$sql = "INSERT INFO users_tb (id, name, username, password, email, userlevel) ".
       "('".$user_id."','".$fullname."','".$username."',MD5('".$password."'),'".
       $emailaddress."','".$userlevel."')";

Otros consejos

Tu PHP para la salida el valor es incorrecto. Uso:

<?= $_POST[5]; ?>

o

<?php echo $_POST[5]; ?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top