Re: Не понимаю в PHP include?

N9Acad

Не понимаю в PHP include?
********************
файл "index.php"
********************
...
<body>
<form action="gbook.php" method="post">
Имя: <input type="text" name="gbname"/><br/>
Город: <input type="text" name="gbcity"/><br/>
E-Mail: <input type="text" name="gbmail"/><br/>
ICQ: <input type="text" name="gbicq"/><br/>
Заголовок: <input type="text" name="gbheader"/><br/>
Текст: <textarea cols=20 ROWS=10 name="gbooktext"></textarea><br/>
<input type="submit" value="CLICK ME"/>
</form>
...
**********************
файл "gbook.php"
**********************
<body>
<?php
$gbname = $_POST['gbname'];
$gbcity = $_POST['gbcity'];
$gbmail = $_POST['gbmail'];
$gbicq = $_POST['gbicq'];
$gbheader = $_POST['gbheader'];
$gbooktext = $_POST['gbooktext'];
$gbook = $gbname.";\t".$gbcity.";\t".$gbmail.";\t".$gbicq.";\t".$gbheader.";\t".$gbooktext.";\n";
//Открытие файла
$gbookopen = fopen ("gbook.txt", "a+") or die ("Ошибка открытия файла");
//Запись в файл
fwrite ($gbookopen, $gbook) or die ("Ошибка записи файла");
//Закрытие файла
fclose ($gbookopen) or die ("Ошибка закрытия файла");
echo "Ваше сообщение в гостевую книгу добавлено"."<br>";
echo "<a href=index.php>Вернуться на главную</a>";
?>
...
**************
Вот так у меня всё получается нормально, все поля записываются в файл.
А вот когда я беру форму, засовываю её в другой файл, а затем вызываю её инклюдом, то
почему-то в файл записывается только значение поля
Текст: <textarea cols=20 ROWS=10 name="gbooktext"></textarea>
Вот смотрите сами:
**********************
файл "gbook.php"
**********************
...
<?php
include "gbform.php"
?>
...
**********************
файл "gbform.php"
**********************
<?php
echo "<form action=gbook.php method=post>";
echo "Имя: <input type=text name=gbname/><br/>";
echo "Город: <input type=text name=gbcity/><br/>";
echo "E-Mail: <input type=text name=gbmail/><br/>";
echo "ICQ: <input type=text name=gbicq/><br/>";
echo "Заголовок: <input type=text name=gbheader/><br/>";
echo "Текст: <textarea cols=20 ROWS=10 name=gbooktext></textarea><br/>";
echo "<input type=submit value=CLICK ME/>";
echo "</form>";
?>
**********************
ЧТО ДЕЛАТЬ ПОДСКАЖИТЕ НАЧИНАЮЩЕМУ ПРОГРАММЕРУ

stm7884696

Надо писать так:
<?php
echo "<form action=\"gbook.php\" method=\"post\">";
echo "Имя: <input type=\"text\" name=\"gbname\" /><br />";
echo "Город: <input type=\"text\" name=\"gbcity\" /><br />";
echo "E-Mail: <input type=\"text\" name=\"gbmail\" /><b />";
echo "ICQ: <input type=\"text\" name=\"gbicq\" /><br />";
echo "Заголовок: <input type=\"text\" name=\"gbheader\" /><br />";
echo "Текст: <textarea cols=\"20\" rows=\"10\" name=\"gbooktext\"></textarea><br />";
echo "<input type=submit value=\"CLICK ME\" />";
echo "</form>";
?>
Первый баг:
научись юзать обслешивание \"
Второй баг:
Раз уж взялся писать по стандартам - разботай, что перед /> ВСЕГДА должен стоять пробел!
Собссно из-за этого и не работало...
Да, и еще, ты мог бы просто заинклюдить файло такого содержания:
<form action="gbook.php" method="post">

Имя: <input type="text" name="gbname"/><br/>
Город: <input type="text" name="gbcity"/><br/>
E-Mail: <input type="text" name="gbmail"/><br/>
ICQ: <input type="text" name="gbicq"/><br/>
Заголовок: <input type="text" name="gbheader"/><br/>
Текст: <textarea cols=20 ROWS=10 name="gbooktext"></textarea><br/>
<input type="submit" value="CLICK ME"/>

</form>
При этом не надо его зачовывать в теги <? ?>, а обзывать можешь как хочешь..
Результат - тот же самый...

N9Acad

Спасибо Алексус, щас буду пробовать.
Большое спасибо.
Я тут просто 2 дня назад книжку по ПХП прочёл, зажёгся и вот сижу и ботаю его.

stm7884696

а я ее прочел полтора года назад...
до сих пор себя ламаком считаю, хотя раз в пол года находит прозрение ака "великий кодер" )

N9Acad

Спасибо Алексус, спасибо, получилось.
ДУмаю, что это не последнее моё обращение к добрым людям в форуме

artimon

Раз уж взялся писать по стандартам - разботай, что перед /> ВСЕГДА должен стоять пробел!
Гон.
По стандарту это пофигу, а пробел там ставят, что б не вводить в ступор динозаврообразные браузеры.
И потом, вовсе не факт, что там вообще нужен закрывающий слеш. Он нужен только если DOCTYPE xhtml, во что я, честно говоря, плохо верю.

feliks28

А зачем там вообще слэш нужен?

artimon

Поскольку xhtml — это XML, все теги болжны быть закрыты.
Правда, как я уже писал, я не уверен, что у автора xhtml, а в html теги link, br и т.д. запрещено закрывать.

Ivan826

Ссылочку в студию, причём желательно на документ w3c.org

Ivan826

Сорри, не написал
На то что в html закрывать одночные теги запрещено

artimon

http://www.w3.org/TR/html401/index/elements.html
Колонка End Tag.
Собственно, поскольку старый стандарт html был очень либерален к ошибкам, то ничего страшного не произойдёт, если закрыть пустой тег. Просто некоторые браузеры (как я уже писал, мне лень выяснять какие именно) совсем плохо воспринимают конструкции вида <br/>, а конструкция <br /> работает, потому что они считают, что „/“ — это просто случайно напечатанный символ и радостно его игнорируют.

mkolyaskin

за то вовсех браузерах рулит...

artimon

Ты о чём?

mkolyaskin

хуй знает...а ты?
вспоминается анекдот
-Вась.А Вась
-36
-Чаво 36?
-А чаво Вась?

stm7884696

гон - не гон, а пробел нужон...
обоснование: между стандартом и восприятием кода ЛЮБЫМ браузером ВСЕГДА есть отличия!
Данный случай лучше взять за правило, чем потом выяснять, а почему же у меня здесь не работает...
А чел скорее всего и не знает ничего ни про какие там стандарты, просто то, в чем он пишет стало закрывать теги по умолчанию... Хотя, непонятно, почему так криво... Или может он просто пример из книжки умной списал, а пробелы посчитать забыл...

artimon

Ты бы сначала почитал, что мы тут понаписали, пока тебя не было.

stm7884696

я кажись в тему ответил...
А вот ты мой пост прочитать поленился...

artimon

Я прочитал
Раз уж взялся писать по стандартам - разботай, что перед /> ВСЕГДА должен стоять пробел!
Гон было сказано на эту фразу.
Потому что, как раз по стандарту это пофигу. Правильное обоснование постановки пробела написано выше.

stm7884696

Молодец...
пирожка вот только нет...
Оставить комментарий
Имя или ник:
Комментарий: