по заверениям автора (Энди харрис)
программа начинает свою работу с проверки
существования переменной $userName.
Когда программа запускается в первый раз эта переменная не будет существовать и это приведет к созданию формы. а уже когда вызывваем программу саму из себя (нажимаем на кнопку - то дескать выведется сообщение)
но этого почему то не происходит.
где ошибка?
<html>
<head>
<title>Hi USER</title>
</head>
<body>
<h1>Please enter you name</h1>
<?php
if (empty($userName))
print <<<LABEL
<form>
<input type = "text"
name = "userName"><br>
<input type = "submit">
</form>
LABEL;
else
{
print "<h3>Hi, $$userName</h3>";
}
?>
</body>
</html>
код сохраняю в файл *.php и не надо глупых уточнений - апач и пхп запущены и работают (usbWebserver)
Спустя 19 минут, 48 секунд (3.02.2010 - 03:43) Lenarfate написал(а):
дело в том, что твоя переменная userName передается методом get. тут нужно передать ее post'ом и соответственно предварительно инициализировать.
например, так:
обрати внимание на это
например, так:
<html>
<head>
<title>Hi USER</title>
</head>
<body>
<h1>Please enter you name</h1>
<?php
$userName = !empty($_POST['userName']) ? $_POST['userName'] : null;
if (empty($userName))
print '<form method="post">
<input type = "text" name = "userName"><br>
<input type = "submit">
</form>' ;
else
{
print "<h3>Hi, $userName</h3>";
}
?>
</body>
</html>
обрати внимание на это
$userName = !empty($_POST['userName']) ? $_POST['userName'] : null;и на это
<form method="post">
Спустя 6 часов, 27 минут, 57 секунд (3.02.2010 - 10:11) lexalex написал(а):
Lenarfate спасибо, помогло:)
а можешь посоветовать книжку где хотя бы код в примерах написан без ошибок?
и где написано про эту строку
? - это што - в пхп означает "или" или што? Как вообще эту строчку на русский перевести?
а можешь посоветовать книжку где хотя бы код в примерах написан без ошибок?
и где написано про эту строку
$userName = !empty($_POST['userName']) ? $_POST['userName'] : null;
? - это што - в пхп означает "или" или што? Как вообще эту строчку на русский перевести?
Спустя 44 минуты, 6 секунд (3.02.2010 - 10:55) Gradus написал(а):
в переводе
$a=(условие)?правда:лож;
тоесть у вас переменная $userName будет равна переменной из пост если она есть , если нет то $userName будет равен null
проще говоря это оператор if в одну строку
$a=(условие)?правда:лож;
тоесть у вас переменная $userName будет равна переменной из пост если она есть , если нет то $userName будет равен null
проще говоря это оператор if в одну строку
Спустя 49 минут (3.02.2010 - 11:44) Lenarfate написал(а):
можешь почитать Дмитрия Котерова "php в подлиннике". и так же обязательно вот это php.inkz.ru
Спустя 1 час, 6 минут, 57 секунд (3.02.2010 - 12:51) Joker написал(а):
lexalex извини за оффтоп но выкинь эту книгу) попов и то лучше показывает чем этот код.
Спустя 13 минут, 17 секунд (3.02.2010 - 13:04) arlamar написал(а):
нет там ошибки. просто автор показывает примеры с включенной register_globals
и я уверен если почитать внимательней книгу то где нибудь вначале об этом говорится
и я уверен если почитать внимательней книгу то где нибудь вначале об этом говорится
Спустя 1 час, 1 минута, 52 секунды (3.02.2010 - 14:06) twin написал(а):
Скорее всего это старая книга. Не удивлюсь, что там все построено на 4-й версии php. Лучше взять что то посовременнее. Котеров действительно красиво пишет, вот тут еще можно порыться.
Спустя 5 часов, 50 минут, 23 секунды (3.02.2010 - 19:56) baston написал(а):
Цитата (lexalex @ 3.02.2010 - 10:11) |
? - это што - в пхп означает "или" или што? Как вообще эту строчку на русский перевести? |
Это тернарный оператор. Подробно описано (и понятно) здесь: ссылка
Спустя 3 часа, 58 минут, 10 секунд (3.02.2010 - 23:54) darksmile написал(а):
незнаю, я не читал эту книгу и может ошибаюсь... но всеже как по мне в скрипте неправильно сделано условие, должно быть примерно так
<html>
<body>
<? if (3==3) { ?> // если 3 равняется 3
<h3>ddfdf</h3> // то выводим в тегах <h3>
<?
} else { // если не равняется то выводим без тегов
echo "dddd";
}
?>
</body>
</html>
Спустя 2 минуты, 40 секунд (3.02.2010 - 23:57) Lenarfate написал(а):
во-первых, не надо мешать html с php , а во-вторых, не помню я в этой книге ничего подобного...
Спустя 3 минуты, 11 секунд (4.02.2010 - 00:00) lexalex написал(а):
нашел - там опечатка. там перед елсе скобочка круглая а надо кривая..
Спустя 3 минуты, 42 секунды (4.02.2010 - 00:04) sergeiss написал(а):
Цитата (Lenarfate @ 4.02.2010 - 00:57) |
не надо мешать html с php |
Почему же? Вполне возможный вариант. Особенно, когда используется визуальная среда разработки типа Дримвивера.
Правда, тогда и ту часть, которая идет в else, надо тоже в html выводить. Чтобы в визуальном окне было видно обе части.
Спустя 23 минуты, 49 секунд (4.02.2010 - 00:28) Lenarfate написал(а):
Дримвивером не пользуюсь)