Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Уважаемые программисты, пожалуйста помогите с кодом.

32K
14 февраля 2008 года
neyron-net
19 / / 14.02.2008
форма index.php

<h3>Сгенерировать страничку</h3>
<form action="site.php" method=post>
<p>Введите название странички</p>
<input type=text name=page1>
<p>Имя шапки дизайна</p>
<input type=text name=name1>
<br>
<input type=submit value="Поехали">
</form>

файл site.php

<?php

$HTTP_POST_VARS['title']='<title><? print $name1 ?></title>';



$HTTP_POST_VARS['table']='

<table width=100% border=1><tr><td>Тестовая шапка</td></tr></table>';

$file1=fopen('./page/'.$_POST["page1"].'.html','w');

fputs ($file1,$HTTP_POST_VARS['title']);
fputs ($file1,$HTTP_POST_VARS['table']);

fclose($file1);
?>

Скажите пожалуйста как добавить title к генерируемой страничке, я лох в php.
нужно чтобы генерилась страничка и выводился текст в теге title, который вводишь через форму.
32K
14 февраля 2008 года
neyron-net
19 / / 14.02.2008
Простите, ошибся вверху не index.php, а index.html
32K
14 февраля 2008 года
neyron-net
19 / / 14.02.2008
Никто не хочет помогать))) ну ладно, сам себе поотвечаю......нужка как то экранировать переменную $name1 или занести ее в массив, может поюзать List c each????
244
14 февраля 2008 года
UAS
2.0K / / 19.07.2006
учи html разметку документа..

title должен быть в <head> документа.. а тело в <body>

RTFM короче
32K
14 февраля 2008 года
neyron-net
19 / / 14.02.2008
Так при чем тут разметка, в новой страничке в title выводиться такая хрень <? print $name1 ?>. Как титл взять из переменной введенной с формы........народ вы меня совсем за лоха держите)))))) как экранировать переменную, я кучу инфы перелопатил про POSIX и т.д. но не нашел ответа.
4
14 февраля 2008 года
mike
3.7K / / 01.10.2002
Ууууу, как все запущено

 
Код:
<h3>Сгенерировать страничку</h3>
<form action="site.php" method=post>
<p>Введите название странички</p>
<input type=text name=page1>
<p>Имя шапки дизайна</p>
<input type=text name=name1>
<br>
<input type=submit value="Поехали">
</form>


Код:
<?php

$title='<title>'.htmlspecialchars($name1).'</title>';
$table='<table width=100% border=1><tr><td>Тестовая шапка</td></tr></table>';

$filename=$_POST["page1"];
if (!ereg("^[a-zA-Z0-9]+$", $filename, $regs)) {
    die('Wrong file name');
    }
$file1=fopen('./page/'.$filename.'.html','w');

fputs ($file1,$title);
fputs ($file1,$table);

fclose($file1);
?>
32K
14 февраля 2008 года
neyron-net
19 / / 14.02.2008
Спасибо огромное mike, я совсем забыл про htmlspecialchars......буду дальше ботать синтаксис php.
1.8K
14 февраля 2008 года
Валериус
190 / / 14.07.2006
neyron-net, дело не в htmlspecialchars(), эта функцаия введена mike'ом из соображений безопасности. Дело в том, что ты внутри php-кода пытаешься снова обозначить начало php-кода, а так же используешь ненужный в данном случае оператор print. Внимательно смотри на эту часть своего листинга (строки 1-3, site.php):
 
Код:
<?php

$HTTP_POST_VARS['title']='<title><? print $name1 ?></title>';

Надо либо сменить тип кавычек и просто написать "<title>$name1</title>", либо с теми же кавычками использовать конкатеницию (сложение строк): '<title>'.$name1.'</title>'.
Читай внимательно про виды кавычек в PHP.
8
14 февраля 2008 года
mfender
3.5K / / 15.06.2005
Добавлю к Валериус'у, что так же в php приято использовать для простых переменных (без использования функций) фигурные скобки. Т.е. строку

 
Код:
$title = '<title>'. $name1 .'</title>';
можно написать так же и как
 
Код:
$title = "<title>{$name1}</title>";
кому как, но мне в плане наглядности и неперенасыщенности кода этот вариант очень даже нравится.
32K
14 февраля 2008 года
neyron-net
19 / / 14.02.2008
Огромное спасибо всем за ответы, я нашел свою ошибку, она была в Denwer 2008 выпуска)))))) я тестировал $title='<title>'.$_POST['name1'].'</title>';

fputs($f,$title);

этот кусок кода заработал на сборке Denwer 2006 года..... можете проверить сами. 2008 сборка HTTP сервака не принимает потоком переменные $_POST в файл.))))))))) очень интересная находка, надо написать админу проекта Denwer. ЕЩЕ РАЗ ВСЕМ СПАСИБО ЗА ОТВЕТЫ. ВАШ САЙТ ЛУЧШИЙ ИЗ ЛУЧШИХ
8
14 февраля 2008 года
mfender
3.5K / / 15.06.2005
на самом деле сборка тут не причём )))) это дело в параметре register_globals
32K
14 февраля 2008 года
neyron-net
19 / / 14.02.2008
запостил на форум DENWER, жду объяснений))))))
32K
14 февраля 2008 года
neyron-net
19 / / 14.02.2008
Уважаемый mfender спасибо за подсказку. я мало что знаю про php.ini, но знаю только два параметка register_globals (ON/OFF), если OFF, то $_POST['name1']=$name1
8
14 февраля 2008 года
mfender
3.5K / / 15.06.2005
когда-то были такие времена, что register_globals был включён кое-где (не знаю, из каких соображений), и всеми переменными в глобальных массивах ($_POST, $_GET, $_COOKIE и пр.) можно было пользоваться как обычными переменными, всмысле, писать их имена как обычную переменную, не элемент массива. Это вносило страшную путаницу и сумятицу, и даже могло в некоторой степени нарушить безопасность.

Поэтому уже давно принято эту опцию отключать (default), а скоро её совсем уже не будет.
32K
15 февраля 2008 года
neyron-net
19 / / 14.02.2008
Спасибо, буду знать)))))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог