-2

我正在使用 Apache 2.4.3、MySQL 5.5.27、PHP 5.4.7、phpMyAdmin 3.5.2.2。请帮助我,我不知道这一点就无法走得更远。在我下面的代码中$errors[]='All fields required';,这对我不起作用。在我将其更改为echo 'All fields required';. 但这段代码取自一个视频教程,对他有用。谁能告诉我它不适合我的原因?

这是我的代码:

<?php
include 'ini.php';
?>

<form action="register.php" method="post">
   <p>Username:<br/><input type="text" name="reg_u_name" maxlength="20" ></p> 
   <p>Password:<br/><input type="password" name="reg_password" maxlength="20" ></p>
   <p><input type ="submit" value="Register" ></p>
</form>

<?php
if (isset( $_POST['reg_u_name'], $_POST['reg_password'] )) {
   $reg_u_name = $_POST['reg_u_name'];
   $reg_password = $_POST['reg_password'];

   $errors = array();

   if (empty($reg_u_name) || empty($reg_password)) {
      $errors[] = 'All fields required';
   } else {
      if (strlen($reg_u_name) > 50 || strlen($reg_password) > 50) {
         $errors[] = 'One or more fields contains too many characters';
      }
   }
}
?>

如果有人投反对票,请说明原因

4

5 回答 5

1

在您的 if-conidtion 尝试输入以下代码后:

foreach($errors as $error) {
  echo "$error<br/>\n";
}
于 2013-04-25T04:54:07.663 回答
0
if ( isset( $_POST['reg_u_name']) && isset($_POST['reg_password']) ) {

请尝试使用这个

于 2013-07-23T04:41:45.777 回答
0

如果代码在同一页面中,则表单操作将为空白

<form action="" method="post">
于 2013-04-25T04:51:17.310 回答
0

您正在尝试将错误消息“所需的所有字段”放入数组中,您需要打印该数组

像这样

 print_r($errors);
于 2013-04-25T04:51:54.673 回答
0
if( isset ( $_POST['reg_u_name']) && isset($_POST['reg_password'])) {
echo $reg_u_name = $_POST['reg_u_name'];
echo $reg_password = $_POST['reg_password'];

$errors = array();

if (empty($reg_u_name) || empty($reg_password)) {
    $errors[0]= 'All fields required';
}else{
    if (strlen($reg_u_name) > 50 || strlen($reg_password) > 50){
        $errors[0]= 'One or more fields contains too many characters';
    }
}

echo '<pre>';print_r($errors); echo '<pre>';
}

现在工作

于 2013-04-25T04:58:22.867 回答