PHP - strlen не работает - PullRequest
       8

PHP - strlen не работает

3 голосов
/ 02 февраля 2012

В Register.php он содержит форму.

<html>
<body>

<form action="Insert.php" method="post">
Email: <input type="text" name="email" /><br/>
Username: <input type="text" name="username" /><br/>
<input type="submit" name="Send Registration" value="Send Registration"/>
</form>

</body>
</html>

В Insert.php он содержит коды, которые выполняют некоторые проверки.

<?php

if(!filter_var($_POST[email], FILTER_VALIDATE_EMAIL))
{
  exit("E-mail is not valid");
}
else
{
  if(!strlen($_POST[username])>=6)
  {
    exit("Username should be at least 6 characters");
  }
  else
  {
    // Continue other validations
  }
}

?>

Когда я ввожу неверный адрес электронной почтыНажмите кнопку «Отправить регистрацию», появится сообщение об ошибке «E-mail is not valid».Итак, я попытался ввести действующий адрес электронной почты и ввести 5 или менее символов в поле имени пользователя и нажать «отправить регистрацию».Но сообщение об ошибке не отображается.

Могу ли я узнать, что не так с моими кодами?
Извините, я новичок в программировании и php.
Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 02 февраля 2012

Ваша логика неверна:

if(!strlen($_POST[username])>=6)

Замените на: * также обратите внимание на 'символы в переменной (! Негатор заменяется на знак минус меньше, чем двойной, это легче понять, если вам придется просматривать много кода, вы можете пропустить ! "

if (strlen($_POST['username'])<6)

Надеюсь, это поможет.

Также то, что вы можете рассмотреть: Избавьтесь от «insert.php» и поместите код из ТО на ту же страницу, что и форма. Вы можете сделать что-то вроде этого:

Форма: <form method="post" action="'.$self.'">

(поставить в верхней части страницы в скобках PHP)

$self   = $_SERVER['PHP_SELF'];
$username   = $_GET['username'];
$email     = $_GET['email'];

Это зависит от того, как вы хотите, чтобы он был настроен, используйте POST или GET, я не могу сказать вам, что использовать.

Отсюда вы можете манипулировать своими переменными и чем угодно.

2 голосов
/ 02 февраля 2012

Попробуйте это:

<?php

if(!filter_var($_POST[email], FILTER_VALIDATE_EMAIL))
{
  exit("E-mail is not valid");
}
else
{
  $len = strlen($_POST["username"]);
  if($len<=5) {
  {
    exit("Username should be at least 6 characters");
  }
  else
  {
    // Continue other validations
  }
}

?>
2 голосов
/ 02 февраля 2012

Если вам нужно проверить не более 5 символов:


if(strlen($_POST["username"])<=5) {
  //show error
}


...