doudu5029 2014-11-12 06:22
浏览 77
已采纳

提交表单后显示错误消息

i have a registration form in which i have placed a check on email id and status so that a person cannot signup again with the same email. Both the form and script are on a single page and the page is in .php format. The problem is that although the check works fine but i am not able to display an error message in front of email box. would appreciate if someone could help me

<form role="form" action="" autocomplete="off" method="POST">

    <div class="input-group">
        <span class="input-group-addon"><i class="fa fa-user"></i></span>
            <input type="name" class="form-control" name="name" placeholder="Company Name" required>
    </div>
    <span class="help-block"></span>

    <div class="input-group">
        <span class="input-group-addon"><i class="fa fa-user"></i></span>
            <input type="email" class="form-control" name="email" placeholder="email address" required>
    </div>
    <span><?php echo $errormsg;?></span>

    <div class="input-group">
        <span class="input-group-addon"><i class="fa fa-lock"></i></span>
            <input  type="password" class="form-control" name="password" placeholder="Password" required>
    </div>
    <span class="help-block"></span>

    <div class="input-group">
        <span class="input-group-addon"><i class="fa fa-user"></i></span>
            <input type="tel" id="tel" class="form-control" name="phoneno" pattern="\d{10}" placeholder="Please enter a ten digit phone number" required />
    </div>
    <span class="help-block"></span>
    <input class="form-control" value="" type="hidden" name="status">

    <button class="btn btn-lg btn-primary btn-block" name="submit" type="submit">Sign Up</button>

</form>

<?php
$con=mysqli_connect("localhost","root","","db");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// escape variables for security
$name = mysqli_real_escape_string($con, $_POST['name']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$phoneno = mysqli_real_escape_string($con, $_POST['phoneno']);
$status = mysqli_real_escape_string($con, $_POST['status']);

$sql = "SELECT * FROM register WHERE email='".$email."' AND status='1'";
$result = mysqli_query($con, $sql); 
if (mysqli_num_rows($result) > 0)
{
    $errormsg="email already exist";
}
else
{
    $sql="INSERT INTO register (name,email,password,phoneno,status) VALUES ('$name','$email','$password','$phoneno','1')";
    if (!mysqli_query($con,$sql)) 
    {
        die('Error: ' . mysqli_error($con));
    }
    exit;
    mysqli_close($con);
}
?>
  • 写回答

3条回答 默认 最新

  • dongpengyu1363 2014-11-12 06:31
    关注

    If all code is in single file then you shift the PHP code above the html code, why the error is not showing the html is rendering first before executing the PHP code? i.e:

    <?php
    $con=mysqli_connect("localhost","root","","db");
    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    
    // escape variables for security
    $name = mysqli_real_escape_string($con, $_POST['name']);
    $email = mysqli_real_escape_string($con, $_POST['email']);
    $password = mysqli_real_escape_string($con, $_POST['password']);
    $phoneno = mysqli_real_escape_string($con, $_POST['phoneno']);
    $status = mysqli_real_escape_string($con, $_POST['status']);
    
    $sql = "SELECT * FROM register WHERE email='".$email."' AND status='1'";
    $result = mysqli_query($con, $sql); 
    if (mysqli_num_rows($result) > 0)
        {
            $errormsg="email already exist";
        }
    else{
    $sql="INSERT INTO register (name,email,password,phoneno,status) VALUES ('$name','$email','$password','$phoneno','1')";
            if (!mysqli_query($con,$sql)) 
                {
                    die('Error: ' . mysqli_error($con));
                }
            exit;
    mysqli_close($con);
    }
    ?>
    <form role="form" action="" autocomplete="off" method="POST">
    
        <div class="input-group">
            <span class="input-group-addon"><i class="fa fa-user"></i></span>
                <input type="name" class="form-control" name="name" placeholder="Company Name" required>
        </div>
        <span class="help-block"></span>
    
        <div class="input-group">
            <span class="input-group-addon"><i class="fa fa-user"></i></span>
                <input type="email" class="form-control" name="email" placeholder="email address" required>
        </div>
        <?php echo $errormsg;?></span>
    
        <div class="input-group">
            <span class="input-group-addon"><i class="fa fa-lock"></i></span>
                <input  type="password" class="form-control" name="password" placeholder="Password" required>
        </div>
        <span class="help-block"></span>
    
        <div class="input-group">
            <span class="input-group-addon"><i class="fa fa-user"></i></span>
                <input type="tel" id="tel" class="form-control" name="phoneno" pattern="\d{10}" placeholder="Please enter a ten digit phone number" required />
        </div>
        <span class="help-block"></span>
        <input class="form-control" value="" type="hidden" name="status">
    
        <button class="btn btn-lg btn-primary btn-block" name="submit" type="submit">Sign Up</button>
    
    </form>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大