首页 > 解决方案 > 在插入正确的mysql之前插入一个空白行

问题描述

我正在开发一个 angular5 / php 后端项目,我遇到了一个问题,我有一个注册表单,当用户注册时,它会在用户表中创建一个空白行(空字符串值),然后是正确的行(列值)。

以下是我的表格:

<form *ngIf="!isLogin" (submit)="onRegisterSubmit()" [formGroup]="registerForm">
                            <div class="form-control">
                                <input type="text" name="firstname" id="firstname" class="form-control" placeholder="Firstname" formControlName="fn">
                                <div class="throw_error" *ngIf="registerForm.controls.fn.invalid && registerForm.controls.fn.touched">
                                    <div *ngIf="registerForm.controls.fn.errors?.required">This field is required</div>
                                    <div *ngIf="registerForm.controls.fn.errors?.minlength">This field must be at least 3 characters</div>
                                    <div *ngIf="registerForm.controls.fn.errors?.maxlength">This field must have at most 10 characters</div>
                                </div>
                            </div>
                            <div class="form-control">
                                <input type="text" name="lastname" id="lastname" class="form-control" placeholder="Lastname" formControlName="ln">
                                <div class="throw_error" *ngIf="registerForm.controls.ln.invalid && registerForm.controls.ln.touched">
                                    <div *ngIf="registerForm.controls.ln.errors?.required">This field is required</div>
                                    <div *ngIf="registerForm.controls.ln.errors?.minlength">This field must be at least 3 characters</div>
                                    <div *ngIf="registerForm.controls.ln.errors?.maxlength">This field must have at most 10 characters</div>
                                </div>
                            </div>
                            <div class="form-control">
                                <input type="email" name="email2" id="email2" class="form-control" placeholder="Email Address" formControlName="email2">
                                <div class="throw_error" *ngIf="registerForm.controls.email2.invalid && registerForm.controls.email2.touched">
                                    <div *ngIf="registerForm.controls.email2.errors?.required">This field is required</div>
                                    <div *ngIf="registerForm.controls.email2.errors?.email && !registerForm.controls.email2.errors?.required">This email is invalid</div>
                                </div>
                            </div>
                            <div class="form-control">
                                <input type="password" name="password2" id="password2" class="form-control" placeholder="Password" formControlName="password2">
                                <div class="throw_error" *ngIf="registerForm.controls.password2.invalid && registerForm.controls.password2.touched">
                                    <div *ngIf="registerForm.controls.password2.errors?.required">This field is required</div>
                                    <div *ngIf="registerForm.controls.password2.errors?.minlength">This field must be at least 6 characters</div>
                                    <div *ngIf="registerForm.controls.password2.errors?.maxlength">This field must have at most 15 characters</div>
                                </div>
                            </div>
                            <div class="form-control">
                                <input type="password" name="confirmPassword" id="confirm-password" class="form-control" placeholder="Confirm Password" formControlName="confPass">
                                <div class="throw_error" *ngIf="registerForm.controls.confPass.touched && registerForm.controls.confPass.errors?.MatchPassword">Passwords do not match</div>
                            </div>
                            <div class="form-control">
                                <div class="row">
                                    <div class="col-sm-3"></div>
                                    <div class="col-sm-6">
                                        <input type="submit" name="register-submit" id="register-submit" [disabled]="registerForm.invalid" 
                                                class="form-control btn btn-register" value="Submit">
                                        <span class="throw_error" id="success">{{resultReg}}</span>
                                    </div>
                                    <div class="col-sm-3"></div>
                                </div>
                            </div>
                        </form>

这是我的注册功能打字稿代码:

onRegisterSubmit() {
const regFormValue = this.registerForm.value;

this.http.post("http://localhost/ProjetErgonomie/RegUser.php", regFormValue)
  .subscribe(data => {
    this.receivedData = data;
    if (this.receivedData.success) {
      this.resultReg = "User added successfully";
    } else {
      this.resultReg = this.receivedData.errors;
    }
  }, (error) => {
    console.log(error);
  });
 }

这是我的 RegUser.php 页面:

<?php
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Origin: *");

require_once ('./DBConnect.php');
$conn = mysqli_connect($servername, $username, $password, $db ,$port);

$regUserData = json_decode(file_get_contents("php://input"),true);
$fn = $regUserData['fn'];
$ln = $regUserData['ln'];
$email = $regUserData['email2'];
$pass = $regUserData['password2'];
$confPass = $regUserData['confPass'];  

$errorsReg = "";
$dataReg=array();

if($fn === '' || $ln === '' || $email === '' || $pass === '' || $confPass === ''){
    $errorsReg = 'Please fill all fields';
    $dataReg['success'] = FALSE;
}

else{
    $checkUserQuery = "select * from user where Email = '".$email."'";
    $result = $conn->query($checkUserQuery);
    if(mysqli_num_rows($result)>0){
        $errorsReg = 'User already exists';
        $dataReg['success'] = FALSE;
    }
    else{
        $sql = "INSERT INTO user (Firstname, Lastname, Email, Password, NewUser)
            VALUES ('".$fn."','".$ln."','".$email."','".md5($pass)."',1)";
        mysqli_query($conn,$sql);
        $dataReg['success'] = TRUE;
    }
}
$dataReg['errors']=$errorsReg;
echo json_encode($dataReg);

你能告诉我为什么在插入正确的行之前我得到一个空白行吗?

标签: phpmysqlangular

解决方案


推荐阅读