2017-02-27 3 views
-4

ich mag, um die sha1 Verschlüsselung auf diesen Code zu entfernen, so kann ich mein Passwort als in die Datenbank eingegeben anstelle des verschlüsselten Codes speichern. Bin neu Codierung soProbleme mit dem Entfernen sha1 Verschlüsselung von meinem Code

Der Code (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'); 
      } 

     } 



    } 
?> 

bitte helfen Sie bald eine Antwort brauche ich die Hilfe benötigen. Vielen Dank.

+1

FYI: Sie SHA1 nicht verwenden, es ist alt und hackable. Benutze 'password_hash()' –

+1

du mischst auch verschiedene mysql apis; Das kannst du nicht tun. –

+2

*** Pro Tipp: *** Handeln Sie nicht bedürftig und sagen Sie nicht, dass Ihre Anforderung dringend ist. Die Leute, die Fragen beantworten, sind Freiwillige mit einem geschäftigen Leben, genau wie Ihres. –

Antwort

-1

nur diese Zeile ändern

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

dieser

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

Vermutlich muss OP auch die bereits vorhandenen Passwörter migrieren. –

+0

Danke, ich habe es versucht, aber es hat nicht funktioniert ... –

+0

es gibt keinen Grund es nicht haben sollte, wird dies nicht ändern bestehende, aber alle neuen setzen es wird. – ATechGuy