【问题标题】:PHP- Form Validation ErrorsPHP- 表单验证错误
【发布时间】:2016-03-07 16:05:26
【问题描述】:

这是我第一次验证,我已经度过了最艰难的时光,已经花费了无数个小时。我有一个需要验证的注册表单,我为此尝试了 2 个脚本。效果最好的脚本如下所示:但是每次我尝试回显错误消息以显示在我的文本字段下时,我都会收到以下错误消息:


注意:未定义变量:/Applications/MAMP/htdocs/PhpProject2/Reg_1.php 中的 c_email 在第 161 行

注意:未定义变量:/Applications/MAMP/htdocs/PhpProject2/Reg_1.php 第 163 行中的 c_emailErr

注意:未定义变量:/Applications/MAMP/htdocs/PhpProject2/Reg_1.php 第 169 行中的 c_pass1Err

C_emailErr 和 c_pass1Err 都已定义。

任何帮助将不胜感激。

HTML

         <section class="container">
        <form id="myform " class="Form" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" accept-charset="utf-8">

            <!--<div id="first">-->
            <input type="email" id="email" name="email" placeholder="Email Address" value="<?= $c_email ?>" required >
            <br>
            <span class="error"><?php echo $c_emailErr; ?></span>
            <br>

            <figure>
                <input class ="login-field" type="password" id="pass1" name="pass1" value="<?= $c_pass1 ?>" placeholder="Password"  maxlength="30" required>
                <br>
                <span class="error"><?php echo $c_pass1Err; ?></span>
                <br>
                <input class ="login-field" type="password" id="pass2" name="pass2" value="" placeholder=" Confirm password" maxlength="30" required><!--<span class="error"><?php //echo $c_pass2Err;              ?></span>-->
                <div id="messages"></div>
            </figure>
            <p class="remember_me">
            </p>
            <input type="submit" name="submit" value="Register" id="submit_button" class="btn btn-default">
            <br>
        </form>

        <?php

        ?>

    </form>
</section>

PHP

 <?php
                if (isset($_POST['submit'])) {


                    $c_email = $_POST['email'];
                    $c_pass1 = $_POST['pass1'];
                    $c_pass2 = $_POST['pass2'];
                    $c_emailErr = $c_pass1Err = $c_pass2Err = "";
                    //Checking the email address
                    if (!filter_var($c_email, FILTER_VALIDATE_EMAIL) === false) {
                        echo ("<b  id='email'> This is a valid email address </b>");
                    } else {
                        echo ("<b id='email'> Email is not a valid email address</b>");
                    }
                    if (strlen($c_pass1) <= '8') {
                        echo "<b>Your Password Must Contain At Least 8  Characters!</br>";
                        //check passwords
                    } elseif ($c_pass1 == $c_pass2) {
                        $q = "INSERT INTO Cus_Register(Cus_Email,Cus_Password,Cus_confirm_password) VALUES (?,?,?)";
                        $stmt = mysqli_prepare($dbc, $q);
                        //new
                        // $stmt = mysqli_prepare($dbc, $insert_c);
                        //debugging
                        //$stmt = mysqli_prepare($dbc, $insert_c)  or die(mysqli_error($dbc));

                        mysqli_stmt_bind_param($stmt, 'sss', $c_email, $c_pass1, $c_pass2);


                        if ($q) {
                            echo "<script> alert('registration sucessful')</script>";
                        }
                    } else {
                        echo "<b>Oops! Your passwords do not </b>";
                    }
                }

                ?>  

【问题讨论】:

标签: php html validation


【解决方案1】:

您正在定义这些变量,但您是在if 块内定义它们。将它们移到if 块之外。

<?php
 $c_emailErr = $c_pass1Err = $c_pass2Err = "";

 if (isset($_POST['submit'])) {
     $c_email = $_POST['email'];
     $c_pass1 = $_POST['pass1'];
     $c_pass2 = $_POST['pass2'];

【讨论】:

  • 天啊!就是这样。你是活的救命恩人!非常感谢
  • 没问题!旧的第二双眼睛的东西:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多