LINUX.ORG.RU

Вопросы совсем-совсем начинающего похапе-погромизда

 


0

1

Решил я тут всерьёз заняться пыхом и написать движок имиджборды (вопросы «нахрена» и т.п. не задавать, говорю сразу). Поскольку мои знания в php составляют 0,02%, то надеюсь на вашу помощь. Итак, вопрос раз. Написание я решил начать с написания установщика, который бы создавал конфиг-файл и записывал таблицу в БД. Установщик я решил сделать многоязычным, и вот тут и начались проблемы. Я решил записывать переводы в файл /lang/язык/strings_installer.php, а сам установщик содержится в файле /install.php. Так вот, если я делаю инклуд таким:

<?php
include lang/en/strings_installer.php;
echo 
"<center><h1>".$INSTALLER_TITLE."</h1>
This program install Tataba imageboard engine on your site. Configure your imageboard there!</center>";
?>
(а string_installer.php выглядит так:
<?php
$INSTALLER_TITLE = "Tataba installer";
?>
); то $INSTALLER_TITLE в хтмл не выводится. Если поменять строчку в установщике на /lang/xxx или ./lang/xxx, то не выводится вообще ничего. Что же делать?

заняться пыхом и написать движок имиджборды (вопросы «нахрена» и т.п. не задавать, говорю сразу)

Честно говоря, это самый серьезный вопрос, который просто невозможно не задать.

Что же делать?

пхп говно, начинай учить питон или руби!

xtraeft ★★☆☆
()
Ответ на: комментарий от xtraeft

пхп говно, начинай учить питон или руби!

Это всё хипстерские поделки. Чоткие посоны упарываются на эрланге.

Deleted
()
Ответ на: комментарий от no-such-file

Ну теперь он пойдет писать свой шаблонизатор.

xtraeft ★★☆☆
()
Ответ на: комментарий от Wolfram

Чёрт возьми, заработало!

Спс. Продолжим...

byulent
() автор топика
Ответ на: комментарий от byulent

CSS. Не забудь пасскоды отключающие капчу запилить и кнопку «Пожаловаться модератору»

anonymous
()
Ответ на: комментарий от byulent

Что ещё предложишь для размещения текста по центру?

<div id=«blablabla» style=«margin: 0 auto; width:100%; text-align: center;»>Текст по центру</div>

Bacteriophage
()

Решил я тут всерьёз заняться пыхом и написать движок имиджборды

Нахрена?

Deleted
()
Ответ на: комментарий от Deleted

и выкинут из спецификации в HTML5.

Вкурсе, но он там работает. И меня иное интересовало — по каким причинам от него решили избавится? Чем он хуже того же <p>?

Bacteriophage
()

«<center><h1>».$INSTALLER_TITLE.«</h1>This program install Tataba imageboard engine on your site. Configure your imageboard there!</center>»;

Кстати, с такими кавычками мог бы написать просто:

"<center><h1>$INSTALLER_TITLE</h1>
This program install Tataba imageboard engine on your site. Configure your imageboard there!</center>";

Bacteriophage
()
Ответ на: комментарий от Bacteriophage

b и (особенно) strong в настоящее время трактуются как логические, как усиление смысла. Т.е. b - «логический» жирыный и такая конструкция всё же нужна (ну не писать же каждый раз <span class='bold'>)

Согласись, что center - это совсем уж специфичный тег, который трактовать в логическом смысле (в общем) как-то сложно.

no-such-file ★★★★★
()
Ответ на: комментарий от Bacteriophage

Хорошо, чем он хуже того же <b> или <strong> которые сугубо стилевые?

Это у говнокодеров они стали стилевые. А в спецификации они семантические.

Deleted
()
Ответ на: комментарий от Deleted

Это у говнокодеров они стали стилевые.

Да идите вы, валидодрочеры :)

Bacteriophage
()
Ответ на: комментарий от no-such-file

(ну не писать же каждый раз <span class='bold'>)

Тогда почему же в этом случае хтмльщики решили, что лучше писать <div id=«xxx» style=«text-align:center»> вместо быстрого <center>?

byulent
() автор топика
Ответ на: комментарий от Bacteriophage

Кстати, спасибо! Так быстрее и проще.

byulent
() автор топика
Ответ на: комментарий от Bacteriophage

Хорошо, чем он хуже того же <b> или <strong> которые сугубо стилевые?

Сам ты стилевой. <b> умеют читать как роботы, так и браузеры для инвалидов. А <center> как читать?

x3al ★★★★★
()
Ответ на: комментарий от x3al

А <center> как читать?

Пардон за бестактность, но зачем инвалиду браузер? А роботу вообще по фени как там текст отцентрирован и отцентрирован ли.

Bacteriophage
()
Ответ на: комментарий от no-such-file

Согласись, что center - это совсем уж специфичный тег

Согласен, но не хай был бы, он реально удобен. Ну и фрилансеры его многие до сих пор активно юзают.

Bacteriophage
()
Ответ на: комментарий от Bacteriophage

Пардон за бестактность, но зачем инвалиду браузер?

Дизайнер детектед.

Deleted
()
Ответ на: комментарий от Bacteriophage

но зачем инвалиду браузер?

(внезапно) они тоже люди. Их порядка 4%. Среди них внезапно можешь оказаться и ты.

x3al ★★★★★
()
Ответ на: комментарий от x3al

Среди них внезапно можешь оказаться и ты.

Допустим мне выколол глаза лидпрограммист за использование тега <center> — я стал тем самым инвалидом. Вот логики в упор не вижу, мне безразлично будет, каким способом отцентрирован текст/блок и т.п. Ибо мне все равно программа читать будет, а для нее монопенисуально на уровне парсера, как там что отцентрировано.

