我收到此错误:“用户名”列不能为空。
首先,我使用的是 jQuery UI。我制作了一个用于注册用户的模态表单。这是从我的 JS 中提取的:
if ( bValid ) {
var form = $('#register_form');
var data = form.serialize();
$.post('index.php?section=register', data, function(response) {
alert(response);
$( "#dialog_create_user_ok" ).dialog( "open" );
});
$( this ).dialog( "close" );
}
这似乎运作良好。用萤火虫检查了它,我得到了正确的帖子值。用户名=...&密码=...
现在从我的 register.php 中提取,它由 section=register 定义(使用教程):
if ('POST' == $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['Username'], $_POST['Password'])) {
return INVALID_FORM;
}
//Check for already existing User
$sql = 'SELECT
ID
FROM
User
WHERE
Username = ?
LIMIT
1';
$stmt = $db->prepare($sql);
if (!$stmt) {
return $db->error;
}
$stmt->bind_param('s', $Username);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows) {
return 'User already exists.';
}
$stmt->close();
//Add User
$sql = 'INSERT INTO
User(Username)
VALUES
(?)';
$stmt = $db->prepare($sql);
if (!$stmt) {
echo "hier bin ich";
return $db->error;
}
$stmt->bind_param('s', $Username);
if (!$stmt->execute()) {
return $stmt->error;
}
$UserID = $stmt->insert_id;
//Update password for User
$sql = 'UPDATE
User
SET
Password = ?
WHERE
ID = ?';
$stmt = $db->prepare($sql);
if (!$stmt) {
return $db->error;
}
$Hash = md5(md5($UserID).$Password);
$stmt->bind_param('si', $Hash, $UserID);
if (!$stmt->execute()) {
return $stmt->error;
}
return showInfo('Added user.');
}
return $ret;
这真的很奇怪。这段代码今天对我有用。然后我不得不更改文件夹以获得更好的结构,现在这个。
顺便提一句。这是我的表用户(ID = 主键):! http://imageshack.us/photo/my-images/823/unbenanntjfz.jpg/