gpt4 book ai didi

php - PHP验证不起作用

转载 作者:行者123 更新时间:2023-12-03 09:03:51 25 4
gpt4 key购买 nike

我正在开发一个简单的注册表格,可以用php进行验证。问题不在于验证,而不是屏幕上的确认,我单击提交按钮后什么也没有发生,没有错误或刹车没有告诉我错误是什么,我相信我的逻辑是正确的,但我相信可能有一个错误。

会建议或建议我的问题

register.php

<?php
require_once 'core/init.php';

if(Input::exists()) {
$validate = new Validate();
$validation = $validate->check($_POST, array(
'username' => array(
'required' => true,
'min' => 2,
'max' => 20,
'unique' => 'users'
),
'password' => array(
'required' => true,
'min' => 6
),
'password_again' => array(
'required' => true,
'matches' => 'password'
),
'name' => array(
'required' => true,
'min' => 2,
'max' => 50
),
));

if($validation->passed()) {
echo 'Passed';
} else {
print_r($validation->errors());
}

}
?>

<form action="" methord="post">
<div class="field">
<lable for="username">Username</lable>
<input type="text" name="username" id="username" value="<?php echo escape(Input::get('username')); ?>" autocomplete="off">
</div>

<div class="field">
<lable for="password">Choose Your Password</lable>
<input type="password" name="password" id="password">
</div>

<div class="field">
<lable for="password_again">Verify Password</lable>
<input type="password" name="password_again" id="password_again">
</div>

<div class="field">
<lable for="name">Your Name</lable>
<input type="text" name="name" value="<?php echo escape (Input::get('name')); ?>" id="name">
</div>

<input type="submit" value="Register">
</form>

Validation.php
   <?php
class Validate {
private $_passed = false,
$_errors = array(),
$_db = null;

public function __contruct() {
$this->_db = DB::getInstance();
}

public function check($source, $items = array()) {
foreach($items as $item => $rules) {
foreach($rules as $rule => $rule_value) {

$value = $source[$item];

if($rule == 'required' && empty($value)) {
$this->addError("{$item} is required")
} else {

}

}
}

if(empty($this->_errors)) {
$this->_passed = true;
}

return $this;
}

private function addError() {
$this->_errors[] = $error;
}

public function errors() {
return $this->_errors;
}

public function passed() {
return $this->_passed;
}
}

更新

已经纠正了@PeteR正确指出的错字,但是仍然存在回显验证没有打印出来的问题。

链接形成

http://stuweb.cms.gre.ac.uk/~ob219/membership/register.php

最佳答案

看来您有错字,伙计。

if($rule == 'requierd' && empty($value)) {

您在这里也缺少分号:
$this->addError("{$item} is required");
----^

还有另一个错字:
<form action="" methord="post">

应该是方法...

最后,尝试以下操作:
private function addError($error) {

关于php - PHP验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21003319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com