php - 验证问题阻止使用 PHP 更新数据库

标签 php mysql phpmyadmin

我正在使用以下 PHP 代码来更新数据库中的信息,但在更新之前,系统会提示我完成所有字段,即使所有字段都已完成

谁能明白为什么会发生这种情况吗?

这是我的代码

<?php

$update = strip_tags($_POST['update']); 

$username = strtolower(strip_tags($_POST['username']));

$olspassword = strip_tags($_POST['oldpassword']);

$newpassword = strip_tags($_POST['newpassword']);

$firstname = strip_tags($_POST['first']);

$lastname = strip_tags($_POST['last']);

$gender = strip_tags($_POST['gender']);

$address = strip_tags($_POST['address']);

$zipcode = strip_tags($_POST['zip']);

$contact = strip_tags($_POST['con']);

$email = strip_tags($_POST['mail']);

error_reporting(0);



if($update)
{




if($username&&$oldpassword&&$newpassword&&$firstname&&$lastname&&$address&&$zipcode&&$contact&&$email)
{

 $connect = mysql_connect("localhost","root","") or die(mysql_error());
 mysql_select_db(brightlights) or die(mysql_error());

 $updatecheck = mysql_query("SELECT username FROM tb_user WHERE username='$username'");
 $count = mysql_num_rows($updatecheck);
 if($count<=1)
 {

 if($_SESSION['password']==($oldpassword))
 {

 mysql_query("UPDATE tb_user SET
     username = '$username',
     password = '$newpassword',
     Firstname = '$firstname',
     Lastname = '$lastname',
     gender = '$gender',
     address = '$address',
     zipcode = '$zipcode',
     contact = '$contact',
     email = '$email'
     WHERE username='".$_SESSION['username']."'");
     $_SESSION['username'] = $username;
     $_SESSION['password'] = $newpassword;
     $_SESSION['Firstname'] = $firstname;
     $_SESSION['Lastname'] = $lastname;
     $_SESSION['gender'] = $gender;
     $_SESSION['address'] = $address;
     $_SESSION['zipcode'] = $zipcode;
     $_SESSION['contact'] = $contact;
     $_SESSION['email'] = $email;
     session_write_close();
     echo "Succesfully Updated!";

    }else
     echo "Password not match!";
   }else
    echo "Username already Taken!";
  }else
   echo "Please fill up all form!";
}
?>

最佳答案

原因是这样的:

$olspassword = strip_tags($_POST['oldpassword']);
/// code
if($_SESSION['password']==($oldpassword)) {

代码块

if($_SESSION['password']==($oldpassword))

始终为 false,因为 $oldpassword 从未设置。您这里有一个错字:

$olspassword = strip_tags($_POST['oldpassword']);

看到变量 $olspassword 了吗?

关于php - 验证问题阻止使用 PHP 更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4347022/

相关文章:

mysql - 如何获取mysql中正在运行的进程的查询计划

PHP MySQL Web 服务器和 phpmyadmin 上的查询结果不同

mysql - phpmyadmin 下划线赋予错误数据库权限

mysql - phpMyAdmin 期间输入的密码有何用途

php - mysql缓存和memcached的区别

php - 将表单数据发送到wordpress中的外部数据库

PHP 大数据库 mysql 中最快的查询

php检查文本输入长度并根据长度更改另一个输入

mysql - 两个表,其中所有行包括根据 id 分配的行

mysql - 如何mysql从所有wp用户中选择第二个附件