PHP由于更新为Mysql注册无效

时间:2019-03-10 14:56:39

标签: php mysql

Maby,这是一个简单的解决方法,但我看不到, 我已经有一段时间在更新旧的登录脚本了。这是Mysql,现在我是为Mysqli而设计的。现在我测试了寄存器部分,但由于某些部分使用split()而已弃用并移除,因此它无法正常工作。现在我用爆炸将其替换,一切正常,没有错误

但是部分代码似乎无法正常工作。 因为它不会检查用户是否已经存在,并且不会将密码更改为MD5(我知道那是旧的并且不安全!,下次可以使用。它不适用于商业用途,仅在家里使用)

但是我不明白为什么它不起作用,它没有显示错误信息

这是代码: (很抱歉)

我用类似的观点看了另一篇文章,但没有帮助。

  private function registreer_gebruiker() {
if(isset($_POST['actie']) && $_POST['actie'] == 'registreer_gebruiker') {      
  $velden = array();

  if(!is_array($this->database_velden) || !count($this->database_velden)) {
    die("FOUT: Geen velden opgegeven.");
  }

  // Alle velden uit de array doorlopen
  foreach($this->database_velden as $veld) {
    $veld = explode(':', $veld);
    // Veldnaam
    $veld_naam = $veld[0];
    $velden[$veld_naam] = $_POST[$veld_naam];
    // Veld instellingen
    $veld_instellingen = explode('\|', $veld[1]);

    foreach($veld_instellingen as $instelling) {
      if($instelling == 'verplicht' && empty($velden[$veld_naam])) {
        // Controlleer of het veld is ingevuld
        $this->fouten .= "- Het veld '". $veld_naam ."' is verplicht<br />";
      } elseif($instelling == 'md5') {
        // Codeer naar md5
        $velden[$veld_naam] = md5($velden[$veld_naam]);
      } elseif(substr($instelling, 0, 3) == 'min') {
        // Controlleer minimum stringlengte
        if(strlen($velden[$veld_naam]) < (int) substr($instelling, 4)) {
          $this->fouten .= "- Het veld '". $veld_naam ."' is te kort.<br />";
        }
      } elseif(substr($instelling, 0, 3) == 'max') {
        // Controleer maximum stringlengte
        if(strlen($velden[$veld_naam]) > (int) substr($instelling, 4)) {
          $this->fouten .= "- Het veld '". $veld_naam ."' is te lang.<br />";
        }
      } elseif(substr($instelling, 0, 2) == "==") {
        if($velden[$veld_naam] != $_POST[substr($instelling, 2)]) {
          $this->fouten .= '- De velden '. $veld_naam .' en '. substr($instelling, 2) .' komen niet overeen.<br />';
        }     
      } elseif($instelling == 'uniek') {
        $q = mysqli_query($this->con,"SELECT ". $veld_naam ." FROM gebruikers WHERE ". $veld_naam ." = '". mysqli_real_escape_string($this->con, $velden[$veld_naam]) ."' ");
        if(!$q) {
          $this->fouten .= '- Er is een MySQL fout opgetreden <br />';
        } else {
          if(mysqli_num_rows($q)) {
            $this->fouten .= 'De inhoud van veld '. $veld_naam .' bestaat al<br />';
          }
        }          
      } elseif($instelling == 'email') {
        // Controleer email
        if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $velden[$veld_naam])) {
          $this->fouten .= "- Het email is incorrect.<br />";          
        }
      }
    }
  }

  if(!$this->fouten) {
    // SQL genereren
    $SQL  = "INSERT INTO gebruikers ";
    $SQL_TMP = "";

    foreach($velden as $key=>$value) {
      $SQL_TMP .= ", ". $key ." = '". mysqli_real_escape_string($this->con, $value) ."' ";
    }

    // Eerste komma weghalen
    $SQL .= "SET ".preg_replace("#^,{0,1}#", '', $SQL_TMP);

    if($SQL_TMP && mysqli_query($this->con,$SQL)) {
      header("Location: index.php");
    } else {
      $this->fouten = "Er is een MySQL fout opgetreden.";
      /*
        om te debuggen gebruik:
        die(mysqli_error($con));
      */
    }
  }    
}

}

0 个答案:

没有答案