我刚刚开始学习PHP,所以很抱歉这是一个愚蠢的问题。我正在按照教程创建登录/注册表单,该表单使用PHP将数据保存在Mysql DB中。
所以我有3个文件:
在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 ?>