OK problem polega na tym, że kiedy używam funkcji przycinania nie działa, ale gdy uruchamiam kod bez funkcji przycinania działa, ale nie działa prawidłowo (formularz akceptuje białe spacje .)
<?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 } ?>
próbowałem ręcznego http://php.net/manual/en/function.trim.php ale to było trudne do odczytania i nie dowiedzieć się czegoś
Nie możesz przekaż wynik 'trim()' bezpośrednio do 'empty()'. Włącz raportowanie błędów, a zobaczysz związane z nim błędy. 'empty()' wymaga _variable_ jako swojego argumentu, więc musisz najpierw zapisać 'trim ($ _ POST [])' w vars, a następnie przetestować przez 'empty()' –
'error_reporting (E_ALL); ini_set ('display_errors', 1); '_always_ zrób to podczas tworzenia kodu. –
Nota boczna: Zdaje się, że licznik jest intuicyjny, aby "unsetować" zmienną, a następnie natychmiast sprawdzić, czy jest ustawiony za pomocą 'isset'. – phpisuber01