[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите со скриптом из книги
lexalex
вот собственно код.
по заверениям автора (Энди харрис)
программа начинает свою работу с проверки
существования переменной $userName.
Когда программа запускается в первый раз эта переменная не будет существовать и это приведет к созданию формы. а уже когда вызывваем программу саму из себя (нажимаем на кнопку - то дескать выведется сообщение)
но этого почему то не происходит. sad.gif
где ошибка?

<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 biggrin.gif спасибо, помогло:)
а можешь посоветовать книжку где хотя бы код в примерах написан без ошибок?
и где написано про эту строку
$userName = !empty($_POST['userName']) ? $_POST['userName'] : null;

? - это што - в пхп означает "или" или што? Как вообще эту строчку на русский перевести?

Спустя 44 минуты, 6 секунд (3.02.2010 - 10:55) Gradus написал(а):
в переводе
$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

Почему же? smile.gif Вполне возможный вариант. Особенно, когда используется визуальная среда разработки типа Дримвивера.
Правда, тогда и ту часть, которая идет в else, надо тоже в html выводить. Чтобы в визуальном окне было видно обе части.

Спустя 23 минуты, 49 секунд (4.02.2010 - 00:28) Lenarfate написал(а):
Дримвивером не пользуюсь)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.