【问题标题】:Update query runs but not the fields are not updated in sql database更新查询运行但不是字段未在 sql 数据库中更新
【发布时间】:2018-12-28 11:02:45
【问题描述】:

我有一个更新页面,其中包含电子邮件和密码的更新表格,我尝试控制台登录以查看电子邮件和地址是否以 post 方法传输,详细信息已传输到此页面,但数据仍未保存,谁能告诉我为什么谢谢!

<?php session_start(); ?>

    <?php

        //extract form values and assign to regular PHP variables
        $uemail=$_POST['email'];    
        $passW=$_POST['pass'];
        $upassword= md5($_POST['passW']);


    if(!isset($_SESSION['usermail'])) {
        header('Location: ../homepage.php');
    }

else{
include "connection.php";


$session=$_SESSION["useremail"];    

    $sql = "UPDATE users SET uemail = '$uemail', upassword = '$upassword' WHERE uemail = '$session'";

$_SESSION["useremail"]=$uemail; //setting new email in session

        header("Location:../homepage.php");
    }
?>

【问题讨论】:

  • 首先对查询启用错误报告和正确的错误处理。这样做,然后告诉我们你得到了什么,如果有任何错误。
  • 你为什么在这里使用MD5?您是否不知道该散列方法已被破坏并且不再安全使用。你应该学习如何使用password_hash() 和准备好的语句。您希望您的数据库在某一天消失吗?
  • 这个表格在哪里?并且所有会话数组都有价值吗?
  • 你甚至没有对你的查询做任何事情;你知道吗?我认为这是一个印刷错误。

标签: php mysql forms session md5


【解决方案1】:

尝试连接变量。

<?php session_start(); ?>

    <?php

        //extract form values and assign to regular PHP variables
        $uemail=$_POST['email'];    
        $passW=$_POST['pass'];
        $upassword= md5($_POST['passW']);


    if(!isset($_SESSION['usermail'])) {
        header('Location: ../homepage.php');
    }

else{
include "connection.php";


$session=$_SESSION["useremail"];    

    $sql = "UPDATE users SET uemail = '".$uemail."', upassword = '".$upassword."' WHERE uemail = '".$session."'";

$_SESSION["useremail"]=$uemail; //setting new email in session

        header("Location:../homepage.php");
    }
?>

并始终检查您的变量是否正确.. 始终查看您的代码..

【讨论】:

  • 将它们更改为'".$var."' 有什么不同可能解决这个问题?他们都做同样的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多