Problem mit PHP; Veröffentlichung versteckten Wert?
-
19-09-2019 - |
Frage
Ich habe eine Seite, die im Grunde ein Admin Benutzer ermöglicht, Manager Benutzertypen zu erstellen (im Grunde ein Funktionsregister. Wenn also die Werte vorgelegt werden, werden sie in die DB gespeichert ist, sehr, sehr grundlegende Dinge. Ich habe jedoch eine versteckte Variable type..reasons I sind 3 verschiedene Benutzerebenen haben, und ich habe sie Identifizierung als integer deklariert (zB 7 = Manager, 8 = user etc.)
kann jemand helfen mir bei, wie man richtig mit diesem verborgenen Wert übergibt, damit sie in der Datenbank speichern ...
Hier ist meine Form:
<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>
Als nächstes wird hier das Skript, das die Abfrage ausgeführt wird:
<?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();
?>
Ich versuche, im Grunde die versteckte typem mit einem konstanten Wert von ‚5‘ für diese Form nur zu passieren, da es nicht geändert werden ... auch während hier im, aus irgendeinem Grunde, der ‚Fullname‘ ist nicht gespeichert entweder im DB !! ?? WTH ?? alle anderen Felder werden verarbeitet in Ordnung. Jede Hilfe ist sehr zu schätzen! Danke.
Lösung
Zwei Dinge. Eines, $userlevel
sollte gleich $_POST['userlevel']
nicht 5
als POST-Daten nicht immer in dieser Reihenfolge ist. Zwei, Ihre Insert-Anweisung sollte mit den Spaltennamen (zu verhindern, dass Daten aus gehen in der falschen Reihenfolge).
$sql = "INSERT INFO users_tb (id, name, username, password, email, userlevel) ".
"('".$user_id."','".$fullname."','".$username."',MD5('".$password."'),'".
$emailaddress."','".$userlevel."')";
Andere Tipps
Ihre PHP den Wert für die Ausgabe ist falsch. Verwendung:
<?= $_POST[5]; ?>
oder
<?php echo $_POST[5]; ?>