2017-02-27 19 views
-4

不喜欢删除此代码上的sha1加密,所以我可以存储我的密码输入数据库而不是加密的代码。是新来的编码,所以我需要帮助有问题,从我的代码中删除sha1加密

代码(settings_model.php)

<?php 
    $settings = new Datasettings(); 
    if(isset($_GET['q'])){ 
     $settings->$_GET['q'](); 
    } 

    class Datasettings { 

     function __construct(){ 
      if(!isset($_SESSION['id'])){ 
       header('location:../../'); 
      } 
     } 

     function changepassword(){ 
      include('../../config.php'); 
      $username = $_GET['username']; 
      $password = $_GET['password']; 
      $current = sha1($_POST['current']); 
      $new = sha1($_POST['new']); 
      $confirm = sha1($_POST['confirm']); 
      $q = "select * from userdata where username='$username' and password='$current'"; 
      $r = mysqli_query($db,$q); 
      if(mysqli_num_rows($r) > 0){ 
       if($new == $confirm){ 
        $r2 = mysqli_query($db,"update userdata set password='$new' where username='$username' and password='$current'"); 
        header('location:../settings.php?msg=success&username='.$username.''); 
       }else{ 
        header('location:../settings.php?msg=error&username='.$username.''); 
       } 
      }else{ 
       header('location:../settings.php?msg=error&username='.$username.''); 
      } 
     } 

     function addaccount(){ 
      include('../../config.php'); 
      $level = $_GET['level']; 
      $id = $_GET['id']; 
      $q = "select * from $level where id=$id"; 
      $r = mysqli_query($db,$q); 
      $row = mysqli_fetch_array($r); 
      if($level == 'student'){ 
       $username = $row['studid'];     
       $fname = $row['fname']; 
       $lname = $row['lname']; 
       $password = sha1($username.'-'.$fname); 
      }else{ 
       $username = $row['teachid'];     
       $fname = $row['fname']; 
       $lname = $row['lname']; 
       $password = sha1($username.'-'.$fname); 
      } 
      $verify = $this->verifyusername($username); 
      if($verify){ 
       $q2 = "insert into userdata values(null,'$username','$password','$fname','$lname','$level')"; 
       mysqli_query($db,$q2); 
       header('location:../'.$level.'list.php?r=added an account'); 
      }else{ 
        header('location:../'.$level.'list.php?r=updated'); 
      } 

     } 

     function verifyusername($user){ 
      $q = "select * from userdata where username='$user'"; 
      $r = mysql_query($q); 
      if(mysql_num_rows($r) < 1){ 
       return true; 
      }else{ 
       return false; 
      } 
     } 

     function getuser($search){ 
     include('../config1.php'); 
      $user = $_SESSION['id']; 
      $q = "select * from userdata where username !='$user' and username like '%$search%' order by lname asc"; 
      $r = mysqli_query($db, $q); 
      return $r; 
     } 


      function addaccounts(){ 
      include('../../config1.php'); 
      extract($_POST); 

      $q = "select * from $level where id=$id"; 
      $r = mysqli_query($db,$q); 
      $row = mysqli_fetch_array($r); 
      if($level == 'student'){ 
       $username = $row['studid'];     
       $fname = $row['fname']; 
       $lname = $row['lname']; 
       $password = sha1($username.'-'.$fname); 
      }else{ 
       $username = $row['teachid'];     
       $fname = $row['fname']; 
       $lname = $row['lname']; 
       $password = sha1($username.'-'.$fname); 
      } 
      $verify = $this->verifyusername($username); 
      if($verify){ 
       $q2 = "insert into userdata values(null,'$username','$password','$fname','$lname','$level')"; 
       mysqli_query($db,$q2); 
       header('location:../'.$level.'list.php?r=added an account'); 
      }else{ 
        header('location:../'.$level.'list.php?r=updated'); 
      } 

     } 



    } 
?> 

请帮忙马上需要一个答案。谢谢。

+1

供参考:不要使用SHA1,这是老被破解。使用'password_hash()' –

+1

你也在混合不同的mysql apis;你不能那样做。 –

+2

***专家提示:***不要采取行动,不要说你的要求是紧急的。回答问题的人是忙碌的志愿者,就像你的一样。 –

回答

-1

只是改变这一行

$confirm = sha1($_POST['confirm']); 

这个

$confirm = $_POST['confirm']; 
+0

据推测,OP也必须迁移已经存在的密码。 –

+0

谢谢,我试了一下,但没有奏效...... –

+0

没有理由不应该这样做,这不会改变任何现有的理由,但是任何新理念都会改变。 – ATechGuy