Bacteriophage
()
Ответ на: комментарий от x3al

Задача отделения основного контента от меню — не слишком простая, например.

Вы предлагаете создателям сайтов заботится о каждом программисте, который решит парсить их сайт; вы это серьезно?)

Bacteriophage
()
Ответ на: комментарий от byulent

что лучше писать <div id=«xxx» style=«text-align:center»> вместо быстрого <center>?

Вообще решили, что нужно писать <p class=«prescript»>, а как форматируется этот prescript описывать в css. Style в теге можно использовать только как быстрый хак, чтобы посмотреть что получится, или для js манипуляций, чтобы гарантировать приоритет перед css.

no-such-file ★★★★★
()
Ответ на: комментарий от Bacteriophage

он реально удобен

Да чем же он удобен? Зачем мне лишний раз набирать <center><p> если теперь этот самый p мне всё равно нужно будет прописывать в css, где я могу указать заодно и text-align?

no-such-file ★★★★★
()

Предлагаю начать с проектирования… :}

Deleted
()
Ответ на: комментарий от Bacteriophage

Зачем отделять данные от представления? В гугл, уважаемый :}

Deleted
()
Последнее исправление: Mystra_x64 (всего исправлений: 1)

Ничего не выводится во втором случае, потому что php не может включить несуществующий файл, что приводит к фатальной ошибке и пустой странице. Эта ошибка должна быть видна в логах сервера, можно также настроит PHP, чтобы он выводил ошибки на страницу.

anonymous
()

<code> php -f install.php PHP Notice: Use of undefined constant lang - assumed 'lang' in /tmp/1.php on line 2 PHP Notice: Use of undefined constant en - assumed 'en' in /tmp/1.php on line 2 PHP Warning: Division by zero in /tmp/1.php on line 2 PHP Notice: Use of undefined constant strings_installer - assumed 'strings_installer' in /tmp/1.php on line 2 PHP Warning: Division by zero in /tmp/1.php on line 2 PHP Notice: Use of undefined constant php - assumed 'php' in /tmp/1.php on line 2 PHP Warning: include(php): failed to open stream: No such file or directory in /tmp/1.php on line 2 PHP Warning: include(): Failed opening 'php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /tmp/1.php on line 2 PHP Notice: Undefined variable: INSTALLER_TITLE in /tmp/1.php on line 4 <center><h1></h1> This program install Tataba imageboard engine on your site. Configure your imageboard there!</center> </code>

Как сказали выше, имя файла надо заключать в кавычки: <code php> include 'lang/en/strings_installer.php'; </code>

anonymous
()
 php -f install.php 
PHP Notice:  Use of undefined constant lang - assumed 'lang' in /tmp/1.php on line 2
PHP Notice:  Use of undefined constant en - assumed 'en' in /tmp/1.php on line 2
PHP Warning:  Division by zero in /tmp/1.php on line 2
PHP Notice:  Use of undefined constant strings_installer - assumed 'strings_installer' in /tmp/1.php on line 2
PHP Warning:  Division by zero in /tmp/1.php on line 2
PHP Notice:  Use of undefined constant php - assumed 'php' in /tmp/1.php on line 2
PHP Warning:  include(php): failed to open stream: No such file or directory in /tmp/1.php on line 2
PHP Warning:  include(): Failed opening 'php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /tmp/1.php on line 2
PHP Notice:  Undefined variable: INSTALLER_TITLE in /tmp/1.php on line 4
<center><h1></h1>
This program install Tataba imageboard engine on your site. Configure your imageboard there!</center>

Как сказали выше, имя файла надо заключать в кавычки:

include 'lang/en/strings_installer.php';

anonymous
()

Теперь новая проблема. Решил я сделать выпадающий список для выбора языка, который передаёт значение переменной методом GET. Написал код, но почему-то форма ничего никуда не передаёт; страница не обновляется.

<?php
error_reporting(E_ALL);
$locale=en;
if (isset ($_GET["locale"])){
	$locale=$_GET["locale"];
}
include "lang/$locale/strings_installer.php";

foreach(glob("lang/*",GLOB_ONLYDIR) as $locdir){
	$n=5;
	$ld[]=substr($locdir, $n);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>
<?php
echo $INSTALLER_TITLE;
?>
</title>
<link rel="stylesheet" type="text/css" href="css/photon.css" />
</head>
<body>
<?php
#echo $locdir;
#var_dump($ld);
?>
<form method="get">
<select name="locale" size=1>
<?php
foreach ($ld as $loc){
	echo "<option value=$loc>$loc</option>";
}
?>
</select>
</form>
<?php
echo "<center><h1>$INSTALLER_TITLE</h1>$INSTALLER_WELCOME</center>";
?>

</body>
<html>

byulent
() автор топика

Решил я тут всерьёз заняться пыхом и написать движок имиджборды

Шо, ещё одну? Никак убийца орфериуса/ханабиры намечается.

Рекомендую начать с основ http://php.net

ritsufag ★★★★★
()
Ответ на: комментарий от byulent

Может тебе таки почитать какую-нибудь книжку про php? У тебя тут столько косяков, что всё объяснять - книжка получится.

no-such-file ★★★★★
()
Ответ на: комментарий от exception13

Госссссподи... Я за три года эту вакабу уже «асилил» кучу раз, причём и на apache, и на nginx...

byulent
() автор топика
Ответ на: комментарий от byulent

почему-то форма ничего никуда не передаёт

Форму через астрал отправляем? submit где?

А зачем книжка, когда есть куча манов в инете?

Книжка видимо нужна, чтобы небыло таких вопросов.

Wolfram
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.