Хорошо, проблема в том, что когда я использую функцию trim, она не работает, но когда я запускаю код без функции обрезки, он работает, но не работает должным образом (форма принимает пробелы)
<?php session_start(); unset($_SESSION['username']); if (isset($_SESSION['username'])) {echo "You are in already";} else if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (!empty(trim($_POST['username'])) && !empty(trim($_POST['email']))) { $uname = htmlentities($_POST['username']); $email = htmlentities($_POST['email']); $_SESSION['username'] = $uname; echo "THANKS: " . $uname . "<br />"; } else { echo "fill the goddemn field"; } } else { ?> <form action="index.php" method="post"> <label for="username">USERNAME:</label> <input type="text" name="username" /> <label for="E-MAIL">E-mail:</label> <input type="text" name="email" /> <input type="submit" value="Enter" /> </form> <?php } ?>
Я попробовал руководство http://php.net/manual/en/function.trim.php, но было трудно читать, и я ничего не понял.
Как написано в руководстве PHP :
empty – определить, является ли переменная пустой
В вашем случае trim
– это вызов функции, а не переменная.
Если вы действительно хотите сделать свой оператор if
inline, вы можете использовать что-то вроде:
if (!empty($var=trim($_POST['username'])) && !empty($var=trim($_POST['email'])))
Но лучше реализовать:
$username = array_key_exists('username', $_POST) ? trim($_POST['username']) : null; $email = array_key_exists('email', $_POST) ? trim($_POST['email']) : null; if (!empty($username) && !empty($email)) { (...)