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));
*/
}
}
}
}