会话变量在PHP和MySQL表单中没有插入到数据库中。

10 浏览
0 Comments

会话变量在PHP和MySQL表单中没有插入到数据库中。

在pseller.php中,它没有像存储在$a,$b,$c,$d中的pseller.php中的会话变量(name,id,email,number)那样插入会话变量。

这是我的登录页面,我在检查用户名和密码。

login.php




   
      
          Log In 
             
              
           
 

User Name:

Password:

 

这是pseller页面,我试图将会话值存储在变量中,然后插入数据库。但是会话变量没有将数据插入到数据库中,并显示v_id和v_number的值为0。

pseller.php


请帮我解决这个问题。

0
0 Comments

问题出现的原因是,当从数据库中选择的用户名和密码没有返回任何行时,变量$user$pass将不会被赋值,导致在SESSION中保存的值是错误的。此外,mysql_num_rows函数返回的是行数,而你的代码中使用了LIMIT 3,所以如果返回的行数是0、2或3,会导致SESSION出现问题。另外,你使用了已经废弃的mysql_*函数库,并直接使用用户提供的值,这可能导致SQL注入攻击。建议使用mysqlipdo来防止注入攻击。

解决这个问题,你可以在代码中添加一些变量值的输出,例如在设置SESSION变量的if语句中添加一个echo,以确保成功获取了用户名和密码的组合。可以尝试进行调试,查看你已经做了什么。我建议你从那些等于0的地方开始调试。

至于login.php代码,你需要做一些改变来解决这个问题。具体的改动代码我无法确定,因为我不清楚你的具体情况。你可以尝试在代码中添加一些调试语句,以及检查你的数据库查询语句是否正确。

0
0 Comments

问题:在PHP和MySQL表单中,会话变量无法插入数据库。

原因:

1. 在login.php文件中没有包含session_start();

2. SQL查询语句中存在错误,使用了带有空格的列名category='product seller'

解决方法:

1. 在login.php文件中包含session_start();

2. 修改SQL查询语句中的错误,避免使用带有空格的列名category='product seller'

3. 在第二个页面pseller.php中使用echo语句来检查是否成功获取了会话变量的值。

4. 尝试使用修改后的SQL查询语句来获取数据库中的数据,并使用echo语句来检查是否成功获取了数据。

5. 如果成功获取了数据,使用会话变量来存储这些值,并取消注释header();语句。

6. 检查是否在login.php文件中定义了要存储在会话变量中的变量($name,$id,$number,$email)。

7. 避免使用过时的mysql库,改用mysqli或PDO库。

8. 使用mysqli的fetch_assoc函数来处理查询结果。

9. 使用准备语句来提高安全性。

以上是关于“session variables are not inserting in database in php and mysql form”问题的原因和解决方法。

0
0 Comments

在这个问题中,会话变量没有插入到PHP和MySQL表单中的数据库。这个问题出现的原因是在login.php文件中没有正确处理用户数据。另外,代码中还有一些其他问题:

1. 你不应该使用mysql库,因为它已经被弃用了。你应该使用mysqli,如果你已经习惯了mysql,这是一个相对容易的转换,或者使用PDO。

2. 你的代码易受SQL注入攻击。当在SQL查询中使用用户输入时,你应该使用预处理语句。

3. MD5对于密码来说不是一个非常安全的选项。

以下是一个基于你的问题中提供的信息所组成的login.php文件的PHP部分的简单示例。它并不适用于你特定的数据库结构和需求,但应该能帮助你解决问题:

prepare($sql); // 准备查询字符串
    $stmt->bind_param("ss", $user, $pass); // 定义预处理语句参数
    // 执行预处理语句
    if ($stmt->execute())
    {
        $result = $stmt->get_result(); // 获取结果
        $data = $result->num_rows; // 获取行数
        if ($data == 1)
        {
          $userdata = $result->fetch_array(MYSQLI_ASSOC); // 从结果中获取关联数组
          $_SESSION['name'] = $userdata['name'];
          $_SESSION['id'] = $userdata['id'];
          $_SESSION['phone_no'] = $userdata['phone_no'];
          $_SESSION['email_id'] = $userdata['email'];
          header("location:pseller.php");
        }
      }
      else
      {
        header("location:login.php?error");
      }
    }
?>

通过上述代码示例,你可以解决会话变量没有插入到数据库的问题。同时,你还可以改进代码的安全性,以避免SQL注入攻击。

0