按下reg
按鈕後,我的登錄腳本顯示錯誤消息,我只能收到一條回顯消息。PHP登錄腳本不能處理頁面可用錯誤
編輯一個
它是有意義的使用elseif
或者我應該使用if ... else ...
?
編輯兩個
程序結束後,我怎麼能顯示所有可用的錯誤下的輸入框遇到的計劃?
PHP
<?php
if($_POST['reg'] == "Registrieren"){
$email = $_POST['email'];
$username = $_POST['user'];
$password = $_POST['pw'];
$passwordrep = $_POST['pwrep'];
$email = stripslashes($email);
$username = stripslashes($username);
$password = stripslashes($password);
$passwordrep = stripslashes($passwordrep);
/*if(isset($_SESSION['log']) OR $_SESSION['log'] == 1){
$error['already_online'] = 1;
$error['main'] = 1;
}else*/if(empty($username)){
$error['username_empty'] = 1;
$error['main'] = 1;
}else{
if(empty($email)){
$error['email_empty'] = 1;
$error['main'] = 1;
}else{
if(empty($password) OR empty($passwordrep)){
$error['passwords_empty'] = 1;
$error['main'] = 1;
}else{
if($password == $passwordrep){
$error['password_confirm'] = 1;
$error['main'] = 1;
}else{
if(strlen($username) < 6 OR strlen($username) > 64){
$error['username_too_short'] = 1;
$error['main'] = 1;
}else{
if(strlen($password) < 8 OR strlen($passwordrep) < 8){
$error['password_too_short'] = 1;
$error['main'] = 1;
}else{
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
$error['email_invalid'] = 1;
$error['main'] = 1;
}else{
if(!preg_match('/^[a-z\d]{2,64}$/i', $username)){
$error['username_invalid'] = 1;
$error['main'] = 1;
}else{
if($error['main'] = 0){
include_once("config/db_config.php");
$email = mysqli_real_escape_string($con, $email);
$username = mysqli_real_escape_string($con, $username);
$password = mysqli_real_escape_string($con, $password);
$passwordrep = mysqli_real_escape_string($con, $passwordrep);
$sql = "SELECT * FROM hp_user WHERE username = '$username'";
$query = mysqli_query($con, $sql) or die($msg_signup["signup_no_connection_aviable"]);
$row = mysqli_num_rows($query);
if($row == 1){
$error['username_exists'] = 1;
$error['main'] = 1;
}else{
$sql = "SELECT * FROM hp_user WHERE email = '$email'";
$query = mysqli_query($con, $sql) or die($msg_signup["signup_no_connection_aviable"]);
$row = mysqli_num_rows($query);
if($row == 1){
$error['email_exists'] = 1;
$error['main'] = 1;
}else{
$_SESSION['log'] = 1;
$_SESSION['user'] = $query->username;
$_SESSION['email'] = $query->email;
$add = mysqli_query($con,"INSERT INTO `agptest`.`hp_user` (`ID`, `username`, `email`, `password`, `date`, `locked`, `permission`) VALUES (NULL, '$username', '$email', '$passwordrep', CURRENT_TIMESTAMP, '0', '1');");
$error['main'] = 0;
mysqli_close();
}
}
}
}
}
}
}
}
}
}
}
}
?>
<?php
if ($error['main'] == "0") {
header("Location: http://www.allgameplay.de/?site=default");
}else{
echo "<h1>Registrierung</h1>";
echo "<form method=\"post\" action=\"index.php\">\n";
echo "Benutzername:<br><input name=\"user\" type=\"text\" size=\"30\"><br>";
if($error['username_empty'] == 1){
echo $msg_signup['signup_user_empty'];
}
if($error['username_too_short'] == 1){
echo $msg_signup['signup_user_too_short'];
}
if($error['username_invalid'] == 1){
echo "Dein Benutzername ist ungültig!";
}
echo "<br>E-Mail Adresse:<br><input name=\"email\" type=\"text\" size=\"30\"><br>";
if($error['email_empty'] == 1){
echo "Du hast keine E-Mail Adresse angegeben!";
}
if($error['email_invalid'] == 1){
echo "Dies ist keine richtige E-Mail Adresse!";
}
echo "<br>Passwort:<br><input name=\"pw\" type=\"password\" size=\"30\"><br>";
if($error['passwords_empty'] == 1){
echo "Du hast kein Passwort angegeben!";
}
echo "<br>Passwort wiederholen:<br><input name=\"pwrep\" type=\"password\" size=\"30\"><br>";
if($error['passwords_empty'] == 1){
echo "Du hast kein Passwort angegeben!";
}
if($error['password_confirm'] == 1){
echo "Die Passwörter stimmen nicht überein!";
}
echo "<br><input type=\"submit\" name=\"reg\" value=\"Registrieren\"><br>";
}
?>
你能告訴我們錯誤信息是什麼嗎? – eggy 2014-10-29 00:02:19
這個「錯誤消息」是自己聲明的消息。他們不會在表格下顯示... – 2014-10-29 00:15:01