0

我收到此错误:“用户名”列不能为空。

首先,我使用的是 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/

4

1 回答 1

0

看起来您的代码绑定$Username到您的 MySQL 语句,从提供的代码中未定义。

也许你的意思是绑定$_POST['Username']?稍后$Password在脚本中也是如此。

于 2012-05-15T01:48:03.833 回答