数组上的“未定义变量”

时间:2018-07-26 13:55:53

标签: php

我刚刚开始学习PHP,所以很抱歉这是一个愚蠢的问题。我正在按照教程创建登录/注册表单,该表单使用PHP将数据保存在Mysql DB中。

所以我有3个文件:

  • 首先,它的主要形式为:index.php
  • 第二,具有表单的功能。定义了包含错误的数组,并在此文件中填充了信息:registration.php
  • 第三,该文件的代码以HTML代码:errors.php显示错误(来自已定义并填充到文件中的数组:registration.php)

在index.php文件中,我在文件顶部添加了registration.php,但是在代码的特定位置包含了errors.php文件。

在该教程中,他没有错误,但是我有。是的,我将自己的代码与教程代码进行了比较,尽管在我的身上找不到问题。

完整错误是:

注意:未定义的变量:第1行的C:\ xampp \ htdocs \ Project \ errors.php中的错误 警告:count():参数必须是在第1行的C:\ xampp \ htdocs \ Project \ errors.php中实现Countable的数组或对象

index.php的一部分

<?php include('registration.php') ?>


<form action="registration.php" method="post">
              <?php include('errors.php'); ?>// here I include the error file
               <div>
                    <input type="text" id="IpNmSing" required name="username">
                    <label for="">Name</label>
                </div>
                <div>
                    <input type="email" id="IpEmSign" required name="email">
                    <label for="">Email</label>
                </div>
                <div>
                    <input type="password" id="IpPswSing" required name="password">
                    <label for="">Password</label>
                </div>
                <div>
                    <div class="signinBtn">
                       <input type="submit" value="Sign Up" name="reg_user">
                    </div>
                </div>
 </form>

registration.php的一部分

$errors = array(); 
$username = mysqli_real_escape_string($db, $_POST['username']);
$email = mysqli_real_escape_string($db, $_POST['email']);
$password = mysqli_real_escape_string($db, $_POST['password']);
// checkinf if there are any walues, if not the error is pushed inside the arr
//one of the parts that fills the array
if (empty($username)) { array_push($errors, "Username is required"); }
if (empty($email)) { array_push($errors, "Email is required"); }
if (empty($password_1)) { array_push($errors, "Password is required"); }

和errors.php文件

    <?php  if (count($errors) > 0) : ?>
  <div class="error">
    <?php foreach ($errors as $error) : ?>
      <p><?php echo $error ?></p>
    <?php endforeach ?>
  </div>
<?php  endif ?>

0 个答案:

没有答案