Próbuję uruchomić kod z poziomu book. Wygląda na problem z kodem.Komunikat o błędzie: Błąd krytyczny: nie można użyć funkcji return> wartość w kontekście zapisu w
Oto komunikat błędu:
Fatal error: Can't use function return value in write context in /Applications/MAMP/htdocs/Eclipse-Workspace/simpleblog/test.php on line 24
Oto kod wymieniony w komunikacie (począwszy od linii 24)
if (!empty(trim($_POST['username']))
&& !empty(trim($_POST['email']))) {
// Store escaped $_POST values in variables
$uname = htmlentities($_POST['username']);
$email = htmlentities($_POST['email']);
$_SESSION['username'] = $uname;
echo "Thanks for registering! <br />",
"Username: $uname <br />",
"Email: $email <br />";
}
Będę wdzięczny za każdą pomoc. Daj mi znać, jeśli chcę podać więcej informacji:
Wielkie dzięki. To było bardzo szybkie. Rozwiązanie działa świetnie.
Problem polega na tym, że funkcję empty() należy zastosować tylko do zmiennych bezpośrednich.
Na przyszłość: Kod jest od 'PHP dla początkujących' Jason Lengstorf (2009), strony 90-91, rozdział 3, $ _SESSION
Kod poprawiony:
//new - Created a variable that can be passed to the empty() function
$trimusername = trim($_POST['username']);
//modified - applying the empty function correctly to the new variable
if (!empty($trimusername)
&& !empty($trimusername)) {
// Store escaped $_POST values in variables
$uname = htmlentities($_POST['username']);
$email = htmlentities($_POST['email']);
$_SESSION['username'] = $uname;
echo "Thanks for registering! <br />",
"Username: $uname <br />",
"Email: $email <br />";
}
Wielkie dzięki. To działa. Zaktualizowałem pytanie poprawionym kodem na wypadek, gdyby ktoś inny używał tej książki i napotkał problem. – ntc
Dziękuję bardzo za pytanie i udzielenie odpowiedzi na to pytanie z poprawionym kodem. Jestem nowicjuszem w PHP i programowaniu, a kiedy natknąłem się na literówkę w książce, zawsze uważam, że to tylko ja nie dostaję. Z ulgą umieszczamy właściwe rzeczy i widzimy, że działa! –
Myślę, że należy zauważyć, że to zachowanie dotyczy tylko wersji PHP <5.5, jak podano w [php.function.empty] (http://php.net/manual/en/function.empty.php) –