2013-04-25 5 views
-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 не работает должным образом

Вот мой код:

<?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'; 
     } 
    } 
} 
?> 

Если кто-то дает отрицательные отзывы пожалуйста скажите причину

ответ

0

Если код находится в той же странице, то форма действия будет пустым

<form action="" method="post"> 
+0

Thats хорошо, вы можете сказать, почему $ errors [] работа и эхо-работа –

+0

я удаляю $ errors и помещаю эхо там не в первые $ ошибки во втором и третьем –

+0

@ Со, какая часть его эха «Обязательные поля» ИЛИ «В одном или нескольких полях содержится слишком много символов?» –

0

Вы пытаетесь поместить сообщение об ошибке «Все поля, необходимые» в массив, вам необходимо распечатать этот массив

как этот

print_r($errors); 
+0

Я пробовал это уже, но не работает –

1

После Вашего если-conidtion попытайтесь поместить этот код:

foreach($errors as $error) { 
    echo "$error<br/>\n"; 
} 
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>'; 
} 

работает в настоящее время

+0

Это условие OP правильное. –

+0

не работает, ошибки не отображаются, когда я нажимаю кнопку отправки –

+0

$ errors [] = '...'; отлично. Он добавляет присвоенное значение в массив. –

0
if (isset($_POST['reg_u_name']) && isset($_POST['reg_password'])) { 

плз пытаются использовать этот один

Смежные вопросы