Php 获取当前用户的 id 不起作用

标签 php mysql logging xampp session-variables

我试图创建一个页面,您可以在其中登录然后更改您的昵称或/和密码。 mySQL 数据库中的所有内容,但是当我尝试将 id 保存到 session 变量时,它不起作用。有什么建议吗?

我使用的是XAMPP,users是我在数据库users中的表,我不会发布登录表单代码,因为它非常简单。

一切都已连接,代码不会给出任何警告或错误。

login.php(片段):

$sql = "SELECT * FROM users WHERE nickname = '$myusername' and pass = '$mypassword' and confirmed = 1";
  $result = mysqli_query($conn,$sql);
  $row = mysqli_fetch_array($result,MYSQLI_ASSOC);

  $count = mysqli_num_rows($result);

  // If result matched $myusername and $mypassword, table row must be 1 row

  if($count == 1) {

        $logged = true;

        while($row = mysqli_fetch_assoc($result)) {
            echo "id: " . $row["id"];
            $_SESSION['currentId'] = $row["id"];
            echo 'Id: ' . $_SESSION['currentId'];
        }
  }else {
     $error = "Your Login Name or Password is invalid";
  }
} 

change.php(整个):

<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "Users";
$currentId = $_SESSION['currentId'];

if($currentId<1){echo 'No Id.';}
else {echo 'CurrentId: ';
echo $currentId;}
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully <br>";

if($_SERVER["REQUEST_METHOD"] == "POST") {
  // username and password sent from form 

  $aCUname = mysqli_real_escape_string($conn,$_POST['CUname']);
  $aCUpass = mysqli_real_escape_string($conn,$_POST['CUpass']); 

  $sql = "UPDATE users SET nickname = '$aCUname', pass = '$aCUpass' WHERE id = '$currentId';";
  $result = mysqli_query($conn,$sql);
    echo 'Updated successfully.';
}
?>

感谢您的帮助。

最佳答案

我找到了解决方案。我只得删除

$row = mysqli_fetch_array($result,MYSQLI_ASSOC);

来自login.php。感谢@Shashikumar Misal!

关于Php 获取当前用户的 id 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47580937/

相关文章:

php - 在同一个表中同时插入 MySQL : how to?

php - Symfony2 XPath 返回重复节点

mysql - 随着时间的推移,选择的记录越来越少?

mysql - INSERT ... ON DUPLICATE KEY UPDATE 在我的数据库中不起作用

web-services - 跟踪到 LogSource 'All Events' 失败。企业库日志记录错误

持续监控 Systemd 日志

php - 更改错误日志输出格式 : ini_set ('error_append_string' , 'string' ) 和 ini_set ('error_prepend_string' , 'string' ) 什么都不做

php - Laravel 异常 405 方法不允许

php - MySQL 连接所需的默认端口

c++ - 为 C++ 配置 google glog 和 gflags