php - 将 session 变量存储从全部更改为个人后,登录表单不起作用

标签 php mysql forms session

这里是初学者。我更改了登录表单

$q = "SELECT id, fname, lname FROM users WHERE (username='$username' AND password=SHA1('$password'))";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br>MySQL Error: " . mysqli_error($dbc));

if (@mysqli_num_rows($r) == 1) {
    $_SESSION = mysqli_fetch_array ($r, MYSQLI_ASSOC);
    mysqli_free_result($r);
    mysqli_close($dbc);

    $url = BASE_URL . (isset($_SESSION['redirect']) ? $_SESSION['redirect'] : 'index.php');
    unset($_SESSION['redirect']);
    ob_end_clean();
    header("Location: $url");
    exit();
} else {
    echo 'Message';
}

到此

$q = "SELECT id, fname, lname FROM users WHERE (username='$username' AND password=SHA1('$password'))";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br>MySQL Error: " . mysqli_error($dbc));

if (@mysqli_num_rows($r) == 1) {
    $row = mysql_fetch_assoc($r);
    $_SESSION['id'] = $row['id'];
    $_SESSION['fname'] = $row['fname'];
    $_SESSION['lname'] = $row['lname'];
    mysqli_free_result($r);
    mysqli_close($dbc);

    $url = BASE_URL . (isset($_SESSION['redirect']) ? $_SESSION['redirect'] : 'index.php');
    unset($_SESSION['redirect']);
    ob_end_clean();
    header("Location: $url");
    exit();
} else {
    echo 'Message<p>';
}

并且登录表单不再起作用。因此,我基本上改变了我的形式,从将所有行设置为 session 变量到单独将行设置为 session 变量。我需要这样做才能使重定向起作用。不确定我是否错误地设置了 session 变量或问题是什么,但我无法再使用表单登录(提交时页面只会刷新而不让用户登录)。

编辑:此问题的解决方案发布如下。这是为了取代

$row = mysql_fetch_assoc($r);

$row = mysqli_fetch_array ($r, MYSQLI_ASSOC);

根据this post , mysql_fetch_array( $result, MYSQL_ASSOC ) = mysql_fetch_assoc( $result ) 。然而,当在应该登录的时候进行切换时,登录却无法登录。

最佳答案

不知道为什么会这样,但解决方案是替换

$row = mysql_fetch_assoc($r);

$row = mysqli_fetch_array ($r, MYSQLI_ASSOC);

如有解释,我们将不胜感激!

关于php - 将 session 变量存储从全部更改为个人后,登录表单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678815/

相关文章:

mysql - 在 mysql 中设置全局 sql_mode

mysql - 请求一个sql查询

forms - Flutter:如何在选项卡中管理表单

php - 如何在 wamp 服务器上安装 ffmpeg (windows 7 - x64)

php - 如何在不使用ajax的情况下将javascript动态数据发送到php变量

php - 我可以在 PHP 中混合使用 MySQL API 吗?

javascript - 如何获取选中的复选框值?

javascript - 使用 JavaScript 提交 Laravel 表单

php - Mysql:如何修剪和比较数据库字段与字母数字值?

php - 需要 .htaccess 帮助 : nonexistent urls 301 redirecting to 404, 而不是直接给出 404