
Спустя 2 часа, 6 минут, 48 секунд (23.03.2010 - 19:03) twin написал(а):
Спустя 14 дней, 13 часов, 39 минут, 19 секунд (8.04.2010 - 07:43) melivan написал(а):
Спасибо за курс, действительно очень доступно все изложено.
В уроке про гостевую книгу в шаге №2 есть опечатка:
<?php echo htmlspecialchars($test1)
<?php echo htmlspecialchars($test2)
- должно быть $text1, $text2
не принципиально, в дальнейших листингах все верно.
В уроке про гостевую книгу в шаге №2 есть опечатка:
<?php echo htmlspecialchars($test1)
<?php echo htmlspecialchars($test2)
- должно быть $text1, $text2
не принципиально, в дальнейших листингах все верно.
Спустя 55 минут, 37 секунд (8.04.2010 - 08:38) twin написал(а):
Спасибо, исправил.

Спустя 1 месяц, 23 дня, 7 часов, 6 минут, 11 секунд (31.05.2010 - 15:44) kse написал(а):
Привет!
Буду спрашивать. Если надоем, можете не отвечать, буду сама разбираться.)
Можно в этой теме? Если, что могу начать новую про гостевую книгу.
При создании гостевой: "Шаг 4
Сброс POST параметров"
появился массив: "$info = array();"
При чтении описаний массива, привыкла, что его параметры идут сразу за ним. А тут, если верно поняла, его параметры разбросаны по всей странице без пояснений.)) То есть... можно и так? Можно в любой части кода указать затем: "$info[] = 'Текстовое поле не заполнено.';" ? Правильна поняла?)
Привожу код:
Буду спрашивать. Если надоем, можете не отвечать, буду сама разбираться.)
Можно в этой теме? Если, что могу начать новую про гостевую книгу.
При создании гостевой: "Шаг 4
Сброс POST параметров"
появился массив: "$info = array();"
При чтении описаний массива, привыкла, что его параметры идут сразу за ним. А тут, если верно поняла, его параметры разбросаны по всей странице без пояснений.)) То есть... можно и так? Можно в любой части кода указать затем: "$info[] = 'Текстовое поле не заполнено.';" ? Правильна поняла?)
Привожу код:
/**
* The guest book
* Гостевая книга
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
/////////////////////////////////////////////////////////////////
// VARIABLES
// ПЕРЕМЕННЫЕ
/////////////////////////////////////////////////////////////////
$text1 = !empty($_POST['text1']) ? $_POST['text1'] : null;
$text2 = !empty($_POST['text2']) ? $_POST['text2'] : null;
$info = array();
/////////////////////////////////////////////////////////////////
// SCRIPT
// СКРИПТ
/////////////////////////////////////////////////////////////////
if(isset($_POST['ok']))
{
// Собираем ошибки в массив (если они есть)
if(!$text1)
$info[] = 'Текстовое поле не заполнено.';
if(!$text2)
$info[] = 'Текстовая область не заполнена.';
// Если массив ошибок пуст,
if(count($info) == 0)
{
// пишем файл
file_put_contents('text.txt', $text2, FILE_APPEND);
// и перенаправляем браузер на новую страницу
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
// Останавливаем скрипт (все равно браузер уже ушел)
exit();
}
}
else
$info[] = 'Напишите что-нибудь';
/////////////////////////////////////////////////////////////////
// VIEW
// ОТОБРАЖЕНИЕ
/////////////////////////////////////////////////////////////////
?>
<form action="?" method="post">
Логин:<br />
<input name="text1" type="text" value="<?php echo htmlspecialchars($text1) ?>"/><br />
Сообщение:<br />
<textarea name="text2" cols="40" rows="10"><?php echo htmlspecialchars($text2);?></textarea><br />
<input name="ok" type="submit" />
</form>
<?php
// Выводим служебную информацию, "склеивая" элементы массива через разделитель <br/>
echo implode('<br>', $info) .'<br>';
if(file_exists('text.txt'))
echo nl2br(htmlspecialchars(file_get_contents('text.txt')));
Спустя 1 час, 46 минут, 59 секунд (31.05.2010 - 17:31) twin написал(а):
Цитата |
Можно в любой части кода указать затем: "$info[] = 'Текстовое поле не заполнено.';" ? Правильна поняла?) |
Совершенно верно.
Спустя 16 часов, 53 минуты, 51 секунда (1.06.2010 - 10:25) kse написал(а):
Кстати. Уроки в целом хорошие. Обидно, что в некоторых местах все таки стопорюсь. До этого искала объяснения по интернету.
Но сейчас кажется здОрово застопорилась!))
http://irbis-team.com/15/5/5?PHPSESSID=c9e...729cac9bebc1c66
Шаг 5
Сериализация.
При выводе скопированного с сайта кода выдает ошибку в самом низу под формой:
( ! ) Notice: unserialize() [function.unserialize]: Error at offset 0 of 113 bytes in F:\home\localhost\www\php\guest1.php on line 79
Call Stack
# Time Memory Function Location
1 0.0114 76536 {main}( ) ..\guest1.php:0
2 0.0258 79376 unserialize ( ) ..\guest1.php:79
В общем и суть сериализации пока мне непонятна. Там как-то совсем кратко объяснено. Пока чем-то очень напоминает implode().
Сейчас буду искать сама в интернете, что такое serialize().
Вообще, было бы классно, если бы в каждом уроке пояснения были более подробными: как что и откуда идет, что с чем связано. Новичку типа меня все эти связи восстанавливать и держать в голове очень сложно, иногда почти не реально.... Можно давать комментарии в каждой строке. Возможно, кому-то покажется слишком. Но новички будут благодарны и будут давать ссылку на Ваше руководство.)
Спасибо!
Но сейчас кажется здОрово застопорилась!))
http://irbis-team.com/15/5/5?PHPSESSID=c9e...729cac9bebc1c66
Шаг 5
Сериализация.
При выводе скопированного с сайта кода выдает ошибку в самом низу под формой:
( ! ) Notice: unserialize() [function.unserialize]: Error at offset 0 of 113 bytes in F:\home\localhost\www\php\guest1.php on line 79
Call Stack
# Time Memory Function Location
1 0.0114 76536 {main}( ) ..\guest1.php:0
2 0.0258 79376 unserialize ( ) ..\guest1.php:79
В общем и суть сериализации пока мне непонятна. Там как-то совсем кратко объяснено. Пока чем-то очень напоминает implode().
Сейчас буду искать сама в интернете, что такое serialize().
Вообще, было бы классно, если бы в каждом уроке пояснения были более подробными: как что и откуда идет, что с чем связано. Новичку типа меня все эти связи восстанавливать и держать в голове очень сложно, иногда почти не реально.... Можно давать комментарии в каждой строке. Возможно, кому-то покажется слишком. Но новички будут благодарны и будут давать ссылку на Ваше руководство.)
Спасибо!

Спустя 4 часа, 35 минут, 31 секунда (1.06.2010 - 15:01) twin написал(а):
C удовольствием распишу сериализацию чуть по позже. Но если так расписывать каждую функцию - не хватит места на диске)))
На счет комментариев. Первые листинги не содержали комментариев вовсе. Именно для того, что бы появилась привычка анализировать код, а не комментарии.
Как оказалось, это черезчур жестко. Но поверьте, обилие комментариев ни коем образом не ускоряет обучение. Наоборот. То, что дается легко - быстро забывается.
Первые шаги всегда делать трудно. Но если их делать правильно (учиться анализировать код и искать нужную информацию), то потом будет стократно легче.
На счет комментариев. Первые листинги не содержали комментариев вовсе. Именно для того, что бы появилась привычка анализировать код, а не комментарии.
Как оказалось, это черезчур жестко. Но поверьте, обилие комментариев ни коем образом не ускоряет обучение. Наоборот. То, что дается легко - быстро забывается.
Первые шаги всегда делать трудно. Но если их делать правильно (учиться анализировать код и искать нужную информацию), то потом будет стократно легче.
Спустя 16 часов, 54 минуты, 46 секунд (2.06.2010 - 07:56) kse написал(а):
Привет!
Со всем согласна. Но иногда вот хочется понять что-то лучше, глубже, ищешь, а найти не можешь... Вчера про сериализацию понятных объяснений в интернете не нашла. Правда искала не очень долго. Может быть еще поищу. Для новичка, я думаю, все таки чем проще и подробней, тем лучше... Чтобы более менее въехать
А трудности, наверное всегда успеем найти.)))
Хотела еще посоветоваться. Вот у меня в начале была такая иллюзия, что в PHP надо просто прочувствовать "скелет", основы, а дальше все будет легко, все будет обрастать на этот скелет. А сейчас как бы понимаю, что все немного сложней, но в чем-то и проще. Можно, конечно назвать скелетом функции, массивы, циклы и классы, но в РНР, как мне начало казаться сейчас нет такого этапа, после которого можно сразу выдохнуть. "Фух.. " Здесь учишься постепенно и незаметно для себя, вникая во все большее и большее количество вещей, и тут можно даже сразу по разным источникам учиться, разным вещам. Что скажете? Правильно понимаю?) Или по разному бывает?
Со всем согласна. Но иногда вот хочется понять что-то лучше, глубже, ищешь, а найти не можешь... Вчера про сериализацию понятных объяснений в интернете не нашла. Правда искала не очень долго. Может быть еще поищу. Для новичка, я думаю, все таки чем проще и подробней, тем лучше... Чтобы более менее въехать

Хотела еще посоветоваться. Вот у меня в начале была такая иллюзия, что в PHP надо просто прочувствовать "скелет", основы, а дальше все будет легко, все будет обрастать на этот скелет. А сейчас как бы понимаю, что все немного сложней, но в чем-то и проще. Можно, конечно назвать скелетом функции, массивы, циклы и классы, но в РНР, как мне начало казаться сейчас нет такого этапа, после которого можно сразу выдохнуть. "Фух.. " Здесь учишься постепенно и незаметно для себя, вникая во все большее и большее количество вещей, и тут можно даже сразу по разным источникам учиться, разным вещам. Что скажете? Правильно понимаю?) Или по разному бывает?
Спустя 1 час, 41 минута, 28 секунд (2.06.2010 - 09:37) twin написал(а):
Бывает по разному. Но в основном - главное понять принцип языка.
А принцип очень прост - любой необходимый результат требует алгоритма решения. А так как в подавляющем большинстве случаев это кому то уже требовалось, то вероятность существования штатных процедур очень велика.
Простыми словами. Допустим нам нужно перевернуть строку наоборот. Чтобы было не 'Hello, World!', а '!dlroW ,olleH'
Первое, что часто приходит на ум начинающим - разобрать строку на символы в цикле и собрать обратно
Потом появляется желание избавиться от цикла, и мы обращаем взор в сторону массивов. Находим функции, которые разберут строку, перевернут массив и соберут обратно:
Уже красивее. Но если бы мы сразу не мучались, а представили, сколько народу забивает голову тем же, то пошли бы в мануал и поискали штатный инструмент для этого.
Всего навсего.
Принцип простой. Сначала нужно искать готовую функцию, потом, если не найдена, разбить функционал на две (три, четыре... ) части и опять в мануал.
От сложного к простому, не наоборот.
А принцип очень прост - любой необходимый результат требует алгоритма решения. А так как в подавляющем большинстве случаев это кому то уже требовалось, то вероятность существования штатных процедур очень велика.
Простыми словами. Допустим нам нужно перевернуть строку наоборот. Чтобы было не 'Hello, World!', а '!dlroW ,olleH'
Первое, что часто приходит на ум начинающим - разобрать строку на символы в цикле и собрать обратно
$string = 'Hello, World!';
$new_string = '';
$i = strlen($string);
while($i > 0)
$new_string .= $string[--$i];
echo $new_string;
Потом появляется желание избавиться от цикла, и мы обращаем взор в сторону массивов. Находим функции, которые разберут строку, перевернут массив и соберут обратно:
$string = 'Hello, World!';
$array = str_split($string);
$array = array_reverse($array);
$new_string = implode('', $array);
echo $new_string;
Уже красивее. Но если бы мы сразу не мучались, а представили, сколько народу забивает голову тем же, то пошли бы в мануал и поискали штатный инструмент для этого.
$string = 'Hello, World!';
echo strrev($string);
Всего навсего.
Принцип простой. Сначала нужно искать готовую функцию, потом, если не найдена, разбить функционал на две (три, четыре... ) части и опять в мануал.
От сложного к простому, не наоборот.
Спустя 6 часов, 12 минут, 44 секунды (2.06.2010 - 15:50) twin написал(а):
А вот, как и обещал, сериализация.

Спустя 8 дней, 6 часов, 47 минут, 54 секунды (10.06.2010 - 22:38) starpom написал(а):
Есть вопрос по сериализации, вернее по скрипту на этом этапе.
http://irbis-team.com/15/5/5
Во втором листинге (создание для примера array не считать), скрипт выдает пару ошиюбок:
1)Notice: unserialize() [function.unserialize]: Error at offset 0 of 296 bytes in Z:\home\localhost\www\gostevaya\my6.php on line 86
Решаеться смягчением: Error_Reporting(E_ALL & ~E_NOTICE);
Я так понимаю это все равно не приемлемо?
2)Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\gostevaya\my6.php on line 88
Чего то тоже не нравиться аргумент для массива.
Ну собственно это и есть вопрос?
ЗЫ. Курс классный
http://irbis-team.com/15/5/5
Во втором листинге (создание для примера array не считать), скрипт выдает пару ошиюбок:
1)Notice: unserialize() [function.unserialize]: Error at offset 0 of 296 bytes in Z:\home\localhost\www\gostevaya\my6.php on line 86
Решаеться смягчением: Error_Reporting(E_ALL & ~E_NOTICE);
Я так понимаю это все равно не приемлемо?
2)Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\gostevaya\my6.php on line 88
Чего то тоже не нравиться аргумент для массива.
Ну собственно это и есть вопрос?
ЗЫ. Курс классный
Спустя 25 минут, 34 секунды (10.06.2010 - 23:03) twin написал(а):
Что то не то с файлом. Скорее всего где то ошибка при записи. В самом файле что имеется?
Спустя 30 минут, 58 секунд (10.06.2010 - 23:34) starpom написал(а):
Файл уже успел очистить, сейчас по новой (с пустым файлом) запустил скрипт.
Выдало ошибку:
Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\gostevaya\my6.php on line 88
попробовал ввести данные -> выдало три строки ошибок
повторил -> заработало нормально.
Выдало ошибку:
Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\gostevaya\my6.php on line 88
попробовал ввести данные -> выдало три строки ошибок
повторил -> заработало нормально.
Спустя 15 дней, 3 часа, 50 минут, 28 секунд (26.06.2010 - 03:25) Я написал(а):
а отжиг про цвет куда смотреть?))
Спустя 3 часа, 9 минут, 15 секунд (26.06.2010 - 06:34) twin написал(а):
Уже нету. На старом сайте было

Спустя 19 часов, 5 минут, 49 секунд (27.06.2010 - 01:40) Гость_Andrew написал(а):
А чё было=)
Спустя 1 месяц, 17 дней, 16 часов, 28 минут, 30 секунд (14.08.2010 - 18:08) Гость_Алексей написал(а):
Прошу помощи с разьяснением сего урока:
Организация структуры сайта.
Шаг 3.
Модуль динамического контента
Конкретно мне не понятно почему выбор данных из масива рандомный и сама структура $arr_who = array(
1 => 'Мир',
'Солнце',
'Небо',
'Вася',
'Петя'
);
меня заводит в заблуждение что единичка одна а значений шесть. Заранее извиняюсь за нубский вопрос но я серьезно подошол к изучению и не хочу оставлять белых пятен в знаниях.
Thief8925@mail.ru
Организация структуры сайта.
Шаг 3.
Модуль динамического контента
Конкретно мне не понятно почему выбор данных из масива рандомный и сама структура $arr_who = array(
1 => 'Мир',
'Солнце',
'Небо',
'Вася',
'Петя'
);
меня заводит в заблуждение что единичка одна а значений шесть. Заранее извиняюсь за нубский вопрос но я серьезно подошол к изучению и не хочу оставлять белых пятен в знаниях.
Thief8925@mail.ru
Спустя 14 минут, 42 секунды (14.08.2010 - 18:23) Lenarfate написал(а):
Цитата |
1 => 'Мир', |
ключи в массивах начинают отсчет от нуля, здесь же специально указана единица, чтоб отсчет шел от одного
Спустя 8 минут, 46 секунд (14.08.2010 - 18:32) Thief8925 написал(а):
Подскажите пожалуйсто в уроках * Организация структуры сайта. * есть образец я его скачал копирнул в денвер запустил меню работает дата выводится но вот под фразой Привет *** выводится такие ошибки :
TRACE № 1.
File: Z:\home\localhost\www\irbis\modules\main\view.php
Function: include
Line: 9
$_GET =
Array
(
[page] => main
)
TRACE № 2.
File: Z:\home\localhost\www\irbis\modules\main\view.php
Function: include
Line: 10
The variable is not defined or empty
помогите с их решением пожалуйста
TRACE № 1.
File: Z:\home\localhost\www\irbis\modules\main\view.php
Function: include
Line: 9
$_GET =
Array
(
[page] => main
)
TRACE № 2.
File: Z:\home\localhost\www\irbis\modules\main\view.php
Function: include
Line: 10
The variable is not defined or empty
помогите с их решением пожалуйста
Спустя 11 минут, 51 секунда (14.08.2010 - 18:44) Lenarfate написал(а):
читай внимательно
Цитата |
И так, файл modules/main/view.php, непосредственно в модуле. А что бы он не простаивал, подключим в систему дебаггер, который проходили раньше. |
это же пример просто
Спустя 34 минуты, 57 секунд (14.08.2010 - 19:18) Thief8925 написал(а):
Так ето так и должно быть? я думал дебагер если не находит ошибок то и не выводит их
Спустя 11 часов, 29 минут, 55 секунд (15.08.2010 - 06:48) twin написал(а):
Ну а посмотреть в действии... Наверно я не явно это обозначил, исправлю.
А по сути - да, так и есть. Тут он запущен принудительно. Дабы посмотреть.
А по сути - да, так и есть. Тут он запущен принудительно. Дабы посмотреть.

Спустя 23 дня, 8 часов, 48 минут, 50 секунд (8.09.2010 - 15:37) Thief8925 написал(а):
<?php
include'../blocks/db.php';
if (!empty($_POST['title'])) $title = $_POST['title'];
if (!empty($_POST['meta_d'])) $meta_d = $_POST['meta_d'];
if (!empty($_POST['meta_k'])) $meta_k = $_POST['meta_k'];
if (!empty($_POST['text'])) $text = $_POST['text'];
if (!empty($_POST['id'])) $id = $_POST['id'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Редактировать:</title>
<link rel="stylesheet" type="text/css" href="../style.css" />
</head>
<body>
<div id="holder">
<?php include'../blocks/header.php'; ?>
<?php include'../blocks/menu.php'; ?>
<div id="undermenu"></div>
<div id="content">
<!-- Начало документа -->
<p class="text">
<?php
if (isset($title, $meta_d, $meta_k, $text, $id))
{
/*Проверка на заполнение форм и вывод разрешения на ввод информации в базу*/
$result = mysql_query ("UPDATE data SET
(`title`, `meta_d`, `meta_k`, `text`)
VALUES
('". mysql_real_escape_string($title) ."',
'". mysql_real_escape_string($meta_d) ."',
'". mysql_real_escape_string($meta_k) ."',
'". mysql_real_escape_string($text) ."'
) WHERE id=".(int)$id
);
if (mysql_affected_rows() > 0)
echo "<p>Изменения вступили в силу!</p>";
else
echo "<p>Изменения не вступили в силу!</p>";
}
else
{
echo "<p>Вы ввели не всю информацию, поэтому изменения не вступили в силу</p>";
}
?>
<p><a href='../index.php'>Вернутся на главную</a></p>
</p>
<!-- Конец документа -->
</div>
</div>
</body>
</html>
у меня проблемма пишет <p>Изменения не вступили в силу!</p> хотя все вроде норм должно быть
Спустя 33 минуты, 17 секунд (8.09.2010 - 16:11) twin написал(а):
А точно там
?
Не
if (!empty($_POST['id'])) $id = $_POST['id'];
?
Не
if (!empty($_GET['id'])) $id = $_GET['id'];?
Спустя 5 минут, 7 секунд (8.09.2010 - 16:16) Thief8925 написал(а):
вот код формы
<?php
include '../blocks/db.php';
if (isset($_GET['id'])) {$cat=$_GET['id'];}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Редактировать:</title>
<link rel="stylesheet" type="text/css" href="../style.css" />
<script language="javascript" type="text/javascript"
src="../tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "advanced",
extended_valid_elements : "img[class=myclass|!src|border:0|alt|title|width|height]",
invalid_elements : "strong,b,em,i"
});
</script>
</script>
</head>
<body>
<div id="holder">
<?php include '../blocks/header.php'; ?>
<div id="undermenu"></div>
<div id="content">
<!-- Начало документа -->
<p class="text">
<?php
$result=mysql_query ("SELECT title,meta_d,meta_k,text,id FROM data WHERE id=".(int)$cat );
$myrow=mysql_fetch_assoc ($result);
?>
<form name="form1" method="post" action="update.php">
<p>
<label>Введите название<br>
<input value="<?php
echo htmlspecialchars($myrow['title']) ?>" type="text" name="title" id="title">
</label>
</p>
<p>
<label>Введите краткое описание<br>
<input value="<?php
echo htmlspecialchars($myrow['meta_d']) ?>" type="text" name="meta_d" id="meta_d">
</label>
</p>
<p>
<label>Введите ключевые слова <br>
<input value="<?php
echo htmlspecialchars($myrow['meta_k']) ?>" type="text" name="meta_k" id="meta_k">
</label>
</p>
<p>
<label>Введите полный текст
<textarea name="text" id="text" cols="40" rows="20"><?php
echo htmlspecialchars($myrow['text']) ?></textarea>
</label>
</p>
<input name="id" type="hidden" value="<?php echo (int)$myrow['id'] ?>">
<p>
<label>
<input type="submit" name="submit" id="submit" value="Сохранить изменения">
</label>
</p>
</form>
</p>
<!-- Конец документа -->
</div>
</div>
</body>
</html>
Спустя 1 час, 5 минут, 55 секунд (8.09.2010 - 17:22) twin написал(а):
Ёшкин кот. А SET то там зачем?
Вот и учит вас этому Попов. Копипастить, совершенно не задумываясь о том, что ваш код должен делать.
Собрал из пяти файлов один и думаешь, что все гут. Каждую строчку нужно анализировать, каждую букву. И не ждать, что само наладится.
Вот и учит вас этому Попов. Копипастить, совершенно не задумываясь о том, что ваш код должен делать.
Собрал из пяти файлов один и думаешь, что все гут. Каждую строчку нужно анализировать, каждую букву. И не ждать, что само наладится.
Спустя 47 минут, 48 секунд (8.09.2010 - 18:09) inpost написал(а):
twin
Это не Попов виноват, я когда проходил его курс, старался анализировать каждую строчку и понимать, что он говорит. И вообще - это лень, вот и копипастят не задумываясь. Проблема не в Попове, а в учениках в данном случае.
И вообще, почему в курсах Твина обсуждаем Попова?
Твин, если где-то когда-то изменения делаешь в своих курсах, неплохо было бы апдейт на отдельной странице писать. Вот сегодня показал код твой из уроков, а оказалось, что он уже исправлен. Был бы Update-list, вообще проблем не было бы, заглянул, увидел новые решения и подчеркнул бы для себя новое.
UPDATE: я говорю именно про существенные обновления, а не грамотические ошибки =)
Это не Попов виноват, я когда проходил его курс, старался анализировать каждую строчку и понимать, что он говорит. И вообще - это лень, вот и копипастят не задумываясь. Проблема не в Попове, а в учениках в данном случае.
И вообще, почему в курсах Твина обсуждаем Попова?
Твин, если где-то когда-то изменения делаешь в своих курсах, неплохо было бы апдейт на отдельной странице писать. Вот сегодня показал код твой из уроков, а оказалось, что он уже исправлен. Был бы Update-list, вообще проблем не было бы, заглянул, увидел новые решения и подчеркнул бы для себя новое.
UPDATE: я говорю именно про существенные обновления, а не грамотические ошибки =)
Спустя 16 минут, 42 секунды (8.09.2010 - 18:26) twin написал(а):
Да все собираюсь... Надо. Времени нет. А обсуждается поповский код, потому что человек попытался применить мои поправки. А применил совершенно не разобравшись. Вот и возникли вопросы.
Спустя 20 минут, 32 секунды (8.09.2010 - 18:47) inpost написал(а):
twin
А что там со временем, вот обновил какую-то часть, сразу заметку сделал: изменена и добавлена данная строчка на данной странице. Описание - это лишнее. Секунд 20 займет скопипастить ссылку и само исправление. Зато удобно очень будет таким, как я =)
А что там со временем, вот обновил какую-то часть, сразу заметку сделал: изменена и добавлена данная строчка на данной странице. Описание - это лишнее. Секунд 20 займет скопипастить ссылку и само исправление. Зато удобно очень будет таким, как я =)
Спустя 22 минуты, 11 секунд (8.09.2010 - 19:09) twin написал(а):
Надо же раздел сделать, продумать как удобнее, чтобы ссылки сразу и пр.
А руки не доходят. Я править то не успеваю))
А руки не доходят. Я править то не успеваю))
Спустя 2 часа, 21 минута, 54 секунды (8.09.2010 - 21:31) Thief8925 написал(а):
Twin если бы я просто копипастил я бы не оказался б тут причем ето код уже не попова а твой т.к я его переделал по твоим урокам я пытаюсь усовершенствоватся и научится чемуто новому! Спасибо что помогаеш!
насчет SET я чето не понял я тут вопще такого не вижу
насчет SET я чето не понял я тут вопще такого не вижу


Спустя 29 минут, 19 секунд (8.09.2010 - 22:00) inpost написал(а):
Thief8925
Создал бы отдельной темой, показал бы код, тебе бы его подправили, помогли с ошибками. Ты ведь не один, сейчас 100 сообщений будет о том, почему их текст не работает, ведь они пытаются исправиться после Попова по урокам Твина? И всё впихнём в этот топик... ну согласись, это плохо!
Создал бы отдельной темой, показал бы код, тебе бы его подправили, помогли с ошибками. Ты ведь не один, сейчас 100 сообщений будет о том, почему их текст не работает, ведь они пытаются исправиться после Попова по урокам Твина? И всё впихнём в этот топик... ну согласись, это плохо!
Спустя 32 минуты, 5 секунд (8.09.2010 - 22:32) twin написал(а):
Действительно. Создай тему, оно для всех будет полезнее.
Спустя 18 минут, 10 секунд (8.09.2010 - 22:50) Thief8925 написал(а):
ок простите за флуд вот тема http://phpforum.ru/index.php?act=ST&f=129&t=33524
Спустя 4 дня, 15 часов, 24 минуты, 44 секунды (13.09.2010 - 14:15) Absorb написал(а):
Здравствуйте, сразу к делу...
Пройдя весь курс PHP, решил так сказать "закрепить знания", буду дополнять каркас курса "Ядро", своими творениями(для начала простейшими модулями).
Надеюсь на помощь, ибо хочу научится писать модули(да и чего уж там чертей таить), сайты с нуля.
Постараюсь все оформить как в курсах, доходчиво и понятно для новичков.
Поехали...
1. Имеем файл index.php вида:
Видим, что МЕНЮ НАВИГАЦИИ заключено в константу и имеет ссылку на
шаблон внутри каталога tpl
Вопрос в следующем:
Можно или, что гораздо важнее будет ли правильным сделать
МЕНЮ НАВИГАЦИИ отдельным блоком(вида router read_controller view show.tpl - как я понял из курса, этот способ позволяет манипулировать любыми блоками легко и оперативно, это стандарт MVC, и легче для верстальщиков).
Вообщем под напором самоуверенности и ощущения(после прохождения курса), что я уже адский программер PHP (^^,), так и сделал... превратил МЕНЮ НАВИГАЦИИ в полноценный модуль, получил:
2. ./modules/menu_navi/router.php
./modules/menu_navi/read_controller.php
./modules/menu_navi/view.php
3. И присоиденяем(как я понял) логику(контроллер - read_controller) в шаблон(вид - show) .tpl
./skins/tpl/menu_navi/show.tpl
4. И теперь соответственно осталось поменять вывод меню в index.php
Тобеж меняем значение константы IRB_GENERAL_MENU
Из
В
Теперь(как я понял) Меню - гибкий полноценный модуль?
Жду анализирования моих действий
PS пожалуйста какахами не закидывайте, только начал понимать суть .пхп
Пройдя весь курс PHP, решил так сказать "закрепить знания", буду дополнять каркас курса "Ядро", своими творениями(для начала простейшими модулями).
Надеюсь на помощь, ибо хочу научится писать модули(да и чего уж там чертей таить), сайты с нуля.
Постараюсь все оформить как в курсах, доходчиво и понятно для новичков.
Поехали...
1. Имеем файл index.php вида:
<?php
/**
* The main router
* Главный маршрутизатор (роутер)
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
/**
* Installation of a key of access to files
* Установка ключа доступа к файлам
*/
define('IRB_KEY', true);
/**
* Debug
* Дебаггер
* @TODO To clean in release
*/
define('IRB_TRACE', true);
include './debug.php';
/**
* We connect a configuration file
* Подключаем конфигурационный файл
*/
include './config.php';
/**
* We connect a file of the language
* Подключаем языковой файл
*/
include './language/'. IRB_LANGUAGE .'.php';
/**
* Получаем файл переменных
* Receive a variables file
*/
include './variables.php';
/**
* We connect a file of the general functions
* Подключаем файл общих функций
*/
include './libs/default.php';
/**
* We put in order a conclusion
* Приводим в порядок вывод
*/
include './libs/view.php';
ob_start();
/**
* The switch of modules
* Переключатель страниц
*/
switch($GET['page'])
{
/**
* Подключаем модуль приветствия
* Includes the greeting module
*/
case 'main':
include './modules/main/router.php';
break;
/**
* Подключаем модуль второй страницы
* Includes the module of the second page
*/
case 'second':
include './modules/second/router.php';
break;
/**
* Подключаем модуль приветствия по умолчанию
* Includes the greeting module
*/
default:
include './modules/main/router.php';
break;
}
$content = ob_get_contents();
ob_end_clean();
/**
* Establish a path to the navigation menu
* Устанавливаем путь до меню навигации
*/
define('IRB_GENERAL_MENU', './skins/tpl/menu.tpl');
/**
* Подключаем главный шаблон
* Includes the basic template
*/
include './skins/tpl/index.tpl';
Видим, что МЕНЮ НАВИГАЦИИ заключено в константу и имеет ссылку на
шаблон внутри каталога tpl
/**
* Establish a path to the navigation menu
* Устанавливаем путь до меню навигации
*/
define('IRB_GENERAL_MENU', './skins/tpl/menu.tpl');
Вопрос в следующем:
Можно или, что гораздо важнее будет ли правильным сделать
МЕНЮ НАВИГАЦИИ отдельным блоком(вида router read_controller view show.tpl - как я понял из курса, этот способ позволяет манипулировать любыми блоками легко и оперативно, это стандарт MVC, и легче для верстальщиков).
Вообщем под напором самоуверенности и ощущения(после прохождения курса), что я уже адский программер PHP (^^,), так и сделал... превратил МЕНЮ НАВИГАЦИИ в полноценный модуль, получил:
2. ./modules/menu_navi/router.php
<?php
/**
* Router
* Роутер
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* Generation of page of an error at access out of system
* Генерация страницы ошибки при доступе вне системы
*/
if(!defined('IRB_KEY'))
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents('../../404.html'));
}
/////////////////////////////////////////////////////////
/**
* Подключаем контроллер меню навигации
* The controller of the main page includes
*/
include './modules/menu_navi/read_controller.php';
/**
* Подготовка к выводу
* Preparation for a conclusion
*/
include './modules/menu_navi/view.php';
./modules/menu_navi/read_controller.php
<?php
/**
* Controller
* Контроллер
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* Generation of page of an error at access out of system
* Генерация страницы ошибки при доступе вне системы
*/
if(!defined('IRB_KEY'))
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents('../../404.html'));
}
/**
* Ссылки в меню навигации
*/
$main_page_link = href('page=main');
$second_page_link = href('page=second');
./modules/menu_navi/view.php
<?php
/**
* View
* Вид
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* Generation of page of an error at access out of system
* Генерация страницы ошибки при доступе вне системы
*/
if(!defined('IRB_KEY'))
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents('../../404.html'));
}
///////////////////////////////////////////////////////////
/**
* Подключаем шаблон
* Includes a templates
*/
include './skins/tpl/menu_navi/show.tpl';
3. И присоиденяем(как я понял) логику(контроллер - read_controller) в шаблон(вид - show) .tpl
./skins/tpl/menu_navi/show.tpl
<!-- ./skins/tpl/menu_navi/show.tpl begin -->
<ul>
<li><a href="<?php echo $main_page_link; ?>">Главная страница</a></li>
<li><a href="<?php echo $second_page_link; ?>">Вторая страница</a></li>
</ul>
<!-- ./skins/tpl/menu_navi/show.tpl end -->
4. И теперь соответственно осталось поменять вывод меню в index.php
Тобеж меняем значение константы IRB_GENERAL_MENU
Из
/**
* Establish a path to the navigation menu
* Устанавливаем путь до меню навигации
*/
define('IRB_GENERAL_MENU', './skins/tpl/menu.tpl');
В
/**
* Establish a path to the navigation menu
* Устанавливаем путь до меню навигации
*/
define('IRB_GENERAL_MENU', './modules/menu_navi/router.php');
Теперь(как я понял) Меню - гибкий полноценный модуль?
Жду анализирования моих действий
PS пожалуйста какахами не закидывайте, только начал понимать суть .пхп
Спустя 4 часа, 7 минут, 26 секунд (13.09.2010 - 18:22) twin написал(а):
Ну я бы не стал делать три файла на одну менюшку. А так - почему бы нет, если видится целесообразность.
Другое дело, что меню обычно прописывается в шаблоне, но если есть элементы динамики - можно и так.
Другое дело, что меню обычно прописывается в шаблоне, но если есть элементы динамики - можно и так.
Спустя 6 дней, 19 часов, 27 минут, 39 секунд (20.09.2010 - 13:50) ShamanV написал(а):
Есть у нас такой фрагмент в файлах .php:
Может, удобнее упаковать это в функцию, заменив путь на абсолютный?
/**
* Generation of page of an error at access out of system
* Генерация страницы ошибки при доступе вне системы
*/
if(!defined('IRB_KEY'))
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents('../../404.html'));
}
Может, удобнее упаковать это в функцию, заменив путь на абсолютный?
Спустя 36 минут, 51 секунда (20.09.2010 - 14:27) twin написал(а):
Попробуй)))
И потом подумай, почему не получилось.
И потом подумай, почему не получилось.
Спустя 30 минут, 17 секунд (20.09.2010 - 14:57) inpost написал(а):
twin
А для пхп есть что-то наподобии <base> для ХТМЛ?
А для пхп есть что-то наподобии <base> для ХТМЛ?
Спустя 52 минуты, 31 секунда (20.09.2010 - 15:50) ShamanV написал(а):
Цитата (twin @ 20.09.2010 - 11:27) |
Попробуй))) И потом подумай, почему не получилось. |
Трудно ответить на этот вопрос, особенно когда получилось. Что нужно сделать, чтобы понять, что не получилось?
Все, догнал. Действительно не получилось. Тут разве что подключать файл с функцией отдельно для каждого случая

Спустя 18 минут, 12 секунд (20.09.2010 - 16:08) twin написал(а):
Цитата |
Тут разве что подключать файл с функцией отдельно для каждого случая |
вот именно.

Спустя 34 секунды (20.09.2010 - 16:08) twin написал(а):
inpost
Цитата |
А для пхп есть что-то наподобии <base> для ХТМЛ? |
не понял вопроса
Спустя 1 час, 5 минут, 1 секунда (20.09.2010 - 17:13) inpost написал(а):
twin
Какая бы структура HTML не была, задаётся <base> и все ссылки идут оттуда. Собственно это ты знаешь, а я это к тому:
exit(file_get_contents('../../404.html')); - а если была бы <base> то ссылка выглядела просто 404.html
Какая бы структура HTML не была, задаётся <base> и все ссылки идут оттуда. Собственно это ты знаешь, а я это к тому:
exit(file_get_contents('../../404.html')); - а если была бы <base> то ссылка выглядела просто 404.html
Спустя 4 минуты, 44 секунды (20.09.2010 - 17:18) twin написал(а):
Ну это есть только для подключений. Наружу php не выходит же)))
Спустя 5 дней, 19 часов, 2 минуты, 1 секунда (26.09.2010 - 12:20) ShamanV написал(а):
Спустя 5 часов, 48 минут, 32 секунды (26.09.2010 - 18:09) twin написал(а):
ух ты... точно. сеньк
Спустя 1 день, 4 часа, 2 минуты, 34 секунды (27.09.2010 - 22:11) ShamanV написал(а):
Теперь совсем не то. Вы текст под ссылку подогнали, а нужно было наоборот.
Цитата |
2010-09-24 Изменен Шаг 7 ядра (доработана функция href()). Изменены все последующие архивы 2010-09-23 Изменен Шаг 7 ядра (удалена функция getFiles()). Изменены все последующие архивы |
function href() - из 3-го шага.
Спустя 14 часов, 19 минут, 37 секунд (28.09.2010 - 12:31) ShamanV написал(а):
Вот скажите, а почему ссылки на материалы irbis-team.com содержат в качестве первого параметра число 15?
Все, что до 15-ти зарезервировано под какие-то будущие проекты или под тест?
Ну не мог не проверить:
http://irbis-team.com/1
http://irbis-team.com/2
http://irbis-team.com/-1
http://irbis-team.com/1/
http://irbis-team.com/16
Последние две - вообще порадовали

Ну не мог не проверить:
http://irbis-team.com/1
http://irbis-team.com/2
http://irbis-team.com/-1
http://irbis-team.com/1/
http://irbis-team.com/16
Последние две - вообще порадовали

Спустя 1 час, 10 минут, 8 секунд (28.09.2010 - 13:41) twin написал(а):
Ну да. Проект задумывался большой, потом энтузиастов поубавилось. Так как проект бесплатный, ни кем не финансируется и делается в свободное время.
Там есть еще интересные места
Вот например.
Там есть еще интересные места
Вот например.

Спустя 16 дней, 1 час, 48 минут, 48 секунд (14.10.2010 - 15:30) Monyk написал(а):
Кхе-кхе. Я нуб и не скрываю этого.Совершенно не понял Гостевая книга-> Форма. $text = !empty($_POST['text']) ? $_POST['text'] : null; Эта что? таких операторов не было и далее я не нашел более подробного объяснения. Да-да я полный лапоть, знаю, говорили уже.
Спустя 1 час, 33 минуты, 33 секунды (14.10.2010 - 17:03) twin написал(а):
Есть
Просто повнимательнее. Обращай внимание на ссылки в тексте.
Просто повнимательнее. Обращай внимание на ссылки в тексте.
Спустя 3 часа, 34 минуты, 10 секунд (14.10.2010 - 20:38) Monyk написал(а):
А empty это что? Через него выражается само условие или как?
Спустя 1 минута, 49 секунд (14.10.2010 - 20:39) Guest написал(а):
И зачем стоит знак "!" перед empty?
Спустя 7 минут, 20 секунд (14.10.2010 - 20:47) Monyk написал(а):
Цитата (Monyk @ 14.10.2010 - 17:38) |
А empty это что? Через него выражается само условие или как? |
Вопрос отменяется. Залез в базу знаний. Теперь буду знать, что есть такая классная штука)
Спустя 41 минута, 9 секунд (14.10.2010 - 21:28) Black Angel написал(а):
Цитата (Guest @ 14.10.2010 - 17:39) |
И зачем стоит знак "!" перед empty? |
И снова страдаю чем попало. Во время эээ.. десятого? перечитыания статьи мне в голову пришла гениальная мысль, что это знак инверсии.(Вот неожиданность то!) и ценой титанических умственных усилий я наконец понял(верите вы или нет) смысл строки:
$text = !empty($_POST['text']) ? $_POST['text'] : null; и как применять этот тернарный оператор.
Спустя 1 час, 44 минуты, 23 секунды (14.10.2010 - 23:12) Black Angel написал(а):
Очень быстро запутался во всех последующих кодах. А нету чего-нибудь попроще, а то усвоить за раз такие громадные куски кода, пусть и добавляется к ним каждый раз что-то по чуть-чуть... и всё равно очень сложно. Уже на третьем же куске куда смсысл теряется вообще.
Спустя 15 часов, 44 минуты, 33 секунды (15.10.2010 - 14:57) Black Angel написал(а):
<?php
// Простая запись в файл
header("Content_Type:html/text;charset:utf-8");
error_reporting(E_ALL);
?>
<form id="form1" name="form1" method="post" action="">
<label for="text1"></label>
<input type="text1" name="text1" id="text1" />
<textarea name="text2" id="textarea" cols="45" rows="5"></textarea>
<input type="submit" name="button" id="button" value="Отправить">
<label for="textarea"></label>
</form>
<?php
// Вот сама форма
$text1 = !empty($_POST['text1'])? $_POST['text1'] : null;
$text2 = !empty($_POST['text2'])? $_POST['text2'] : null;
// Тернарки тоже поставил
if(!empty($_POST['button']));
file_put_contents('text.txt',$text1."=".$text2."\n",FILE_APPEND);// Всё как учили
Написал такой скрипт. Перенос строк в записаном файле почему-то не работает. Почему? И еще сверху странички висит такая хрень:
Цитата |
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\guest.ru\File.php:1) in Z:\home\localhost\www\guest.ru\File.php on line 4 |
Спустя 4 минуты, 50 секунд (15.10.2010 - 15:02) twin написал(а):
Цитата |
Написал такой скрипт. Перенос строк в записаном файле почему-то не работает |
А в чем ты смотришь? Если в блокноте, то поставь "\r\n", тогда сработает.
А ошибка, это BOM. нужно редактор перенастроить.
А ошибка, это BOM. нужно редактор перенастроить.
Спустя 12 минут, 33 секунды (15.10.2010 - 15:14) Black Angel написал(а):
Редактор, всмысле дримвивер?И как его настроить?
P.S.Заработало! c "r\n\"
P.P.S На прошлом скрипте такая же ошибка была.
P.S.Заработало! c "r\n\"
P.P.S На прошлом скрипте такая же ошибка была.
Спустя 11 минут, 51 секунда (15.10.2010 - 15:26) Black Angel написал(а):
И еще вопросик. А как получить данные из файла, к примеру с третьей строки перед "="? Или с пятой после "="? И как определить количество строк?
Спустя 48 минут, 4 секунды (15.10.2010 - 16:14) twin написал(а):
Зачем это?
Спустя 5 минут, 4 секунды (15.10.2010 - 16:19) Black Angel написал(а):
http://www.softtime.ru/info/task.php?id_article=72
Вот тут задачка, которая просит так сделать, если я правильно её понял.
Вот тут задачка, которая просит так сделать, если я правильно её понял.
Спустя 14 минут, 56 секунд (15.10.2010 - 16:34) twin написал(а):
Ну на то и задача, чтобы самостоятельно решить
Вообще это не очень хорошая практика, потому что если в тексте встретится = то все порушится.
смотри в сторону
file()
array_map()
rtrim()
explode()

Вообще это не очень хорошая практика, потому что если в тексте встретится = то все порушится.
смотри в сторону
file()
array_map()
rtrim()
explode()
Спустя 16 минут, 27 секунд (15.10.2010 - 16:51) Black Angel написал(а):
if(!empty($_POST['button']) and $text1 != null and $text2 != null);
{
file_put_contents('text.txt',$text1."=".$text2."\r\n",FILE_APPEND);
}
else // тут где-то ошибка
{
echo ('Напишите что-нибудь');
}
echo nl2br(htmlspecialchars(file_get_contents('text.txt')));
В упор не вижу ошибки с else. причем, убираю - всё норм. ТЫкаю туда другую строку - тоже норм. Скобки пробовал добавлять убирать - нифига. Браузер выдает ошибку "unexpected else".
Спустя 13 минут, 5 секунд (15.10.2010 - 17:04) twin написал(а):
if(!empty($_POST['button']) and $text1 != null and $text2 != null);как там говорят... крапка с комою... ну вобщем точка с запятой зря.
Спустя 6 минут, 28 секунд (15.10.2010 - 17:10) Black Angel написал(а):
А я думаю, чё у мя if не работает... а ларчик просто открывался. Спс большое.
Спустя 16 минут, 12 секунд (15.10.2010 - 17:26) Black Angel написал(а):
<?php
// Простая запись в файл
header("Content_Type:html/text;charset:utf-8");
error_reporting(E_ALL);
$text1 = !empty($_POST['text1'])? $_POST['text1'] : null;
$text2 = !empty($_POST['text2'])? $_POST['text2'] : null;
?>
<style type="text/css">
.form1 {
height: 50px;
width: 50px;
}
</style>
<form action="" method="post" name="form1" class="form1" id="form1">
<label for="text1"></label>
<label for="textarea"></label>
<input type="text1" name="text1" id="text1" value=" <?php echo htmlspecialchars($_POST['text1'])?>" />
<textarea name="text2" id="textarea" value= "<?php echo nl2br(htmlspecialchars($_POST['text2']))?>"></textarea>
<input type="submit" name="button" id="button" value="Отправить">
</form>
<?php
if(!empty($_POST['button']) and $text1 != null and $text2 != null)
file_put_contents('text.txt',$text1."=".$text2."\r\n",FILE_APPEND);
else
echo ('Напишите что-нибудь' );
echo nl2br(htmlspecialchars(file_get_contents('text.txt')));
Бился, бился, но так ничего и не добился... Короче говоря, весь прикол в том, что не работает сохранение текста в текстарее а в text1 перед сохранившимся текстом возникает новый пробел.
Спустя 9 минут, 7 секунд (15.10.2010 - 17:35) twin написал(а):
value=" <?php echo htmlspecialchars($_POST['text1'])?>" />так ты сам его поставил же
Спустя 4 минуты, 13 секунд (15.10.2010 - 17:40) twin написал(а):
<textarea name="text2" id="textarea" value= "<?php echo nl2br(htmlspecialchars($_POST['text2']))?>"></textarea>У текстареи нет value. Вернее есть, но не для этих целей.
Спустя 1 минута (15.10.2010 - 17:41) Black Angel написал(а):
И что же делать?
Спустя 1 минута, 57 секунд (15.10.2010 - 17:43) Black Angel написал(а):
Всё получилось! Кусок кода нуно было пихнуть между тегом ареи и его замыкающей.
Спустя 1 час, 21 минута, 25 секунд (15.10.2010 - 19:04) Black Angel написал(а):
<?php
//Гостевая книга
header("Content_Type: text/html; charset: utf-8");
Error_reporting(E_ALL);
$text1 = !empty($_POST['text'])? $_POST['text'] : null;
$text2 = !empty($_POST['textarea'])? $_POST['textarea'] : null;
?>
<style type="text/css">
.form {
height: 200px;
width: 200px;
}
</style>
<label for="textfield"></label>
<form action="" method="post" name="form2" class="form">
<label for="textarea"></label>
<input type="text" name="text" id="text" value="
<?php
if(!empty($text1))
echo nl2br(htmlspecialchars(text1))
?>
">
<textarea name="textarea" id="textarea" cols="45" rows="5">
<?php
if(!empty($text2))
echo nl2br(htmlspecialchars(text2))
?>
</textarea>
<input type="submit" name="button" id="button" value="Отправить">
</form>
<?php
if(!empty($_POST['button']) and !empty($text1) and !empty($text2))
{
echo ('Ник:'.nl2br(htmlspecialchars($text1))."\n\r");
echo ('Сообщение:'.nl2br(htmlspecialchars($text2)));
}
elseif(empty($text1) or empty($text2) and !empty($POST['Button']))
echo('Все формы обязательны к заполнению!');
else
echo('Напишите что-нибудь');
?>
А вот. Вместо сохраненного текста выводится текст какой-то ошибки и еще никак не могу поставить перенос от строки с ником.
Спустя 15 минут, 32 секунды (15.10.2010 - 19:20) Black Angel написал(а):
С ошибкой разобрался. Но перенос всё равно не получается
Спустя 1 час, 19 минут, 14 секунд (15.10.2010 - 20:39) Black Angel написал(а):
Я обнаружил ошибку(или думаю, что обнаружил). В третьем шаге второй главы if(!empty($_POS[ok]), а в четвертом вместо empty - issetЮ и не объясняется.
Спустя 12 минут, 32 секунды (15.10.2010 - 20:51) twin написал(а):
какой главы
Спустя 24 минуты, 44 секунды (15.10.2010 - 21:16) Black Angel написал(а):
Всмысле в гостевой книге, вот
Спустя 2 часа, 58 минут, 3 секунды (16.10.2010 - 00:14) Black Angel написал(а):
<?php
//Гостевая книга
header("Content_Type: text/html; charset: utf-8");
Error_reporting(E_ALL);
$text1 = !empty($_POST['text'])? $_POST['text'] : null;
$text2 = !empty($_POST['textarea'])? $_POST['textarea'] : null;
if(isset($_POST['ok']))
{
if(!$text1)
echo 'Текстовое поле не заполнено.';
elseif(!$text2)
echo 'Текстовая область не заполнена.';
else
{
// пишем файл
file_put_contents('text.txt', $text2, FILE_APPEND);
// и перенаправляем браузер на новую страницу
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
// Останавливаем скрипт (все равно браузер уже ушел)
exit();
}
}
elseif((empty($text1) or empty($text2)))
echo('Все формы обязательны к заполнению!');
else
echo('Напишите что-нибудь');
?>
<style type="text/css">
.form {
height: 200px;
width: 200px;
}
</style>
<label for="textfield"></label>
<form action="" method="post" name="form2" class="form">
<label for="textarea"></label>
<input type="text" name="text" id="text" value="<?php if(!empty($text1)) echo(nl2br(htmlspecialchars($text1)))?>">
<textarea name="textarea" id="textarea" cols="45" rows="5">
<?php if(!empty($text2)) echo(nl2br(htmlspecialchars($text2)))
?>
</textarea>
<input type="submit" name="button" id="button" value="Отправить">
</form>
<?php
if(file_exists('text.txt'))
echo nl2br(htmlspecialchars(file_get_contents('text.txt')));
Да-да, я вас уже достал своим нубством, ну что поделаешь? Ошибка на ошибке, как обычно. Большую часть кода писал сам, коверкал, потому несоостветствия с нормальным кодом описанным в уроке вполне имеют место быть. И очень большие. Ошибка в том, что после отправки сообщения выдается ошибка загрузки страницы, когда тыцаю на ссылочку на ней, всё работает, но постов из документа нет и того, что яотправил в том числе. В чём проблема?
Спустя 36 минут, 18 секунд (16.10.2010 - 00:50) Black Angel написал(а):
Как нормально настроить Оперу? Эта скотина не хочет нормально читать страницу! Я в неё скопировал код с Сериализацией: абракадабра. А САфари всё схавала и выдала страницку на блюдечке с голубой каемочкой и нормальным текстом.
Спустя 1 час, 5 минут, 25 секунд (16.10.2010 - 01:56) aH6y написал(а):
Black Angel
кодировку проверял?
кодировку проверял?
Спустя 12 часов, 19 минут, 29 секунд (16.10.2010 - 14:15) Black Angel написал(а):
Даже специально в настройках сайта ставил в ручную: utf-8. В исходном коде что-то не то... там и абракадабра.
Спустя 15 минут, 50 секунд (16.10.2010 - 14:31) Black Angel написал(а):
ААА! Какой ужас! Раньше мой первый срипт читался нормально - теперь абракадабра!
Спустя 2 дня, 8 часов, 13 минут, 58 секунд (18.10.2010 - 22:45) Black Angel написал(а):
Так что с прогой в моем листинге?
Спустя 8 минут, 34 секунды (18.10.2010 - 22:54) Black Angel написал(а):
"А раз там в адресе $_SERVER['PHP_SELF'] - это адрес Вашего файла со скриптом, то откроется то же самое, но данные из формы исчезнут." - как то странно сформулировано предложение. Да и в принципе не помешало бы объяснитть про это поподробнее. А то ничего не понятно.
Спустя 39 минут, 39 секунд (18.10.2010 - 23:33) Nebe написал(а):
две недели не работал с сайтом. он у меня на компе. запустил сегодня денвер, а браузер вместо локального сайта ищет в нете. хотя ничеого не копирова ни куда не менял. раньше работало нормально, а теперь не видит сайт. подскажите как исправить такую проблему!
Спустя 26 минут, 31 секунда (19.10.2010 - 00:00) twin написал(а):
Только этот? Стартовую страницу видит?
Спустя 9 минут, 39 секунд (19.10.2010 - 00:10) Nebe написал(а):
не только етот. все сайты не видит. базу данных находит. тестовые страницы открываються, правда они на хтмле
Спустя 10 минут, 47 секунд (19.10.2010 - 00:20) Black Angel написал(а):
Мож автономный режим надо в браузере поставить?
Спустя 6 минут, 50 секунд (19.10.2010 - 00:27) Black Angel написал(а):
Цитата |
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\studyphp.ru\www\Index.php:1) in Z:\home\studyphp.ru\www\Index.php on line 8 |
- сказал браузер в ответ на мои хидеры. А браузер эт такой упрямый козёл, что как упрётся рогом, так ничего от не го больше и не добьешся. Причём такой же еррор щвыряет падла на сороковую строку, то бишь перенаправление. Почему? Даю листинг:
<?php
// Гостевая книга
/////////////////////////////////////////////////////////////////////////////////////////
// HEADERS
// ЗАГОЛОВКИ
/////////////////////////////////////////////////////////////////////////////////////////
header("Content-Type: text/html; charset=utf-8"); // Тип кода: html,кодировка: utf-8
ERROR_REPORTING(E_ALL); //Запрещаем браузеру скрывать от нас правду, какой бы горькой она не была
/////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES
// ПЕРЕМЕННЫЕ
/////////////////////////////////////////////////////////////////////////////////////////
$text1 = !empty( $_POST['text'])? $_POST['text'] : NULL ;
// Присваиваем значение переменной тесктового поля: если не пустое само поле, если пустое пустоту.
$text2 = !empty( $_POST['textarea'])? $_POST['textarea'] : NULL ;
// То же самое но для текстареи, то есть текстового поля.
$info = array(); // Создаем массив ошибок
////////////////////////////////////////////////////////////////////////////////////////
// SCRIPT
// СКРИПТ
////////////////////////////////////////////////////////////////////////////////////////
if(!empty($_POST['ok'])) // Если юзер тыцнул по кнопочке
{
if (!$text1) // Если текстовое поле пусто
$info[] = 'Тестовое поле не заполнено!'; // Кидаем в массив ошибок такой вот месседж
if(!$text2) // Если текстовая область пуста
$info[] = 'Текстовая область не заполнена!'; // Снова кидаем сообщение об этом в массив ошибок
if (empty($info)) // Но(!) если массив ошибок пуст( то бишь количество значений массива = 0)
{
File_put_contents('text.txt','Ник:'. $text1."/r/n".'Сообщение:'.$text2."/r/n".'-------------------------------------------'."/r/r",FILE_APPEND ); // Пишем в файл вот такую дребедень
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); // И перенаправляем на эту же страницу
exit(); // Выходим из скрипта
}
}
else
$info[] = 'Напишите что-нибудь';
////////////////////////////////////////////////////////////////////////////////////////
// VIEW
// ОТОБРАЖЕНИЕ
////////////////////////////////////////////////////////////////////////////////////////
?>
<style type="text/css">
.Форма {
height: 200px;
width: 200px;
}
</style>
<form action="" method="post" name="form1" target="_self" class="Форма">
<p>Ник:
<input type="text" name="text" id="text" value="
<?php
echo htmlspecialchars($text1); // Выводим значением поля, точ то ввёл юзер, отформатированное
?>">
</p>
<p>
Сообщение:
<textarea name="textarea" id="textarea" cols="45" rows="5"><?php
echo nl2br(htmlspecialchars($text2)); // То же самое, но на этот раз добавляем еще и переносы
?>
</textarea>
<input type="submit" name="ok" id="ok" value="Отправить">
</p>
</form>
<label for="text"></label>
<label for="textarea"></label>
<?php //html и css код комментировать не желаю. Ну не в ладах я с ним!(
//////////////////////////////////////////////////////////////////////////////////////
// OUTPUT
// ВЫВОД
//////////////////////////////////////////////////////////////////////////////////////
if (!empty($info))
echo implode('<br>'. $info). '<br>'; // Выводим массив ошибок через разделитель <br>
if(file_exists('text.txt'))
echo nl2br(htmlspecialchars(file_get_contents('text.txt'))); // Выводим внизу собственно сами сообщение, тоже отформатированные таким образом
Спустя 12 минут, 8 секунд (19.10.2010 - 00:39) aH6y написал(а):
Black Angel,
убирай это. пиши где-то в другом месте.
ошибку пишет т.к. уже было что-либо отправлено в браузер до твоего:
убирай это. пиши где-то в другом месте.
header("Content-Type: text/html; charset=utf-8"); // Тип кода: html,кодировка: utf-8
ошибку пишет т.к. уже было что-либо отправлено в браузер до твоего:
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); // И перенаправляем на эту же страницу
Спустя 3 минуты, 37 секунд (19.10.2010 - 00:43) Black Angel написал(а):
В каком другом?
Не понял. Можео поподробнее и как с этим боротся.

Не понял. Можео поподробнее и как с этим боротся.
Спустя 9 минут, 57 секунд (19.10.2010 - 00:53) aH6y написал(а):
Black Angel
если ты переводишь пользователя на другую страницу, то exit можно не писать, т.к. в нём смысла 0.
пиши этот:
перед самой конструкцией:
например написать так:
если ты переводишь пользователя на другую страницу, то exit можно не писать, т.к. в нём смысла 0.
exit(); // Выходим из скрипта
пиши этот:
header("Content-Type: text/html; charset=utf-8"); // Тип кода: html,кодировка: utf-8
перед самой конструкцией:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
...
<body>
например написать так:
else
$info[] = 'Напишите что-нибудь';
header("Content-Type: text/html; charset=utf-8"); // Тип кода: html,кодировка: utf-8
Спустя 7 часов, 16 минут, 28 секунд (19.10.2010 - 08:09) Nebe написал(а):
Цитата (Black Angel @ 18.10.2010 - 21:20) |
Мож автономный режим надо в браузере поставить? |
в остальных браузерах то же самое. нивидит нифига. может прийдется переустанавливать денвер, тогда нужно как то таблицы сохранить, только не знаю как....
Спустя 36 минут, 56 секунд (19.10.2010 - 08:46) aH6y написал(а):
Nebe
если интерпретатор не интерпретирует страницу, то разницы с какого браузера заходить и смотреть на страницу - нету.
если интерпретатор не интерпретирует страницу, то разницы с какого браузера заходить и смотреть на страницу - нету.
Спустя 15 минут, 52 секунды (19.10.2010 - 09:02) twin написал(а):
Спустя 1 минута, 4 секунды (19.10.2010 - 09:03) twin написал(а):
aH6y
Цитата |
если ты переводишь пользователя на другую страницу, то exit можно не писать, т.к. в нём смысла 0. |
Что за ересь? Зачем скрипту работать дальше, если пользователь ушел уже?
Спустя 4 часа, 58 минут, 18 секунд (19.10.2010 - 14:01) Black Angel написал(а):
А как дримвивер настроить? Я в нём работаю. Прога на все случаи (вебмастерской) жизни.
Спустя 1 час, 55 минут, 8 секунд (19.10.2010 - 15:57) aH6y написал(а):
twin
как я понимаю получаеться, что пользователь ушел, а страница генерируеться до конца?
как я понимаю получаеться, что пользователь ушел, а страница генерируеться до конца?
Спустя 15 минут, 57 секунд (19.10.2010 - 16:13) twin написал(а):
Страница, это то, что в браузере. Результат работы скрипта. А если браузер ушел, кому скрипт результат представит? Зачем ему дальше работать?
Спустя 2 часа, 28 минут, 10 секунд (19.10.2010 - 18:41) aH6y написал(а):
twin
я так и думал. спасибо
как я понял: писать нужно т.к. убираеться лишняя нагрузка связанная с интерпретацией кода, который уже не нужен т.к. пользователь ушел на другую страницу. правильно?
я так и думал. спасибо
как я понял: писать нужно т.к. убираеться лишняя нагрузка связанная с интерпретацией кода, который уже не нужен т.к. пользователь ушел на другую страницу. правильно?
Спустя 4 часа, 59 минут, 27 секунд (19.10.2010 - 23:40) Black Angel написал(а):
Так, нарот. Прошу подробно( для особо одаренных) описать что делать со вторым хидером! И как настроить дримвивер!
Спустя 26 минут, 59 секунд (20.10.2010 - 00:07) aH6y написал(а):
Black Angel
правильно - народ
сам пытался?
правильно - народ
сам пытался?
Спустя 7 часов, 19 минут, 9 секунд (20.10.2010 - 07:26) twin написал(а):
Как настроить тут
А что со вторым хидером?
А что со вторым хидером?
Спустя 8 часов, 8 минут, 36 секунд (20.10.2010 - 15:35) Black Angel написал(а):
При нажатии кнопки "Отправить" выскакивает такая же ошибка как и с первым.
Спустя 1 день, 2 часа, 14 минут, 12 секунд (21.10.2010 - 17:49) Black Angel написал(а):
Ау!!!!!!!
Спустя 54 минуты, 30 секунд (21.10.2010 - 18:44) twin написал(а):
А что ау? Влольф Мессинг скончался к сожалению
Ищи вывод.

Ищи вывод.
Спустя 2 часа, 48 минут, 20 секунд (21.10.2010 - 21:32) Black Angel написал(а):
Не понял
Спустя 5 минут, 55 секунд (21.10.2010 - 21:38) twin написал(а):
Такая ошибка бывает, когда до отправки заголовка есть вывод. Вот его и ищи. Или пробелы.
А где они - только провидец или телепат сказать может.
А где они - только провидец или телепат сказать может.

Спустя 5 дней, 17 часов, 50 минут, 43 секунды (27.10.2010 - 15:29) Black Angel написал(а):
Думал, думал, думал и сделал проще. Без перенаправления вообще, но с таким же эффектом, только без ошибки. В первом логическом ифе, присваиваем неокей переменной $error значение TRUE. Зато далее, там где у нас должно было быть перенаправление, присваиваем ей значение FALSE, а в присваивании значения полям, потом просто пишем:
if ($error)
echo nl2br(htmlspecialchars($text2))
И так же делаем для поля.
if ($error)
echo nl2br(htmlspecialchars($text2))
И так же делаем для поля.
Спустя 23 минуты, 56 секунд (27.10.2010 - 15:52) twin написал(а):
А теперь после внесения записи нажми F5
Спустя 5 минут, 40 секунд (27.10.2010 - 15:58) Black Angel написал(а):
Ой.... А почему?
Спустя 34 минуты, 21 секунда (27.10.2010 - 16:33) twin написал(а):
Ну потому что редирект именно для того. Там же написано.
Спустя 1 час, 18 минут, 56 секунд (27.10.2010 - 17:51) Black Angel написал(а):
А можно как-нибудь всё-таки сделать без перенаправления?
Спустя 1 минута, 53 секунды (27.10.2010 - 17:53) twin написал(а):
низя.
Спустя 23 секунды (27.10.2010 - 17:54) Lenarfate написал(а):
а как же аякс
Спустя 1 минута, 34 секунды (27.10.2010 - 17:55) twin написал(а):
пусть с этим разберется. На самом деле можно еще капчу поставить, форму прошить, сравнить на уникальность... Редирект все равно рулит.
Спустя 7 часов, 26 минут, 53 секунды (28.10.2010 - 01:22) Black Angel написал(а):
Блин... У мя с этим редиректом ашииипка...... и нима ни вывода ни пробела А ОН КАЗЁЛ!!!!!!!!!!! НЕ ХОЧЕТ ХАВАТЬ ПРАВИЛЬНЫЙ СРИПТ, ГАД!!!!!!!!!!!!!!!!!!!!!!!!!
Спустя 38 минут, 38 секунд (28.10.2010 - 02:01) inpost написал(а):
Black Angel
=)
=)
Спустя 3 часа, 29 минут, 33 секунды (28.10.2010 - 05:30) twin написал(а):
Ну текст ошибки то покажи. Чего бить в монитор мобилой?

Спустя 9 часов, 12 минут, 44 секунды (28.10.2010 - 14:43) Black Angel написал(а):
Мобилу жалкоо.... Показываю.
Вот листинг.
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\studyphp.ru\www\Index.php:1) in Z:\home\studyphp.ru\www\Index.php on line 44
Текст ашипки.
<?php
// Гостевая книга
/////////////////////////////////////////////////////////////////////////////////////////
// HEADERS
// ЗАГОЛОВКИ
/////////////////////////////////////////////////////////////////////////////////////////
header("Content-Type: text/html; charset=utf-8"); // Тип кода: html,кодировка: utf-8
ERROR_REPORTING(E_ALL); //Запрещаем браузеру скрывать от нас правду, какой бы горькой она не была
/////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES
// ПЕРЕМЕННЫЕ
/////////////////////////////////////////////////////////////////////////////////////////
$text1 = !empty( $_POST['text'])? $_POST['text'] : NULL ;
// Присваиваем значение переменной тесктового поля: если не пустое само поле, если пустое пустоту.
$text2 = !empty( $_POST['textarea'])? $_POST['textarea'] : NULL ;
// То же самое но для текстареи, то есть текстового поля.
$info = array(); // Создаем массив ошибок
////////////////////////////////////////////////////////////////////////////////////////
// SCRIPT
// СКРИПТ
////////////////////////////////////////////////////////////////////////////////////////
if(!empty($_POST['ok'])) // Если юзер тыцнул по кнопочке
{
if (!$text1) // Если текстовое поле пусто
$info[] = 'Тестовое поле не заполнено!'; // Кидаем в массив ошибок такой вот месседж
if(!$text2)
$info[] = 'Текстовая область не заполнена!'; // Снова кидаем сообщение об этом в массив ошибок
if (empty($info)) // Но(!) если массив ош!$text2) // Если текстоваибок пуст( то бишь количество значений массива = 0)
{
File_put_contents('text.txt','Ник:'. $text1."\r\n".'Сообщение:'.$text2."\r\n".'-------------------------------------------'."\r\n",FILE_APPEND ); // Пишем в файл вот такую дребедень
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
exit();
}
}
else
$info[] = 'Напишите что-нибудь';
////////////////////////////////////////////////////////////////////////////////////////
// VIEW
// ОТОБРАЖЕНИЕ
////////////////////////////////////////////////////////////////////////////////////////
?>
<style type="text/css">
.Форма {
height: 200px;
width: 200px;
}
</style>
<form action="" method="post" name="form1" target="_self" class="Форма">
<p>Ник:
<input type="text" name="text" id="text" value="<?php
echo htmlspecialchars($text1); // Выводим значением поля, то что ввёл юзер, отформатированное
?>">
</p>
<p>
Сообщение:
<textarea name="textarea" id="textarea" cols="45" rows="5"><?php
echo nl2br(htmlspecialchars($text2)); // То же самое, но на этот раз добавляем еще и переносы
?></textarea>
<input type="submit" name="ok" id="ok" value="Отправить">
</p>
</form>
<label for="text"></label>
<label for="textarea"></label>
<?php //html и css код комментировать не желаю. Ну не в ладах я с ним!(
//////////////////////////////////////////////////////////////////////////////////////
// OUTPUT
// ВЫВОД
//////////////////////////////////////////////////////////////////////////////////////
if (!empty($info))
echo implode('<br>'. $info). '<br>'; // Выводим массив ошибок через разделитель <br>
if(file_exists('text.txt'))
echo nl2br(htmlspecialchars(file_get_contents('text.txt'))); // Выводим внизу собственно сами сообщение, тоже отформатированные таким образом
Вот листинг.
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\studyphp.ru\www\Index.php:1) in Z:\home\studyphp.ru\www\Index.php on line 44
Текст ашипки.
Спустя 9 минут, 40 секунд (28.10.2010 - 14:53) twin написал(а):
Ну давали же ссылку. В этой прям теме...
Спустя 2 часа, 49 минут, 7 секунд (28.10.2010 - 17:42) Black Angel написал(а):
Я не знаю как настроить дримвивер. Ух ё как круто!!!!! УВсё ппашет, тока под формами такая шняга висит:Warning: implode() [function.implode]: Argument to implode must be an array. in Z:\home\studyphp.ru\www\Index.php on line 89
Спустя 20 часов, 25 минут (29.10.2010 - 14:07) Black Angel написал(а):
http://irbis-team.com/15/5/5 Вот тут - самый первый листинг. Наблюдаю такую конструкцию:
Можна пжста объяснить, зачем тут countЮ если empty прелестно работал?
if(count($info) == 0)
{
// Формируем массив поста
$posts[1]['date'] = date('d-m-Y');
$posts[1]['name'] = $text1;
$posts[1]['mess'] = $text2;
// Записываем в файл массив, преобразованный в строку
file_put_contents('text.txt', serialize($posts));
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
exit();
}
}
Можна пжста объяснить, зачем тут countЮ если empty прелестно работал?
Спустя 26 минут, 54 секунды (29.10.2010 - 14:34) aH6y написал(а):
Black Angel
Для проверки того, что $info не массив.
Для проверки того, что $info не массив.
Спустя 26 минут, 12 секунд (29.10.2010 - 15:00) twin написал(а):
Да одно и тоже на самом деле. Кому как нравится.
Спустя 1 час, 54 минуты, 24 секунды (29.10.2010 - 16:54) Black Angel написал(а):
Но по-моему то что вы просто меняли проверку(два раза) даже не упомянув об этом...
Спустя 5 минут (29.10.2010 - 16:59) twin написал(а):
Да? Я не трогал эту страницу больше двух месяцев... Странно...
Спустя 58 секунд (29.10.2010 - 17:00) Black Angel написал(а):
Всмысле в одном шаге такая, в другом другоя, запутатся очень легко.
Спустя 4 минуты, 46 секунд (29.10.2010 - 17:05) twin написал(а):
Аж любопытно стало... Прошелся - везде одинаково.
Да не суть. Оно и к лучшему. Вот теперь знаешь, что можно так и эдак. А можно еще так:
Да не суть. Оно и к лучшему. Вот теперь знаешь, что можно так и эдак. А можно еще так:
if(count($info))
{

Спустя 54 минуты, 59 секунд (29.10.2010 - 18:00) aH6y написал(а):
Black Angel
Если в чём-то не уверен, то попытайся потестировать работу той иль иной части кода в других вариациях. Создай скрипт и пробуй. Моё мнение: в PHP практика очень важна.
Если в чём-то не уверен, то попытайся потестировать работу той иль иной части кода в других вариациях. Создай скрипт и пробуй. Моё мнение: в PHP практика очень важна.
Спустя 45 минут, 53 секунды (29.10.2010 - 18:46) twin написал(а):
Вот хочется встать и заапладировать.
И м е н н о.
И м е н н о.

Спустя 13 минут, 59 секунд (29.10.2010 - 19:00) Black Angel написал(а):
aH6y
Я и не спорю, что важна, я переписываю скрипт на каждом шаге. Ну тогда хоть надо говорить, мол смотрите господа, еще можно так и так сделать, вот как было раньше и как сейчас оно одинаково.
Я вообще не вижу практической разницы isset и empty. Просто дубляж. Какой в этом смысл?
Я и не спорю, что важна, я переписываю скрипт на каждом шаге. Ну тогда хоть надо говорить, мол смотрите господа, еще можно так и так сделать, вот как было раньше и как сейчас оно одинаково.
Я вообще не вижу практической разницы isset и empty. Просто дубляж. Какой в этом смысл?
Спустя 3 минуты, 14 секунд (29.10.2010 - 19:03) Black Angel написал(а):
Цитата (twin @ 29.10.2010 - 14:05) |
Аж любопытно стало... Прошелся - везде одинаково. Да не суть. Оно и к лучшему. Вот теперь знаешь, что можно так и эдак. А можно еще так: if(count($info)) ![]() |
Насколько я понял, подобное ЧИСЛОВОЕ значение в if возвращает TRUE когда там что-то есть и FALSE, когда 0? Ну тогда выражение if(count($info) == 0) вообще бессмысленно, это идентично if(!count($info)) Как говорится, то что вверху создает избыточность кода по-моему.
Спустя 37 минут, 46 секунд (29.10.2010 - 19:41) twin написал(а):
Все верно. Вообще php - язык крайне неортогональный. Это значит, что одну задачу можно решить кучей способов.
Выбирать вам. Мое дело показать, как и что и где применимо.
Выбирать вам. Мое дело показать, как и что и где применимо.

Спустя 30 минут, 22 секунды (29.10.2010 - 20:11) Black Angel написал(а):
Но при этом ИЗБЫТОЧНОСТЬ КОДА. На html тоже можно сделать страицу тремя-четырьмя способами, но какой-то более логичен. Большая часть программ по авто-верстке кода создают избыточность. Та самая избыточность. Чем быстрее грузится файл тем лучше. Представьте большууююююю программу, с парой тысяч строк на одной странице. Там если писать каждый раз менее логично и более длинно, вес будет еще больше, причём на несколько килобайт.
Спустя 17 минут, 6 секунд (29.10.2010 - 20:28) twin написал(а):
молодец.
Спустя 21 минута, 8 секунд (29.10.2010 - 20:50) aH6y написал(а):
Black Angel
Ну вот поэтому и есть такие различия между понятиями любитель и профессиональный программист. Например я до сих пор себя не считаю проф программистом, хотя и каждый день узнаю что-нибудь новенькое. Откуда? Google, знакомые, этот форум.
Процесс написания своего велосипеда повышает профессиональный уровень программиста.
Возможно в чём-то эта цитата и неправа, но Я лично испытал на себе мораль цитаты. И как я уже писал: практика, практика и еще раз практика.
Ну вот поэтому и есть такие различия между понятиями любитель и профессиональный программист. Например я до сих пор себя не считаю проф программистом, хотя и каждый день узнаю что-нибудь новенькое. Откуда? Google, знакомые, этот форум.
Процесс написания своего велосипеда повышает профессиональный уровень программиста.
Возможно в чём-то эта цитата и неправа, но Я лично испытал на себе мораль цитаты. И как я уже писал: практика, практика и еще раз практика.
Спустя 19 часов, 50 минут, 31 секунда (30.10.2010 - 16:40) Black Angel написал(а):
Цитата (aH6y @ 29.10.2010 - 17:50) |
Процесс написания своего велосипеда повышает профессиональный уровень программиста. |
Я и не спорю. Полностью согласен. Я же говорою: переписываю скрипт каждый шаг. А так и надо. Я учусь по принципу: шаг прочитал несколько раз, запомнил хорошенько смысл, проникся логикой: и вперед писать скрипт с чистого листа!
Спустя 22 часа, 27 минут, 14 секунд (31.10.2010 - 16:07) Black Angel написал(а):
<?php
// Гостевая книга
////////////////////////////////////////////////////////////////////////////////// /////////////////
// HEADERS
// ЗАГОЛОВКИ
////////////////////////////////////////////////////////////////////////////////// /////////////////
header("Content-type=text/html; charset: utf-8");
error_reporting(E_ALL);
////////////////////////////////////////////////////////////////////////////////// /////////////////
// VARIABLES
// ПЕРЕМЕННЫЕ
////////////////////////////////////////////////////////////////////////////////// /////////////////
$text1 = !empty($_POST['text']) ? $_POST['text'] : NULL;
$text2 = !empty($_POST['textarea']) ? $_POST['textarea'] : NULL;
$info = array();
////////////////////////////////////////////////////////////////////////////////// ////////////////
// SCRIPT
// СКРИПТ
////////////////////////////////////////////////////////////////////////////////// ////////////////
if($_POST['ok'])
{
if(!$text1)
$info[] = 'Текстовое поле не заполнено' ;
if(!$text2)
$info[] = 'Текстовая область не заполнена' ;
if(!empty($info))
{
if(file_exists('text.txt'))
{
$posts = unserialize(file_get_contents('text.txt'));
$keys = keys($posts);
$id = max($keys) + 1;
}
else
$id=1;
$posts[$id]['date'] = date(d-m-Y);
$posts[$id]['name'] = $text1;
$posts[$id]['mess'] = $text2;
file_put_contents('text.txt',serialize($posts));
exit();
}
}
else
$info[] = 'Напишите что-нибудь';
////////////////////////////////////////////////////////////////////////////////// ///////////////
// VIEW
// ОТОБРАЖЕНИЕ
////////////////////////////////////////////////////////////////////////////////// ///////////////
?>
<form action="" method="post" name="form1" target="_self" class="Форма">
<p>Ник:
<input type="text" name="text" id="text" value="<?php
echo htmlspecialchars($text1); // Выводим значением поля, то что ввёл юзер, отформатированное
?>">
</p>
<p>
Сообщение:
<textarea name="textarea" id="textarea" cols="45" rows="5"><?php
echo nl2br(htmlspecialchars($text2)); // То же самое, но на этот раз добавляем еще и переносы
?></textarea>
<input type="submit" name="ok" id="ok" value="Отправить">
</p>
</form>
<?php
echo implode('<br>',$info).'<br>' ;
if(file_exists('text.txt'))
{ $array = unserialize(file_get_contents('text.txt'));
foreach($array as $id => $post)
{
$date = $post['date'];
$name = htmlspecialchars($post['name']);
$mess = nl2br(htmlspecialchars($post['mess']));
?>
<div style="border:1px solid; width:70%; background-color:#66FFFF; min-height:100px; margin:5px; padding:5px">
<?php echo $date; ?> / <strong><?php echo $name; ?></strong>
<hr width="30%" align="left" />
<?php echo $mess; ?>
</div>
<?php
}
}
И такие две ашипки:
Notice: unserialize() [function.unserialize]: Error at offset 0 of 5 bytes in Z:\home\studyphp.ru\www\Index.php on line 83
[Денвер: показать возможную причину ошибки]
Warning: Invalid argument supplied for foreach() in Z:\home\studyphp.ru\www\Index.php on line 85
Спустя 6 часов, 18 минут, 24 секунды (31.10.2010 - 22:26) Black Angel написал(а):
Што делать?
Спустя 1 день, 20 часов, 56 минут, 26 секунд (3.11.2010 - 19:22) Black Angel написал(а):
Ау
Спустя 1 час, 38 минут, 58 секунд (3.11.2010 - 21:01) twin написал(а):
Што делать?
Скачать образец и попробовать. Если работает, искать различия.
Скачать образец и попробовать. Если работает, искать различия.
Спустя 2 дня, 20 часов, 41 минута, 36 секунд (6.11.2010 - 17:43) Black Angel написал(а):
Теперь ошибки нет, но нихрена не работает. Посмотрел: ах вот он что, файл не создается, ****. Лазил по коду искал ошибки, но ничего так и не нашел.
Спустя 8 минут, 47 секунд (6.11.2010 - 17:51) inpost написал(а):
Black Angel
Права на папку надо 755, если не работает, то 777. Могло быть в этом ошибка.
Права на папку надо 755, если не работает, то 777. Могло быть в этом ошибка.
Спустя 2 часа, 12 минут, 15 секунд (6.11.2010 - 20:04) Black Angel написал(а):
Не понял. Как выставить права на Windows?
Спустя 2 дня, 5 часов, 41 минута, 31 секунда (9.11.2010 - 01:45) MNO121280 написал(а):
Может кому-нибудь пригодиться... В Adobe Dreamweaver CS3 UTF настраиватся так:
edit -> preferences... -> New Document -> Default ecncodin: Юникод(UTF-8)
Include Unicode Signature должна быть снята, хотя я лично для PHP использую Notepad++. Мне кажеться он удобней. И еще у меня такой вопрос: Если нужно на странице не одну, а две формы и кажадая с перенаправлением, как быть?
Я чтобы не заниматься копипастом, а разобраться для себя что, откуда и зачем стал делать такие заметки. Но когда дело дошло до перенаправления, два примера на страницу уже поместить нельзя, как я понял, или я ошибаюсь?
Внизу то, что у меня получилось:
edit -> preferences... -> New Document -> Default ecncodin: Юникод(UTF-8)
Include Unicode Signature должна быть снята, хотя я лично для PHP использую Notepad++. Мне кажеться он удобней. И еще у меня такой вопрос: Если нужно на странице не одну, а две формы и кажадая с перенаправлением, как быть?
Я чтобы не заниматься копипастом, а разобраться для себя что, откуда и зачем стал делать такие заметки. Но когда дело дошло до перенаправления, два примера на страницу уже поместить нельзя, как я понял, или я ошибаюсь?
Внизу то, что у меня получилось:
<?php
// Данный файл, создан в учебных целях
/**
* The guest book
* Гостевая книга
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/
header("Content-type: text/html; charset=utf-8");
error_reporting(E_ALL);
?>
<h3 style="color: red">Пример 1.</h3>
<form action="" method="post">
Текстовое поле text1
<input name="text1" type="text"><br />
Текстовое поле text2
<input name="text2" type="text"><br />
Текстовое поле text3
<input name="text3" type="text"><br />
<br /><input name="ok1" type="submit">
</form>
<?php
$text1 = !empty($_POST['text1']) ? $_POST['text1']:null;
echo "В текстовое поле text1 ввели: $text1<br />";
$text2 = !empty($_POST['text2']) ? $_POST['text2']:null;
echo "В текстовое поле text2 ввели: $text2<br />";
$text3 = !empty($_POST['text3']) ? $_POST['text3']:null;
echo "В текстовое поле text3 ввели: $text3<br />";
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; text-indent: 2em;">
Если ввести какой-нибудь текст в виде <Hello, world!>, то он не отобразиться, т. к. браузер интепретирует весь текст в угловых скобках, как тэг. Чтобы текст отображался коректно его нужно сначала обработать функцией htmlspecialchars(). Т. е. вместо echo $text; нужно писать echo htmlspecialchars($text);. Правильно работающий пример внизу:
</div>
<h3 style="color: red">Пример 2.</h3>
<form action="" method="post">
Текстовое поле text4
<input name="text4" type="text"><br />
Текстовое поле text5
<input name="text5" type="text"><br />
Текстовое поле text6
<input name="text6" type="text"><br />
<br /><input name="ok2" type="submit">
</form>
<?php
$text4 = !empty($_POST['text4']) ? $_POST['text4']:null;
echo "В текстовое поле text4 ввели: ".htmlspecialchars($text4)."<br />";
$text5 = !empty($_POST['text5']) ? $_POST['text5']:null;
echo "В текстовое поле text5 ввели: ".htmlspecialchars($text5)."<br />";
$text6 = !empty($_POST['text6']) ? $_POST['text6']:null;
echo "В текстовое поле text6 ввели: ".htmlspecialchars($text6)."<br />";
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; text-indent: 2em;">
Остается одна проблема, как сделать так, чтобы при отправке данных из формы поля, оставались заполнеными на тот случай, если мы где-то допустили ошибку. В преведущих примерах, мы сначала выводили на экран форму с текстовыми полями и кнопкой отправки данных. Затем создавали переменную, которую в зависимости от того, было ли заполнено соответсвующее поле либо инициализировали значение null, или записывали в нее данные полученные из формы и затем выводили на экран, при помощи оператора echo (придварительно не забыв ее обработать функцией htmlspecialchars() ). В наших примерах мы использовали следующие параметры тега input: name и type. Кроме этих параметров у этого тега есть еще один параметр: value (значение). Все что будет написано в параметре value="", будет написано в нашем текстовом поле, пока мы не введем в него новый текст. Если вместо занчения параметра value, вставить теги php <?php и ?>, то можно вывести в тесктовое поле текст полученный из него при отправки данных из формы. Оканчательный вид параметра value примет такой вид: value="<?php echo htmlspecialchars($text) ?>". Обращаем внимание, что при записи параметра нужно использовать "" а не '', чтоб избежать не нужных проблем в дальнейшем. Для того, чтоб все работало коректно, перепишем наши пример в следующем порядке: Сначала создадим переменную, в которую записывается текст полученый из текстового поля, не забыв при этом проверить было ли заполнено текстовое поле и если нет, то инициализировать ее значением null. Затем выводим на экран нашу форму, не забыв дописать в тег input параметр value="" вставив вместо зачения параметра код: <?php echo htmlspecialchars($text) ?>. И внизу под формой еще раз выведем текст полученный из нашей формы.
</div>
<h3 style="color: red">Пример 3.</h3>
<?php
$text7 = !empty($_POST['text7']) ? $_POST['text7']:null;
$text8 = !empty($_POST['text8']) ? $_POST['text8']:null;
$text9 = !empty($_POST['text9']) ? $_POST['text9']:null;
?>
<form action="" method="post">
Текстовое поле text7
<input name="text7" type="text" value="<?php echo htmlspecialchars($text7) ?>"><br />
Текстовое поле text8
<input name="text8" type="text" value="<?php echo htmlspecialchars($text8) ?>"><br />
Текстовое поле text9
<input name="text9" type="text" value="<?php echo htmlspecialchars($text9) ?>"><br />
<br /><input name="ok3" type="submit">
</form>
<?php
echo "В текстовое поле text7 ввели: ".htmlspecialchars($text7)."<br />";
echo "В текстовое поле text8 ввели: ".htmlspecialchars($text8)."<br />";
echo "В текстовое поле text9 ввели: ".htmlspecialchars($text9)."<br />";
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; text-indent: 2em;">
Часто, чтоб ограничить доступ к определенным страницам или сервисам на сайте, предлагают заполнить форму, и по результатам введенных данных либо разрешить доступ к странице или сервису, либо отказать в вежливой форме. Есть множество способов чтоб обойти это и получить доступ не только к определенной странице или сервису, но и другой секретной информации хранящейся на сайте. Чтоб предотвратить это, мы должны быть уверенны в том, что информация получена именно из нашей формы, а не откуда еще либо. Для этого мы должны убедиться что пользователь нажал кнопку отправки данных на сервер чтоб отправить информацию на сервер. Сделать это можно при помощи параметра name тега input(кнопки отправки данных на сервер) и конструкции if-else. Для того, чтоб убедиться в том, что кнопка была не нажата можно использовать функцию empty($_POST['Здесь мы пишем параметр name нашей кнопки']), затем при помощи знака "!" изменяем смысл нашего условия на противоположный (т. е. если кнопка была нажата) и проверяем это при помощи конструкции if. В итоговом варианте конструкция if будет иметь следующий вид: if(!empty($_POST['ok'])). Далее если кнопка нажата выводим текст введеный в текстовое поле. Если кнопка не нажата, т. е. условие которое мы задали в конструкции if осталось не выполненым, то при помощи инструкции else выводим сообщение об этом.
</div>
<h3 style="color: red">Пример 4.</h3>
<?php
$text10 = !empty($_POST['text10']) ? $_POST['text10']:null;
$text11 = !empty($_POST['text11']) ? $_POST['text11']:null;
$text12 = !empty($_POST['text12']) ? $_POST['text12']:null;
?>
<form action="" method="post">
Текстовое поле text10
<input name="text10" type="text" value="<?php echo htmlspecialchars($text10) ?>"><br />
Текстовое поле text11
<input name="text11" type="text" value="<?php echo htmlspecialchars($text11) ?>"><br />
Текстовое поле text12
<input name="text12" type="text" value="<?php echo htmlspecialchars($text12) ?>"><br />
<br /><input name="ok4" type="submit">
</form>
<?php
if(!empty($_POST['ok4']))
{
echo "В текстовое поле text10 ввели: ".htmlspecialchars($text10)."<br />";
echo "В текстовое поле text11 ввели: ".htmlspecialchars($text11)."<br />";
echo "В текстовое поле text12 ввели: ".htmlspecialchars($text12)."<br />";
}
else
echo 'Данные были получены не из формы!';
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify;"><span style="text-indent: 2em;">
Часто при заполнении формы регистраци или любой другой формы пользователь несколько полей может оставить незаполнеными, и мы должны предупредить пользователя об этом выведя в браузер специальное сообщение. Сначала мы должны проверить все ли поля заполнил пользователь, потом установить какие именно он оставил пустыми и уже затем вывести соответсвующее сообщение на экран. Для того чтоб выполнить такую проверку можно использовать конструкцию if-elseif-elsе. В начале будет проверяться условие, записанное в скобках после оператора if, и если оно истинно, то выполняться записанные после него инструкции. Если оно окажется ложным, то будет проверяться условие записанное после оператора elseif. Если же и оно окажется ложным, то все инструкции записаные после elseif будут пропущены, а выполнены будут те, которые будут записаны после оператора else. Получается что-то вроде небольшой лестницы, на каждой ступеньке которой проверяется записанное на ней условие. Если оно выполнено, то программа выполняет инструкции, которые мы установили для данной ступеньки, если нет то мы спускаемся на ступеньку ниже, и так пока не достигнем конца. Теперь давайте рассмотрим возможные варианты, и то, как мы на них будем реагировать.</span>
<pre>
Первый вариант:
Пользователь не заполнин текстовое поле, и нажал кнопку.
Действие:
Вывести сообщение, что текстовое поле не заполнено.
Второй вариант:
Пользователь заполнил текстовое поле и нажал кнопку
Действие:
Выводим текст введеный в текстовое поле.
Вариант третий:
Пользователь не нажал кнопку или данные получены не из формы.
Действие:
Выводим соответсвующее сообщение.
</pre>
<span style="text-indent: 2em;">
Проверку первого варианта можно поместить в конструкцию if. Все инструкции должны выполняться только в том случае, если оба условия (кнопка нажата и текстовое поле заполнено) выполнены. Сделать это можно при помощи оператора и - &&. Конструкция if будет выглядеть: if(условие1 && условие2), а именно if(!empty($_POST['ok']) && !$text).
Т. е. мы проверяем, чтоб кнопка была нажата и чтоб значение $text имелло значение null (именно таким значением мы инициализировали переменную, если соответсвующее ей текстовое поле не заполнено), т. е. пусто. В конструкции elseif мы просто проверяем, что кнопка была нажата: elseif(!empty($_POST['ok']). И наконец в инструкции else мы ничего не сравнивая выводим сообщение, что кнопка не разу не была нажата.
</span>
</div>
<h3 style="color: red">Пример 5.</h3>
<?php
$text13 = !empty($_POST['text13']) ? $_POST['text13']:null;
$text14 = !empty($_POST['text14']) ? $_POST['text14']:null;
$text15 = !empty($_POST['text15']) ? $_POST['text15']:null;
?>
<form action="" method="post">
Текстовое поле text13
<input name="text13" type="text" value="<?php echo htmlspecialchars($text13) ?>"><br />
Текстовое поле text14
<input name="text14" type="text" value="<?php echo htmlspecialchars($text14) ?>"><br />
Текстовое поле text15
<input name="text15" type="text" value="<?php echo htmlspecialchars($text15) ?>"><br />
<br /><input name="ok5" type="submit">
</form>
<?php
if(!empty($_POST['ok5']) && (!$text13 || !$text14 || !$text15))
echo 'Oдно из текстовых полей было не заполнено!<br />';
elseif(!empty($_POST['ok5']) && !empty($_POST['text13']) && !empty($_POST['text14'])
&& !empty($_POST['text15']))
{
echo "В текстовое поле text13 ввели: ".htmlspecialchars($text13)."<br />";
echo "В текстовое поле text14 ввели: ".htmlspecialchars($text14)."<br />";
echo "В текстовое поле text15 ввели: ".htmlspecialchars($text15)."<br />";
}
else
echo 'Данные были получены не из формы!';
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; ">
<span style="text-indent: 2em;">Теперь сделаем так чтоб сообщить пользователю не только то, что он не заполнил одно из полей, но еще и выведем сообщение из которого он может узнать, какое именно он не заполнил. Для этого воспользуемся конструкцией if-else, но после оператора if вставим еще одну конструкцию if-elseif с помощью которой будем выводить пользователю соответсвующие значения, в зависимости от того, какие поля не заполнены.</span>
Вот как будет выглядеть функция проверки формы:<br /><br />
<pre>
if(условие)
{
if(условие)
echo 'MessageError1';
elseif(условие)
echo 'MessageError2';
else
echo htmlspecialchars($text1), '<br>', htmlspecialchars($text2);
}
else
{
echo 'MessageError3';
}
</pre>
</div>
<h3 style="color: red">Пример 6.</h3>
<?php
$text16 = !empty($_POST['text16']) ? $_POST['text16']:null;
$text17 = !empty($_POST['text17']) ? $_POST['text17']:null;
$text18 = !empty($_POST['text18']) ? $_POST['text18']:null;
?>
<form action="" method="post">
Текстовое поле text16
<input name="text16" type="text" value="<?php echo htmlspecialchars($text16) ?>"><br />
Текстовое поле text17
<input name="text17" type="text" value="<?php echo htmlspecialchars($text17) ?>"><br />
Текстовое поле text18
<input name="text18" type="text" value="<?php echo htmlspecialchars($text18) ?>"><br />
<br /><input name="ok6" type="submit">
</form>[html]
<?php
if(!empty($_POST['ok6']))
{
if(!$text16)
echo 'Текстовое поле text16 не заполнено<br />';
if(!$text17)
echo 'Текстовое поле text17 не заполнено<br />';
if(!$text18)
echo 'Текстовое поле text18 не заполнено<br />';
else
{
echo "В текстовое поле text16 ввели: ".htmlspecialchars($text16)."<br />";
echo "В текстовое поле text17 ввели: ".htmlspecialchars($text17)."<br />";
echo "В текстовое поле text18 ввели: ".htmlspecialchars($text18)."<br />";
}
}
else
echo 'Данные были получены не из формы!';
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; text-indent: 2em;">
Одино из основных преимуществ Интернета, возможность тут же под статьей оставить свой комментарий к статье, интересному материалу или понравившейся фотографии. Так автор может из первых рук узнать о том, что в его статье непонятно, по коментариям можно найти единомышлеников или просто интресных людей и следить за их материалами. Тег <input> здесь не подходит, т. к. коменатрии обычно длинные, и при наборе большого текста, он станет невидим. Для этог используют специальное многострочное поле, которое созадается при помощи тега <textarea> - текстовая область. У текстовой области те же параметры, что и у тега <input>, но есть и дополнительные: cols и rows ( параметр cols - задает сколько знаков мы можем напечатать, а rows сколько знаков мы можем напечать в высоту, до появления вертикальной полосы прокрутки.)
</div>
<?php
$text13 = !empty($_POST['text13']) ? $_POST['text13']:null;
$text14 = !empty($_POST['text14']) ? $_POST['text14']:null;
$text15 = !empty($_POST['text15']) ? $_POST['text15']:null;
?>
<form action="" method="post">
Текстовое поле text13
<input name="text13" type="text" value="<?php echo htmlspecialchars($text13) ?>"><br />
Текстовое поле text14
<input name="text14" type="text" value="<?php echo htmlspecialchars($text14) ?>"><br />
Текстовое поле text15
<input name="text15" type="text" value="<?php echo htmlspecialchars($text15) ?>"><br />
<br /><input name="ok5" type="submit">
</form>
<?php
if(!empty($_POST['ok5']) && (!$text13 || !$text14 || !$text15))
echo 'Oдно из текстовых полей было не заполнено!<br />';
elseif(!empty($_POST['ok5']) && !empty($_POST['text13']) && !empty($_POST['text14'])
&& !empty($_POST['text15']))
{
echo "В текстовое поле text13 ввели: ".htmlspecialchars($text13)."<br />";
echo "В текстовое поле text14 ввели: ".htmlspecialchars($text14)."<br />";
echo "В текстовое поле text15 ввели: ".htmlspecialchars($text15)."<br />";
}
else
echo 'Данные были получены не из формы!';
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; ">
<span style="text-indent: 2em;">Теперь сделаем так чтоб сообщить пользователю не только то, что он не заполнил одно из полей, но еще и выведем сообщение из которого он может узнать, какое именно он не заполнил. Для этого воспользуемся конструкцией if-else, но после оператора if вставим еще одну конструкцию if-elseif с помощью которой будем выводить пользователю соответсвующие значения, в зависимости от того, какие поля не заполнены.</span>
Вот как будет выглядеть функция проверки формы:<br /><br />
<pre>
if(условие)
{
if(условие)
echo 'MessageError1';
elseif(условие)
echo 'MessageError2';
else
echo htmlspecialchars($text1), '<br>', htmlspecialchars($text2);
}
else
{
echo 'MessageError3';
}
</pre>
</div>
<h3 style="color: red">Пример 7.</h3>
<?php
$text19 = !empty($_POST['text19']) ? $_POST['text19']:null;
$text20 = !empty($_POST['text20']) ? $_POST['text20']:null;
$text21 = !empty($_POST['text21']) ? $_POST['text21']:null;
$text22 = !empty($_POST['text22']) ? $_POST['text22']:null;
?>
<form action="" method="post">
Текстовое поле text19
<input name="text19" type="text" value="<?php echo htmlspecialchars($text19) ?>"><br />
Текстовое поле text20
<input name="text20" type="text" value="<?php echo htmlspecialchars($text20) ?>"><br />
Текстовое поле text21
<input name="text21" type="text" value="<?php echo htmlspecialchars($text21) ?>"><br />
<br />Текстовая область text22<br />
<textarea name="text22" cols="45" rows="10"><?php echo htmlspecialchars($text22) ?></textarea><br />
<br /><input name="ok7" type="submit">
</form>
<?php
if(!empty($_POST['ok7']))
{
if(!$text19)
echo 'Текстовое поле text19 не заполнено<br />';
if(!$text20)
echo 'Текстовое поле text20 не заполнено<br />';
if(!$text21)
echo 'Текстовое поле text21 не заполнено<br />';
if(!$text22)
echo 'Текстовая область text22 не заполнена<br />';
else
{
echo "В текстовое поле text19 ввели: ".htmlspecialchars($text19)."<br />";
echo "В текстовое поле text20 ввели: ".htmlspecialchars($text20)."<br />";
echo "В текстовое поле text21 ввели: ".htmlspecialchars($text21)."<br />";
echo "В текстовую область text22 ввели: ".htmlspecialchars($text22)."<br />";
}
}
else
echo 'Данные были получены не из формы!';
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; text-indent: 2em;">
Когда мы печатаем в любом текстовом редакторе, какой-нибудь текст, мы используем клавишу enter для того, чтоб начать после ее нажатия, текст печаталься с новой строки. Но в нашем примере этого не произойдет. Почему? Потомучто в HTML-документе, перевод строки происходит после тега <br />. Но даже этот вариант нам не подойдет, т. к. функция htmlspecialchars( ) заменит тег на обычный текст и выведит их на страницу, так как они есть. Чтоб скрипт мог правильно вывести текст, нужно применить специальную функцию для вывода текстового поля nl2br(). Полный вариант будет выглядеть как: nl2br(htmlspecialchars($text)); . Но надо помнить что употреблять эти две функции нужно именно в этом порядке, иначе скрипт заменит переводы строки на тег <br /> и выведет их в браузер.
</div>
<h3 style="color: red">Пример 8.</h3>
<?php
$text23 = !empty($_POST['text23']) ? $_POST['text23']:null;
$text24 = !empty($_POST['text24']) ? $_POST['text24']:null;
$text25 = !empty($_POST['text25']) ? $_POST['text25']:null;
$text26 = !empty($_POST['text26']) ? $_POST['text26']:null;
?>
<form action="" method="post">
Текстовое поле text23
<input name="text23" type="text" value="<?php echo htmlspecialchars($text23) ?>"><br />
Текстовое поле text24
<input name="text24" type="text" value="<?php echo htmlspecialchars($text24) ?>"><br />
Текстовое поле text25
<input name="text25" type="text" value="<?php echo htmlspecialchars($text25) ?>"><br />
<br />Текстовая область text26<br />
<textarea name="text26" cols="45" rows="10"><?php echo htmlspecialchars($text26) ?></textarea><br />
<br /><input name="ok8" type="submit">
</form>
<?php
if(!empty($_POST['ok8']))
{
if(!$text23)
echo 'Текстовое поле text23 не заполнено<br />';
if(!$text24)
echo 'Текстовое поле text24 не заполнено<br />';
if(!$text25)
echo 'Текстовое поле text25 не заполнено<br />';
if(!$text26)
echo 'Текстовая область text26 не заполнена<br />';
else
{
echo "В текстовое поле text23 ввели: ".htmlspecialchars($text23)."<br />";
echo "В текстовое поле text24 ввели: ".htmlspecialchars($text24)."<br />";
echo "В текстовое поле text25 ввели: ".htmlspecialchars($text25)."<br />";
echo "В текстовую область text26 ввели: <br />".nl2br(htmlspecialchars($text26))."<br />";
}
}
else
echo 'Данные были получены не из формы!';
?>
<br /><a href="page002.php">Дальше>>></a>[/php]
<?php
// Данный файл, создан в учебных целях
/**
* The guest book
* Гостевая книга
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/
header("Content-type: text/html; charset=utf-8");
error_reporting(E_ALL);
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; text-indent: 2em;">
Если закрыть браузер и снова его откырыть, то мы снова увидем пустые поля. Все что мы записали в них до этого исчезло, т. к. нигде не сохранено. В реальной жизни такое не допустимо, т. к. заранее не известно, когда другие пользователи зайдут на сайт. Это может быть и рано утром и поздно вечером и даже ночью. Поэтому все коментарии нужно сохранить в отдельном месте. Для этого можно использовать обычных текстовой файл. В PHP это можно сделать с помощью функции file_put_contents( ). У этой функции мы зададим следующие параметры: имя файл в который будут записаны данные, переменные, в которые мы поместили содержимое текстового поля и специальные флаг, чтобы при добавлении новых записей, файл не перезаписывался, а добовлялись в конец файла. Окончательный вариант нашей функции будет выглядеть так: file_put_contents('text.txt',$text."\n",FILE_APPEND);
</div>
<h3 style="color: red">Пример 8.</h3>
<?php
$text29 = !empty($_POST['text29']) ? $_POST['text29']:null;
$text30 = !empty($_POST['text30']) ? $_POST['text30']:null;
?>
<form action="" method="post">
Текстовое поле text29
<input name="text29" type="text" value="<?php echo htmlspecialchars($text29) ?>"><br />
<br />Текстовая область text30<br />
<textarea name="text30" cols="45" rows="10"><?php echo htmlspecialchars($text30) ?></textarea><br />
<br /><input name="ok9" type="submit">
</form>
<?php
if(!empty($_POST['ok9']))
{
if(!$text29)
echo 'Текстовое поле text29 не заполнено<br />';
elseif(!$text30)
echo 'Текстовая область text30 не заполнена<br />';
else
{
echo "В текстовое поле text29 ввели: ".htmlspecialchars($text29)."<br />";
echo "В текстовую область text30 ввели: <br />".nl2br(htmlspecialchars($text30))."<br />";
file_put_contents('text1.txt', $text30 ."\n", FILE_APPEND);
}
}
else
echo 'Даные были получены не из формы!';
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; text-indent: 2em;">
Теперь сделаем так, чтобы преведущие коментарии отобразились на нашей странице. Тогда любой может не только оставить свой коментарий, но и прочитать другии. Сделать это можно с помощью функции file_get_contents. Но перед тем, как прочитать данные из текстового файла мы должны проверить есть ли файл с таким именем. Если это не сделать, то при его отсутствии мы получим сообщение об ошибке. Сделать это можно с помощью функции file_exists( ). Теперь добавим в конец следующий код проверки существования нужного нам текстового файла и если он существует выведем его содержимое на страницу при помощи фукции file_get_contents. Оканчательные вид кода вывода содержимого текстового файла на страницу: if(file_exists('text.txt')) echo nl2br(htmlspecialchars(file_get_contents('text.txt')));
</div>
<h3 style="color: red">Пример 9.</h3>
<?php
$text31 = !empty($_POST['text31']) ? $_POST['text31']:null;
$text32 = !empty($_POST['text32']) ? $_POST['text32']:null;
?>
<form action="" method="post">
Текстовое поле text31
<input name="text31" type="text" value="<?php echo htmlspecialchars($text31) ?>"><br />
<br />Текстовая область text32<br />
<textarea name="text32" cols="45" rows="10"><?php echo htmlspecialchars($text32) ?></textarea><br />
<br /><input name="ok10" type="submit">
</form>
<?php
if(!empty($_POST['ok10']))
{
if(!$text31)
echo 'Текстовое поле text31 не заполнено<br />';
if(!$text32)
echo 'Текстовая область text32 не заполнена<br />';
else
{
echo "В текстовое поле text31 ввели: ".htmlspecialchars($text31)."<br />";
echo "В текстовую область text32 ввели: <br />".nl2br(htmlspecialchars($text32))."<br />";
file_put_contents('text2.txt', $text32 ."\n", FILE_APPEND);
}
}
else
echo 'Даные были получены не из формы!';
if(file_exists('text2.txt'))
echo nl2br(htmlspecialchars(file_get_contents('text2.txt')));
?>
<br /><a href="page003.php">Дальше>>></a>
<?php
// Данный файл, создан в учебных целях
/**
* The guest book
* Гостевая книга
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/
header("Content-type: text/html; charset=utf-8");
error_reporting(E_ALL);
$text33 = !empty($_POST['text33']) ? $_POST['text33']:null;
$text34 = !empty($_POST['text34']) ? $_POST['text34']:null;
file_put_contents('text3_1.txt', $text33);
file_put_contents('text3_2.txt', $text34);
if(isset($_POST['ok11']))
{
if(!$text33)
echo 'Текстовое поле text33 не заполнено<br />';
if(!$text34)
echo 'Текстовая область text34 не заполнена<br />';
else
{
file_put_contents('text3.txt', $text34 ."\n", FILE_APPEND);
file_put_contents('text3_1.txt', $text33);
file_put_contents('text3_2.txt', $text34."\n");
header('location:http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit();
}
}
else
echo 'Данные были получены не из формы!';
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; text-indent: 2em;">
Теперь представим такой вариант. Кто-то из пользователей написал сообщение и отправляет его несколько раз, в результате чего, сервер испытывает лишнюю нагрузку, что может сказаться на его правильной работе. Поэтому мы должны, сделать так, чтоб пользователь мог послать сообщение не больше одного раза. Для этого можно использовать перенаправление с помощью заголовков в случае успешной записи данных в файл. Наш код пернаправления будет выглядеть следующим образом: header('location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); после чего останавливаем выполнение сценария функцией exit(). Это нужно сделать только после того, как данные успешно были сохранены, поэтому этот код нужно вставить после записи данных в текстовой файл. Но если это сделать без измениния структуры, то будет выведена ошибка, так как нельзя отправлять заголовок раньше вывода, поэтому нам придеться изменить структуру нашего примера. В преведущих прмерах мы сначала объявляли и инициализировали переменные, потом выводили на экран форму, и уже потом скрипт обрабатывал данные из формы. Чтобы препоцессор не выдавал ошибок нужно поменять местами вывод формы и сам скрипт. Т. е. сначала идут переменные, потом скрипт, а после него вывод формы. А код вывода данных из текстового файла помещаем после вывода формы
</div>
<h3 style="color: red">Пример 9.</h3>
<form action="" method="post">
Текстовое поле text33
<input name="text33" type="text" value="<?php echo htmlspecialchars($text33) ?>"><br />
<br />Текстовая область text34<br />
<textarea name="text34" cols="45" rows="10"><?php echo htmlspecialchars($text34) ?></textarea><br />
<br /><input name="ok11" type="submit">
</form>
<?php
if(file_exists('text3_1.txt'))
echo "В текстовое поле text33 ввели: ".htmlspecialchars(file_get_contents('text3_1.txt'))."<br />";
if(file_exists('text3_2.txt'))
echo "В текстовое поле text34 ввели: ".nl2br(htmlspecialchars(file_get_contents('text3_2.txt'))).'<br /><br />';
if(file_exists('text3.txt'))
echo nl2br(htmlspecialchars(file_get_contents('text3.txt')));
?>
<br /><a href="page004.php">Дальше>>></a>
<?php
// Данный файл, создан в учебных целях
/**
* The guest book
* Гостевая книга
* @author IT studio IRBIS-team
* @copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/
header("Content-type: text/html; charset=utf-8");
error_reporting(E_ALL);
$text35 = !empty($_POST['text35']) ? $_POST['text35']:null;
$text36 = !empty($_POST['text36']) ? $_POST['text36']:null;
$info = array();
file_put_contents('text4_1.txt', $text35);
file_put_contents('text4_2.txt', $text36);
if(isset($_POST['ok12']))
{
if(!$text35)
$info[] = 'Текстовое поле text35 не заполнено.<br />';
if(!$text36)
$info[] = 'Текстовая область text36 не заполнена.<br />';
if(count($info) == 0)
{
file_put_contents('text4.txt', $text36 ."\n", FILE_APPEND);
file_put_contents('text4_1.txt', $text35);
file_put_contents('text4_2.txt', $text36."\n");
header('location:http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit();
}
}
else
$info[] = 'Данные были получены не из формы!';
?>
<div style="margin: 1em 0.4em; padding:1em; background-color: #dddddd; border: solid 1px black; text-align: justify; text-indent: 2em;">
В преведущем примере, сообщение об ошибке выводиться выше формы, что не очень красиво. Для этого создаем массив $info, следующим кодом: $info = array(); и инициализируем его в том же месте, где и все остальные переменные. Так же нам придеться переделать проверку правильности ввода данных. Вместо вывода сообщений об ошибках, мы помещаем их в наш массив. И потом проверив наш массив, на наличие в нем элементов, в случае если он пустой, записываем данные из формы в текстовой файл и перенаправляем браузер на новую страницу. Если есть ошибки с помощью функции implode( ) собираем наши сообщения об ошибках и выводим их через разделитель <br /> на экран. Код который выполняет это будет таким: echo implode('<br />'$info).<br />.
</div>
<h3 style="color: red">Пример 10.</h3>
<form action="" method="post">
Текстовое поле text35
<input name="text35" type="text" value="<?php echo htmlspecialchars($text35) ?>"><br />
<br />Текстовая область text36<br />
<textarea name="text36" cols="45" rows="10"><?php echo htmlspecialchars($text36) ?></textarea><br />
<br /><input name="ok12" type="submit">
</form>
<?php
//echo implode('<br>'. $info) .'<br>';
echo implode('<br />', $info) .'<br />';
if(file_exists('text4_1.txt'))
echo "В текстовое поле text35 ввели: ".htmlspecialchars(file_get_contents('text4_1.txt'))."<br />";
if(file_exists('text4_2.txt'))
echo "В текстовое поле text36 ввели: ".nl2br(htmlspecialchars(file_get_contents('text4_2.txt'))).'<br /><br />';
if(file_exists('text4.txt'))
echo nl2br(htmlspecialchars(file_get_contents('text4.txt')));
?>
<br /><a href="page005.php">Дальше>>></a>
Спустя 3 часа, 12 минут, 4 секунды (9.11.2010 - 04:57) twin написал(а):
Вобщем пытался разобраться, запутался совершенно.
Сделай отдельную ветку и разложи каждый файл в отдельный пост. Задумка клевая, только в порядок привести.

Сделай отдельную ветку и разложи каждый файл в отдельный пост. Задумка клевая, только в порядок привести.
Спустя 1 час, 31 минута, 10 секунд (9.11.2010 - 06:28) MNO121280 написал(а):
Идея не моя. Просто есть хороший сайт: www.w3schools.com, там есть хорошая вещь как Try it Yourself Editor. Открываешь пример, правишь код, а потом тут же смотришь что из этого получилось. Да и самому понятней стало, могу даже на бумаге без компьютора что-нибудь написать. Как я понял тебя, нужно создать новую тему, и разложить каждый пример по разным темам? Но тогда мне придеться немножко исправить код, т. к. у меня они были с расширением *.php, и засчет нескольких форм на странице имитировалась послыка данных не из формы. И еще если не трудно, объясни как раскрашивать код в разные цвета. Хотелось бы так же красиво научиться оформлять код, как ты.
Спустя 2 часа, 30 минут, 50 секунд (9.11.2010 - 08:59) twin написал(а):
Спустя 9 часов, 58 минут, 39 секунд (9.11.2010 - 18:58) ShamanV написал(а):
Цитата (Black Angel @ 29.10.2010 - 16:00) |
aH6y Я вообще не вижу практической разницы isset и empty. Просто дубляж. Какой в этом смысл? |
Разницу увидеть просто. Напишите что-то вроде:
<?php
$test = 0;
echo 'test = '. $test .'<br> ' ;
echo empty($test) ? 'emty<br> ' : '!empty<br> ';
echo isset($test) ? 'isset<br> ' : '!isset<br> ';
можете сделать $test = '', $test = false или даже $test = '0' - все равно будет "пусто". А вот !isset случится только если закомментируете само объявление переменной.
Но даже на слух, ведь есть же разница: не объявленная переменная и пустая переменная? Собрались за молоком, взяли банку. Пока молока не нальем, банка пуста. Но она существует, как и объявленная переменная с пустым содержимым.
Спустя 3 дня, 12 минут, 12 секунд (12.11.2010 - 19:10) Black Angel написал(а):
MNO121280
А дримвивер зачем?! Он во-первых, сразу синтаксисные ошибки показывает, во-вторых текст красиво и выразительно подсвечивает.
А дримвивер зачем?! Он во-первых, сразу синтаксисные ошибки показывает, во-вторых текст красиво и выразительно подсвечивает.
Спустя 8 часов, 17 минут, 59 секунд (13.11.2010 - 03:28) MNO121280 написал(а):
Цитата (Black Angel @ 12.11.2010 - 16:10) |
А дримвивер зачем?! Он во-первых, сразу синтаксисные ошибки показывает, во-вторых текст красиво и выразительно подсвечивает. |
Лично я HTML верстаю в Dreamwiever CS3. Удобно! Но проблема в том, что многие его не знают как следует, а потом задают вопросы как в нем сменить кодировку. Я до этого по одной книге разбирался, как работать с XML на PHP. Браузер тображал краказябры, пока не сменишь в ручную кодировку. Сделал как учил Twin на своих курсах. В Notepad++ сменил кодировку на UTF-8 без BOM и сделал в корневой htccass и все зароботало, как часики. К тому же в Notepade можно настроить, чтобы по нажатию Tab, он заменял Tab на точки, плюс срвнение файлов и многое другое. Так что для HTML Dreamweaver, а для PHP Notepad++. Хотя это ИХМО, но все же...

Спустя 7 дней, 11 часов, 37 минут, 40 секунд (20.11.2010 - 15:06) bubu123 написал(а):
Неполучается создать хост в денвере.
обственно не судите строго) но уже на данном этапе возникли проблемы.
создаю папку my-site.ru в Z:\home
далее, в ней создаю папку www
перезапускаю денвер
в итоге по адресу my-site.ru в браузере перекидывает на http://my-site.ru/denwer/
и отображает страничку подобную http://localhost/denwer/
в папке my-site.ru кроме www никаких директив больше нету.
И подобная ситуация повторятся с любыми папками что я создаю в home
test1.ru который был в денвере изначально, работает исправно
index.php создавал в папке www, но результат остается темже
Как исправить так и не сообразил...
Но сидеть на месте лень.
Пошел в test1.ru удалил от туда все и записал свое
в www положил index.php
в папку test1.ru сунул .htaccess в нем написано "AddDefaultCharset UTF-8"
По адресу test1.ru в браузере наблюдаю след.
В общем два вопроса:
Почему неудается создать хост?
Где кириллица..?
Подскажите пожалуйста.
обственно не судите строго) но уже на данном этапе возникли проблемы.
создаю папку my-site.ru в Z:\home
далее, в ней создаю папку www
перезапускаю денвер
в итоге по адресу my-site.ru в браузере перекидывает на http://my-site.ru/denwer/
и отображает страничку подобную http://localhost/denwer/
в папке my-site.ru кроме www никаких директив больше нету.
И подобная ситуация повторятся с любыми папками что я создаю в home
test1.ru который был в денвере изначально, работает исправно
index.php создавал в папке www, но результат остается темже
Как исправить так и не сообразил...
Но сидеть на месте лень.
Пошел в test1.ru удалил от туда все и записал свое
в www положил index.php
<?php
header('Content-Type: text/html; charset=utf-8');
$var = 'Привет, Мир. Hello World!';
?>
<hl>
<?php
echo $var;
?>
</hl>
в папку test1.ru сунул .htaccess в нем написано "AddDefaultCharset UTF-8"
По адресу test1.ru в браузере наблюдаю след.
������, ���. Hello World!
В общем два вопроса:
Почему неудается создать хост?
Где кириллица..?
Подскажите пожалуйста.
Спустя 4 часа, 15 минут, 6 секунд (20.11.2010 - 19:21) kovaldm написал(а):
Про хост не знаю, а про кириллицу скажу - Сам скрипт тоже должен быть написан в утф8, она выставляется в настройках редактора. Плюс заголовок не помешает вот такой
header('content-type: text/html; charset=utf-8');
Спустя 4 минуты, 57 секунд (20.11.2010 - 19:26) DmitryOpalev написал(а):
Я все в ручную пишу

Спустя 7 минут, 12 секунд (20.11.2010 - 19:33) bubu123 написал(а):
Цитата ("kovaldm") |
Про хост не знаю, а про кириллицу скажу - Сам скрипт тоже должен быть написан в утф8, она выставляется в настройках редактора. Плюс заголовок не помешает вот такой |
Спасибо)
Цитата ("DmitryOpalev") |
Я все в ручную пишу smile.gif |
Вручную?) т.е. ... ?
Спустя 11 минут, 28 секунд (20.11.2010 - 19:45) DmitryOpalev написал(а):
Может не правильно немного выразился
В смысле в блокноте

В смысле в блокноте

Спустя 17 минут, 41 секунда (20.11.2010 - 20:02) bubu123 написал(а):
ну notepad почти тоже самое)
наворотов побольше, подумал для начала будет легче)
маленький вопрос:
я понимаю если бы это было boolean значение, а тут...
наворотов побольше, подумал для начала будет легче)
маленький вопрос:
как работает понимаю, но не могу сообразить как можно отрицать &text ?
if(!empty($_POST['ok']) && !$text)
echo 'Поле не заполнено.';
я понимаю если бы это было boolean значение, а тут...
Спустя 35 минут, 59 секунд (20.11.2010 - 20:38) kovaldm написал(а):
Можно.
Если в $text пустая строка или 0 => $text == false.
Если в $text пустая строка или 0 => $text == false.
Спустя 3 часа, 56 минут, 38 секунд (21.11.2010 - 00:35) Guest написал(а):
Вопрос по ББ-тегам, все работает отлично, кроме ссылок и кртинок, вместо них выводит в текст вот это:
Может функция не корректно работает?
[img]kuk[/img]
[url=kuk]kuk[/url]
Может функция не корректно работает?
Спустя 7 часов, 5 минут, 20 секунд (21.11.2010 - 07:40) twin написал(а):
Так не выйдет. Обязательно http:// надо.
Спустя 5 дней, 7 часов, 34 минуты, 59 секунд (26.11.2010 - 15:15) Guest написал(а):
Fatal error: Call to undefined function serialise() in Z:\home\studyphp.ru\www\Index.php on line 53
Чё делвть с этим щастьем?
Чё делвть с этим щастьем?
Спустя 3 минуты, 31 секунда (26.11.2010 - 15:19) twin написал(а):
Это печально.
Нужно, быть повнимательнее.
serialize()
Нужно, быть повнимательнее.
serialize()
Спустя 3 часа, 15 минут, 3 секунды (26.11.2010 - 18:34) Guest написал(а):
Так вот из-за чего вся эта хрень с предыдущими ошибками! Из-за одной, единственной буквы! Но почему тогда PhpDesigner молчал?
Спустя 5 минут, 51 секунда (26.11.2010 - 18:40) Black Angel написал(а):
Нет... Ошибка на этом не завершилась. Файл всё равно не создается гад.
Спустя 12 минут, 9 секунд (26.11.2010 - 18:52) twin написал(а):
Искать)))
Там есть рабочий образец. Скачай и сверь.
Там есть рабочий образец. Скачай и сверь.
Спустя 3 минуты, 43 секунды (26.11.2010 - 18:55) Black Angel написал(а):
Угумс.Спс.
Спустя 5 минут, 15 секунд (26.11.2010 - 19:01) Black Angel написал(а):
Лазил, лазил, искал, искал в итоге нашел такую странную штуку: если поля заполнены и жмём кнопку: ничего не происходит, а если поля пусты: ошибка редиректа. В ифах проблем не нашел, всё выполняется тогда, когда и должно. Ну что-то непонятное кароч.
Спустя 6 минут, 56 секунд (26.11.2010 - 19:08) Black Angel написал(а):
ЛОгическую ошибку нашел. Инверсия перед empty была не нужна, теперь ашипка нажатия кнопачки, но в файл пишет.Это видимо BOM, хотя в настройках специально вставил, чтоб его не было.
Спустя 6 минут, 3 секунды (26.11.2010 - 19:14) Black Angel написал(а):
BOM не отключается. Никак.
Спустя 3 минуты, 39 секунд (26.11.2010 - 19:17) twin написал(а):
Спустя 1 минута, 2 секунды (26.11.2010 - 19:18) Black Angel написал(а):
BOM стер. Не помогло. ВЫвело такой список ашипок:
Notice: unserialize() [function.unserialize]: Error at offset 0 of 3 bytes in Z:\home\studyphp.ru\www\Index.php on line 40
[Денвер: показать возможную причину ошибки]
Warning: array_keys() [function.array-keys]: The first argument should be an array in Z:\home\studyphp.ru\www\Index.php on line 42
Warning: Wrong parameter count for max() in Z:\home\studyphp.ru\www\Index.php on line 44
Notice: Use of undefined constant d - assumed 'd' in Z:\home\studyphp.ru\www\Index.php on line 50
Notice: Use of undefined constant m - assumed 'm' in Z:\home\studyphp.ru\www\Index.php on line 50
Notice: Use of undefined constant y - assumed 'y' in Z:\home\studyphp.ru\www\Index.php on line 50
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\studyphp.ru\www\Index.php:40) in Z:\home\studyphp.ru\www\Index.php on line 60
Notice: unserialize() [function.unserialize]: Error at offset 0 of 3 bytes in Z:\home\studyphp.ru\www\Index.php on line 40
[Денвер: показать возможную причину ошибки]
Warning: array_keys() [function.array-keys]: The first argument should be an array in Z:\home\studyphp.ru\www\Index.php on line 42
Warning: Wrong parameter count for max() in Z:\home\studyphp.ru\www\Index.php on line 44
Notice: Use of undefined constant d - assumed 'd' in Z:\home\studyphp.ru\www\Index.php on line 50
Notice: Use of undefined constant m - assumed 'm' in Z:\home\studyphp.ru\www\Index.php on line 50
Notice: Use of undefined constant y - assumed 'y' in Z:\home\studyphp.ru\www\Index.php on line 50
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\studyphp.ru\www\Index.php:40) in Z:\home\studyphp.ru\www\Index.php on line 60
Спустя 2 минуты, 15 секунд (26.11.2010 - 19:21) Black Angel написал(а):
Ага!Если файл уже создан, то пересохранять его, даже без BOM бессмысленно, так как программой BOM не стирается. Вот!
Спустя 38 минут, 12 секунд (26.11.2010 - 19:59) Black Angel написал(а):
Терь я знаю: ошибка редиректа происходит когда файл пуст. Вот.
Спустя 20 часов, 52 минуты, 9 секунд (27.11.2010 - 16:51) Guest написал(а):
У вас в коде есть ошибка. Была функция dirScan(У меня). Выскаивали ошибки в ней. Скопировал в ту же программу эту же функцию но вашу, посмотрел: идентичны. Ладно, заменил мою на вашу. Все те же ошибки. http://irbis-team.com/15/5/7 в первом листинге и список шибок:
Warning: scandir(data) [function.scandir]: failed to open dir: No error in Z:\home\studyphp.ru\www\Index.php on line 40
Warning: scandir() [function.scandir]: (errno 0): No error in Z:\home\studyphp.ru\www\Index.php on line 40
Warning: array_diff() [function.array-diff]: Argument #1 is not an array in Z:\home\studyphp.ru\www\Index.php on line 42
Warning: scandir(data) [function.scandir]: failed to open dir: No error in Z:\home\studyphp.ru\www\Index.php on line 40
Warning: scandir() [function.scandir]: (errno 0): No error in Z:\home\studyphp.ru\www\Index.php on line 40
Warning: array_diff() [function.array-diff]: Argument #1 is not an array in Z:\home\studyphp.ru\www\Index.php on line 42
Спустя 20 минут, 22 секунды (27.11.2010 - 17:11) twin написал(а):
А директория есть? А файл в ней?
Спустя 2 часа, 28 минут, 57 секунд (27.11.2010 - 19:40) Guest написал(а):
Директория есть. Файл не создается.
Спустя 7 минут, 24 секунды (27.11.2010 - 19:48) Guest написал(а):
Файл создается. Проблема была в том, что я вместо empty использовал равенство с нулем, а массив даже если пуст, не может быть равен нулю. Вот как то так. В логике кароч. А можно ли как то создать директорию если её нима? В программе?
Спустя 1 минута, 46 секунд (27.11.2010 - 19:49) twin написал(а):
Спустя 13 часов, 35 минут, 59 секунд (28.11.2010 - 09:25) Shoroh написал(а):
Добрый день.
Пытался следовать урокам, но постоянно натыкался на какие то ошибки. В итоге уже даже скачал готовые примеры из уроков и выложил к себе на сервер: microgenius.ru/test/
Но даже там ссылки ведут непонятно куда, с ошибкой.
Но судя по всему у всех все работает. Что я делаю не так?
Пытался следовать урокам, но постоянно натыкался на какие то ошибки. В итоге уже даже скачал готовые примеры из уроков и выложил к себе на сервер: microgenius.ru/test/
Но даже там ссылки ведут непонятно куда, с ошибкой.
Но судя по всему у всех все работает. Что я делаю не так?
Спустя 22 минуты, 27 секунд (28.11.2010 - 09:48) DySprozin написал(а):
Shoroh
ты задавай конкретные вопросы (; какой урок, что делал, какую выдает ошибку...
ты задавай конкретные вопросы (; какой урок, что делал, какую выдает ошибку...
Спустя 3 минуты, 38 секунд (28.11.2010 - 09:51) twin написал(а):
Наверняка был проигнорирован .htaccess
Вот так же работает.
Ничего пропускать нельзя, важна каждая буква.
Вот так же работает.
Ничего пропускать нельзя, важна каждая буква.
Спустя 1 час, 14 минут, 28 секунд (28.11.2010 - 11:06) Shoroh написал(а):
twin
Да, этот файл я забыл добавить после того, как скачал ваш архив с примером (думал он там есть). Скачивал вот это: www2.zip
Теперь ссылки ведут на главную страницу сайта microgenius.ru. Почему? Я думал пути относительные, а получается они привязаны именно к началу сайта?
А на локальном сервере ссылки открывают "содержимое каталога test". Если принудительно ввести в адресной строке путь до main, то выдает такую ошибку:
Forbidden
You don't have permission to access /test.com/modules/main/ on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Да, этот файл я забыл добавить после того, как скачал ваш архив с примером (думал он там есть). Скачивал вот это: www2.zip
Теперь ссылки ведут на главную страницу сайта microgenius.ru. Почему? Я думал пути относительные, а получается они привязаны именно к началу сайта?
А на локальном сервере ссылки открывают "содержимое каталога test". Если принудительно ввести в адресной строке путь до main, то выдает такую ошибку:
Forbidden
You don't have permission to access /test.com/modules/main/ on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Спустя 40 минут, 40 секунд (28.11.2010 - 11:47) twin написал(а):
В конфигурационном файле нужно прописать путь, если сайт не в крне хоста
define('IRB_HOST', 'http://'. $_SERVER['HTTP_HOST'] .'/my_site/');
Спустя 4 минуты, 57 секунд (28.11.2010 - 11:52) Shoroh написал(а):
twin
Исправил, но теперь вторая ссылка выводит гостевую, а сверху вот такая ошибка:
Notice: unserialize(): Error at offset 178 of 181 bytes in /hsphere/local/home/bankomatchik-162/microgenius.ru/test/libs/model.php on line 48 Warning: Invalid argument supplied for foreach() in /hsphere/local/home/bankomatchik-162/microgenius.ru/test/modules/second/read_controller.php on line 71
Исправил, но теперь вторая ссылка выводит гостевую, а сверху вот такая ошибка:
Notice: unserialize(): Error at offset 178 of 181 bytes in /hsphere/local/home/bankomatchik-162/microgenius.ru/test/libs/model.php on line 48 Warning: Invalid argument supplied for foreach() in /hsphere/local/home/bankomatchik-162/microgenius.ru/test/modules/second/read_controller.php on line 71
Спустя 3 минуты, 50 секунд (28.11.2010 - 11:55) twin написал(а):
Ну я хоть и пытался брать уроки ясновидения, толку это не принесло.
На расстоянии кода так и не научился разглядывать.
Переводи ошибку, смотри адрес, анализируй. Все в твоих руках.
На расстоянии кода так и не научился разглядывать.
Переводи ошибку, смотри адрес, анализируй. Все в твоих руках.
Спустя 18 минут, 25 секунд (28.11.2010 - 12:14) Shoroh написал(а):
Цитата (twin @ 28.11.2010 - 08:55) |
На расстоянии кода так и не научился разглядывать. |
Код был взят ЦЕЛИКОМ из вашего архива www6.zip (скачал с вашего же сайта).
Не надо быть телепатом, что бы открыть его и посмотреть ))
Я его не изменял, кроме тех рекомендаций, которые вы здесь написали (добавил в корень файл .htaccess с таким содержимым:
Цитата |
AddDefaultCharset UTF-8 php_flag magic_quotes_gpc Off php_flag magic_quotes_runtime Off php_flag register_globals Off ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html Options -Indexes |
Плюс добавил путь к папке test:
define('IRB_HOST', 'http://'. $_SERVER['HTTP_HOST'] .'/test/');
Итого:
1. На локальном сервере вроде все работает.
2. На микрогениусе выдается ошибка, которая выше.
Такое ощущение, что скрипт не может получить доступ к файлу для чтения записей из гостевой книги, но я уже выставил там 777, не помогло.
Спустя 12 минут, 8 секунд (28.11.2010 - 12:26) twin написал(а):
А, ну так тут то тоже надо добавить путь:
define('IRB_ROOT', str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']) .'/test/');
Спустя 2 часа, 50 минут, 45 секунд (28.11.2010 - 15:17) Shoroh написал(а):
twin
Ага, сделал. Теперь такая ошибка:
Ага, сделал. Теперь такая ошибка:
Цитата |
Warning: include(./modules/second/router.php): failed to open stream: Permission denied in /hsphere/local/home/bankomatchik-162/microgenius.ru/test/index.php on line 83 Warning: include(): Failed opening './modules/second/router.php' for inclusion (include_path='.:/hsphere/shared/apache/libexec/php5ext/php/') in /hsphere/local/home/bankomatchik-162/microgenius.ru/test/index.php on line 83 |
Получается что в папке modules/second находятся три файла и у всех размер нулевой. Перезапись не помогает - все равно нулевые. Видать это связанно с паролем на доступ к файлам. И как их открыть?
Спустя 1 час, 36 минут, 54 секунды (28.11.2010 - 16:54) twin написал(а):
Ничего не понял, почему нулевые... Что то напутано на хостинге у тебя явно.
Спустя 17 минут, 20 секунд (28.11.2010 - 17:11) Shoroh написал(а):
Сам впервые с этим столкнулся - переписываешь файлы (все сразу, через filezilla), все вроде встают как надо, а только в папке second они теряют размер и ставятся странные права доступа, которые меняй-не меняй снова становятся такими.
На этом хостинге работают движки phpbb3, joomla и wordpress. Так что сам хост наверно можно исключить.
В общем не везет мне что-то с вашими уроками - слишком много вопросов и затычек, аж самому уже не удобно вас тревожить.
На этом хостинге работают движки phpbb3, joomla и wordpress. Так что сам хост наверно можно исключить.
В общем не везет мне что-то с вашими уроками - слишком много вопросов и затычек, аж самому уже не удобно вас тревожить.
Спустя 50 минут, 55 секунд (28.11.2010 - 18:02) twin написал(а):
Не с уроками а с хостингом похоже не везет. Дома же работает?

Спустя 7 минут, 54 секунды (28.11.2010 - 18:10) Shoroh написал(а):
Ну дома работает, но и другие движки на хостинге пашут и не жужжат
Сделал другой каталог test2 - http://microgenius.ru/test2/?page=second
Теперь там такая ошибка:

Сделал другой каталог test2 - http://microgenius.ru/test2/?page=second
Теперь там такая ошибка:
Цитата |
Notice: unserialize(): Error at offset 178 of 264 bytes in /hsphere/local/home/bankomatchik-162/microgenius.ru/test2/libs/model.php on line 48 Warning: Invalid argument supplied for foreach() in /hsphere/local/home/bankomatchik-162/microgenius.ru/test2/modules/second/read_controller.php on line 71 |
При этом файлы в папке second нормальные, не нулевые. Пути исправил на test2, в обоих переменных, как указывали выше. Хрен знает в чем тут дело, не дается каменный цветок )))
Спустя 6 часов, 33 минуты, 12 секунд (29.11.2010 - 00:43) blx написал(а):
Большое спасибо за курс, узнал много полезного и интересного для себя.
Заметил небольшой баг на Вашем сайте в разделе Оглавление:
4. Простой сайт
4.1 Архивирование файлов
4.2 Постраничная навигация
4.3 Панель администрирования
4.4 Итоги
4.4.2 Образец
Не правильно указаны названия "шагов".
Заметил небольшой баг на Вашем сайте в разделе Оглавление:
4. Простой сайт
4.1 Архивирование файлов
4.2 Постраничная навигация
4.3 Панель администрирования
4.4 Итоги
4.4.2 Образец
Не правильно указаны названия "шагов".
Спустя 21 час, 49 минут, 54 секунды (29.11.2010 - 22:33) Guest написал(а):
Можно вопрос по базе данных! А что если админку на сервер не вылаживать, а писать на домашнем крмпе информацию на местную базу. А потом ипортировать сами таблицы или добавления. Такое практикуется или есть подвох. Еще не разу не работал с удаленными серверами.
Спустя 18 часов, 36 минут, 41 секунда (30.11.2010 - 17:10) Black Angel написал(а):
http://irbis-team.com/15/3/2
Не понял смысла в буферизации. Что мешает ту же разметку просто подключить функцией include?
И еще вопрос. Как быть если у меня на сайте табличный дизайн? Делать разметку прямо в index.php или как-то впихнуть в index.tpl? И как?
Не понял смысла в буферизации. Что мешает ту же разметку просто подключить функцией include?
И еще вопрос. Как быть если у меня на сайте табличный дизайн? Делать разметку прямо в index.php или как-то впихнуть в index.tpl? И как?
Спустя 25 минут, 1 секунда (30.11.2010 - 17:35) twin написал(а):
а переключать как?
Спустя 1 минута, 15 секунд (30.11.2010 - 17:36) Black Angel написал(а):
Эм... Не подумал. А как быть если табоичный дизайн? Куда эту разметку таблицы пихать?
Спустя 4 часа, 51 минута, 41 секунда (30.11.2010 - 22:27) Black Angel написал(а):
Блин. Сделал адреса гиперссылок переменными. До и после "=" ставится %20 и в итоге прога не работает. Как убрать эти процентики?
Спустя 12 минут, 45 секунд (30.11.2010 - 22:40) Black Angel написал(а):
Еще одна страшная штука. Есть файл show.tpl, в котором: <?php echo $dinam ?>
Динам: строка, результат исполнения скрипта. Я в свитче подключаю его вместе со скриптом, всё вроде правильно, в таблице возникает надпись, но... надпись возникает и над таблицей в начале страницы. Это что такое?
Динам: строка, результат исполнения скрипта. Я в свитче подключаю его вместе со скриптом, всё вроде правильно, в таблице возникает надпись, но... надпись возникает и над таблицей в начале страницы. Это что такое?
Спустя 1 час, 8 минут, 59 секунд (30.11.2010 - 23:49) twin написал(а):
Цитата |
До и после "=" ставится %20 и в итоге прога не работает. Как убрать эти процентики? |
это пробелы. Не надо там они.
А по второму - где то с буферизацией попутал.
А по второму - где то с буферизацией попутал.
Спустя 1 день, 20 часов, 28 минут, 33 секунды (2.12.2010 - 20:18) Black Angel написал(а):
Где? Где это может быть? Я залазил во все ответственные за это дело файлы, в индексе ничего нет, в шаблоне индекса $content вызывается тоже только один раз, в контроллерах тоже ничего нет, а поскольку ашипка на всех страницах, то наверное она либо в index.tpl либо в index.php. Может выложить листинги? Кидается оно чётко в верхушку body. Я до дыр порассматривал в шаблоне то место где "изнеоткуда" возникает содержание переменной $content.
Спустя 5 минут, 47 секунд (2.12.2010 - 20:24) twin написал(а):
Цитата |
Где? Где это может быть? |
ну сам же ответил
Цитата |
До и после "=" |
Наверное так писал
href('page = main');а надо так
href('page=main');
Спустя 2 часа, 50 минут, 21 секунда (2.12.2010 - 23:14) Black Angel написал(а):
Я о втором вопросе... с первым всё действительно легко, а вот откуда вначале тега <body> берется копия переменной $content понять не могу.
Спустя 7 минут, 13 секунд (2.12.2010 - 23:21) twin написал(а):
Ищи, должон быть... Сказал дед бабке, решив пошалить.
Где то с буферизацией попутал. Я уже писал.
Где то с буферизацией попутал. Я уже писал.
Спустя 21 минута, 32 секунды (2.12.2010 - 23:43) gidrosoldat написал(а):
Вообщем, такое дело.
Сколотил сайт на основе вашего ядра (из беспплатных PHP уроков), добавил модулей и кое как слепил систему регистрации по вашему примеру. Главный индекс сразу заматерел, оброс кучей include. Как сразу после ob_start(); и session_start(); - общие для всех страниц, так и для каждого case в отдельности - персональные для каждого модуля.
Увы, недостаток опыта взял свое! Перестали работать некоторые кнопки (те, что в формах находяться), ошибки никакие не выскакивают, но и как надо кнопки не срабатывает.
Поразмыслив чутка, родилась мысль, что возможно перемешались значения кнопок и их соответствие скриптам. Ибо в формах form action="" пустой, кнопочки все с неоригинальным именем ok, а скриптов с условием if ($ok) одномоментно может быть больше одного.
Знатоки, внимание вопрос!
Как дальше по уму должен действовать неопытный и пока неумелый программист?
1). Дать каждой кнопке собственное название.
2). Перебрать структуру сайта, постараться вычислить где и когда могут пересечься скрипты с условиями if ($ok) и не допустить этого.
3). Для каждой формы задать твердый линк до скрипта в form action.
4). Причина забастовки кнопок кроется в чем-то другом
5). Свой вариант!
П.С. помогите, ибо скоро получу звание "Заслуженный танцор с бубном"! ))
Сколотил сайт на основе вашего ядра (из беспплатных PHP уроков), добавил модулей и кое как слепил систему регистрации по вашему примеру. Главный индекс сразу заматерел, оброс кучей include. Как сразу после ob_start(); и session_start(); - общие для всех страниц, так и для каждого case в отдельности - персональные для каждого модуля.
Увы, недостаток опыта взял свое! Перестали работать некоторые кнопки (те, что в формах находяться), ошибки никакие не выскакивают, но и как надо кнопки не срабатывает.
Поразмыслив чутка, родилась мысль, что возможно перемешались значения кнопок и их соответствие скриптам. Ибо в формах form action="" пустой, кнопочки все с неоригинальным именем ok, а скриптов с условием if ($ok) одномоментно может быть больше одного.
Знатоки, внимание вопрос!
Как дальше по уму должен действовать неопытный и пока неумелый программист?
1). Дать каждой кнопке собственное название.
2). Перебрать структуру сайта, постараться вычислить где и когда могут пересечься скрипты с условиями if ($ok) и не допустить этого.
3). Для каждой формы задать твердый линк до скрипта в form action.
4). Причина забастовки кнопок кроется в чем-то другом
5). Свой вариант!
П.С. помогите, ибо скоро получу звание "Заслуженный танцор с бубном"! ))
Спустя 4 минуты, 58 секунд (2.12.2010 - 23:48) kovaldm написал(а):
1. Обязательно "говорящее".
2. Придется сделать после выполнения первого условия.
3. Не твердый а взятый из переменной окружения.
4. Смотреть надо пациента.
5. недостаточно данных.
2. Придется сделать после выполнения первого условия.
3. Не твердый а взятый из переменной окружения.
4. Смотреть надо пациента.
5. недостаточно данных.
Спустя 11 минут, 58 секунд (3.12.2010 - 00:00) gidrosoldat написал(а):
Цитата (kovaldm @ 2.12.2010 - 20:48) |
2. Придется сделать после выполнения первого условия. |
Значит поменять названия кнопок name в самих формах, выставить соответствующие названия в скриптах в if ($новое_название_кнопки) и добавить названия кнопок в variables.php? Ничего не забыл?
Цитата (kovaldm @ 2.12.2010 - 20:48) |
3. Не твердый а взятый из переменной окружения. |
Вот этого комментария вообще не понял. Можно пример?
Так уж вышло, что у меня в некоторых случаях сразу 2 формы на странице (вверху логин и форма комментариев), надо ли что-то особенное делать, чтобы они вместе ужились?
Спустя 8 минут, 36 секунд (3.12.2010 - 00:08) kovaldm написал(а):
Цитата |
Значит поменять названия кнопок name в самих формах, выставить соответствующие названия в скриптах в if ($новое_название_кнопки)... |
Да.
Цитата |
добавить названия кнопок в variables.php? |
Зачем?
Цитата |
Вот этого комментария вообще не понял. Можно пример? |
Пример:
echo $_SERVER['PHP_SELF'];
Цитата |
надо ли что-то особенное делать, чтобы они вместе ужились? |
Ничего особенного не надо.
Спустя 6 минут, 8 секунд (3.12.2010 - 00:14) Black Angel написал(а):
Если бы всё было так просто. Излазил весь код, до единиой строчки, ошибок не вижу.
Спустя 7 минут, 43 секунды (3.12.2010 - 00:22) twin написал(а):
Цитата |
3). Для каждой формы задать твердый линк до скрипта в form action. |
не надо этого делать. Там одна точка входа и в акшен вообще писать ничего не нужно. Ну если конечно по этой схеме.
Цитата |
Значит поменять названия кнопок name в самих формах, выставить соответствующие названия в скриптах в if ($новое_название_кнопки) и добавить названия кнопок в variables.php? Ничего не забыл? |
Да, только не стоит каждой кнопке на сайте давать новое имя. Если на странице несколько кнопок, то так.
Спустя 4 минуты, 45 секунд (3.12.2010 - 00:27) kovaldm написал(а):
twin
А зачем в variables.php кнопки прописывать?
А зачем в variables.php кнопки прописывать?
Спустя 2 минуты, 1 секунда (3.12.2010 - 00:29) Slays написал(а):
А сколько примерно будет стоить доступ к платной зоне, и будут ли какие-то скидки завсегдатаям форума или людям, чьи ники начинаются в заглавной S ? 
ПС: любые совпадения случайны.

ПС: любые совпадения случайны.
Спустя 2 минуты, 21 секунда (3.12.2010 - 00:31) gidrosoldat написал(а):
Цитата (kovaldm @ 2.12.2010 - 21:08) |
Зачем? |
Инициализация POST переменных:
http://irbis-team.com/15/16/2
Например,
$ok = !empty($_POST['ok'])?true:false;
Цитата (kovaldm @ 2.12.2010 - 21:08) |
echo $_SERVER['PHP_SELF']; |
Увы, все равно не понимаю о чем речь. У меня сейчас везде в формах action="", как его надо изменить? Может быть action="./modules/название_модуля/название_скрипта.php" ?
Спустя 4 минуты, 39 секунд (3.12.2010 - 00:36) Slays написал(а):
для удобства, чтоб не писать каждый раз if(!empty($_POST['забыл какая у меня там кнопка'])), а задать всем кнопкам name='ok', и проверять if($ok), точно зная о чем идет речь.
если обработка формы и форма располагаются на одной странице, то action указывать не надо, он автоматически будет вести на эту же страницу. Если обработка осуществляется на другой странице, то указываешь до этой страницы путь, а какой именно путь она имеет - только тебе известно.
если обработка формы и форма располагаются на одной странице, то action указывать не надо, он автоматически будет вести на эту же страницу. Если обработка осуществляется на другой странице, то указываешь до этой страницы путь, а какой именно путь она имеет - только тебе известно.
Спустя 7 минут, 11 секунд (3.12.2010 - 00:43) kovaldm написал(а):
Тогда уж так
Чтобы не было путаницы и было известно откуда данная переменная пришла.
Твин правильно сказал - оставляй action пустым.
$POST['ok'] = !empty($_POST['ok'])?true:false;
Чтобы не было путаницы и было известно откуда данная переменная пришла.
Твин правильно сказал - оставляй action пустым.
Спустя 3 минуты, 15 секунд (3.12.2010 - 00:46) Black Angel написал(а):
twin
А как пользоватся написаной тобой отладочной функцией? Я пометисл её в начало файла, сделал константу TRUE и что дальше?
А как пользоватся написаной тобой отладочной функцией? Я пометисл её в начало файла, сделал константу TRUE и что дальше?
Спустя 42 секунды (3.12.2010 - 00:47) gidrosoldat написал(а):
Увы, две формы вместе работают с глюками!
Когда обе формы на странице (вверху логин, внизу комменты) работает только верхняя. Когда срабатывает верхняя, форма меняется на обыкновенную надпись, остается только нижняя форма комментариев - начинает работать нижняя (уже можно оставить комментарий). Кнопки имеют разные названия, action="" в обоих скриптах пустой. Какие еще идеи будут ?
Когда обе формы на странице (вверху логин, внизу комменты) работает только верхняя. Когда срабатывает верхняя, форма меняется на обыкновенную надпись, остается только нижняя форма комментариев - начинает работать нижняя (уже можно оставить комментарий). Кнопки имеют разные названия, action="" в обоих скриптах пустой. Какие еще идеи будут ?
Спустя 1 минута, 34 секунды (3.12.2010 - 00:49) kovaldm написал(а):
А теги <form></form> у каждой формы свои, или все вместе записано?
Спустя 8 минут, 29 секунд (3.12.2010 - 00:57) gidrosoldat написал(а):
Цитата (kovaldm @ 2.12.2010 - 21:49) |
А теги <form></form> у каждой формы свои, или все вместе записано? |
Формы находятся в разных tpl файлах, подключаются через разные view.php файлы, ибо к разным модулям относятся. Тэги form для каждой формы свои.
Спустя 4 минуты, 18 секунд (3.12.2010 - 01:01) Slays написал(а):
gidrosoldat
создай тему в разделе "для начинающих" и предоставь туда листинги кода, мы не гадалки
создай тему в разделе "для начинающих" и предоставь туда листинги кода, мы не гадалки
Спустя 30 минут, 22 секунды (3.12.2010 - 01:32) twin написал(а):
они друг в друга не попали часом?
Спустя 9 часов, 1 минута, 50 секунд (3.12.2010 - 10:33) gidrosoldat написал(а):
Цитата (twin @ 2.12.2010 - 22:32) |
они друг в друга не попали часом? |
Не попали. Хмм, кажется, обнаружил проблему! Я стал жертвой понаставленных во все места (по делу и без дела) $info[] сообщений - во многих скриптах есть проверка if(!count($info)), именно она и не давала срабатывать кнопкам.
Уфф, спасибо за помощь ! Приятно, что есть такие места, где людям не все равно.
П.С. А теперь на природу! Надеюсь сельский воздух, банька и некоторое количество горячительных напитков под хорошую беседу благотворно повлияют на мой искореженный кодингом мозг. Еще раз спасибо и хороших всем выходных! )))
Спустя 1 день, 2 часа, 3 минуты, 3 секунды (4.12.2010 - 12:37) T1mer написал(а):
Цитата |
Вспомните, нельзя отправлять заголовок раньше вывода, по этому меняем структуру. |
Наконец-то понял почему не работали у меня никогда хедеры

Чего токо не делал, оказывается они должны просто 1 быть...
Спустя 6 часов, 15 минут, 42 секунды (4.12.2010 - 18:52) Black Angel написал(а):
define('IRB_ROOT', str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']) .'/')
Объясните пжалуйста поподробнее для чего эта строчка. Понял, что константа, но вот что дальше не допер.
Объясните пжалуйста поподробнее для чего эта строчка. Понял, что константа, но вот что дальше не допер.
Спустя 5 минут, 15 секунд (4.12.2010 - 18:57) Марафонец написал(а):
Black Angel
это директория с правильными слэшами
я так понял 
это директория с правильными слэшами


Спустя 3 часа, 6 минут, 33 секунды (4.12.2010 - 22:04) Slays написал(а):
$_SERVER['DOCUMENT_ROOT'] содержит путь к корневой директории сервера
а str_replace('\\', '/', ...) чтобы обратный слэш в пути перевернуть
а str_replace('\\', '/', ...) чтобы обратный слэш в пути перевернуть
Спустя 27 минут, 18 секунд (4.12.2010 - 22:31) DiamondeX написал(а):
Начал изучать курс на практике (до этого только читал). Решил, что если практиковаться, то досконально. Но застрял на первой же странице (Тема так и называется "Первая страница", точнее шаг 10 в теме "Основы основ"). Вот этот код:
абсолютно никаких результатов не дал. Вы бы хоть описали, в каких (хотя бы основных) случаях этот код может не сработать. Как я понял, get_headers(), например, работает только с PHP5.
Возможно конечно, что я где-то просто что-то недоглядел, тогда извиняюсь и прошу помочь. А то обидно, когда на первой же попытке всё и заканчивается :(
<?php
$url = 'http://php.inkz.ru';
$header = get_headers($url, 1);
?>
<pre>
<?php
print_r($header);
?>
</pre>
абсолютно никаких результатов не дал. Вы бы хоть описали, в каких (хотя бы основных) случаях этот код может не сработать. Как я понял, get_headers(), например, работает только с PHP5.
Возможно конечно, что я где-то просто что-то недоглядел, тогда извиняюсь и прошу помочь. А то обидно, когда на первой же попытке всё и заканчивается :(
Спустя 12 минут, 47 секунд (4.12.2010 - 22:44) twin написал(а):
А так?
<?php
$url = 'http://phpforum.ru';
$header = get_headers($url, 1);
?>
<pre>
<?php
print_r($header);
?>
</pre>
Спустя 25 минут, 44 секунды (4.12.2010 - 23:10) zere_lip написал(а):
Привет всем. Я только начал изучение пособия.
Столкнулся с проблемой - при добавлении "charset=utf-8", браузер выдает кракозябры в место слов, убираю все нормально.
Решение - файл был сохранен в кодировке windows, а надо было сохранить в utf-8.
Может совсем начинающему, как я, пригодится
Столкнулся с проблемой - при добавлении "charset=utf-8", браузер выдает кракозябры в место слов, убираю все нормально.
Решение - файл был сохранен в кодировке windows, а надо было сохранить в utf-8.
Может совсем начинающему, как я, пригодится

Спустя 11 часов, 3 минуты, 40 секунд (5.12.2010 - 10:14) DiamondeX написал(а):
Цитата (twin @ 4.12.2010 - 19:44) |
А так?<?php |
Да хоть как! Вообще ничего не выводит. Замена print_r на var_dump приводит к тому что значение $header всё же появляется, но оно равно bool(false). Вот и всё!
Спустя 2 часа, 46 минут, 35 секунд (5.12.2010 - 13:00) DiamondeX написал(а):
Интересно: на денвере получается, а на хостинге - нет. Написал вопрос в их поддержку - посмотрим, что ответят. В целом вопрос можно снять ))
________________________
Добавлено 5.12.2010 - 15:30
Как выяснилось, на хостинге просто-напросто запрещены исходящие соединения ))) Так что вопрос точно можно снять )
________________________
Добавлено 5.12.2010 - 15:30
Как выяснилось, на хостинге просто-напросто запрещены исходящие соединения ))) Так что вопрос точно можно снять )
Спустя 3 дня, 10 минут, 26 секунд (8.12.2010 - 13:11) sixpoundeeer написал(а):
Почему большинство использует вместо такого синтаксиса:
Такой:
Это касается даже признанных видеокурсов от Lynda.com.
Преимущество первого варианта же очевидно. Однако, почти повсеместно встречается именно второй вариант.
$connection = mysql_connect('localhost', 'root', '') or die('Database connection failed: '. mysql_error());
Такой:
$connection = mysql_connect('localhost', 'root', '');
if(!$connection)
die('Database connection failed: '. mysql_error());
Это касается даже признанных видеокурсов от Lynda.com.
Преимущество первого варианта же очевидно. Однако, почти повсеместно встречается именно второй вариант.
Спустя 1 час, 38 минут, 35 секунд (8.12.2010 - 14:49) twin написал(а):
Ну это нужно у них спросить наверно

Спустя 1 день, 7 часов, 26 минут, 8 секунд (9.12.2010 - 22:15) Seariel написал(а):
Здравствуйте, есть кто сможет мне помочь с Access 2003.очень надо создать звуковой сигнал на определенную дату и при этом вывести сообщение на экран. Например (У Пети Смирнова 3.09.1997 день рождение через 3 дня)
Спустя 9 минут, 34 секунды (9.12.2010 - 22:25) zere_lip написал(а):
Изучаю урок "Гостевая книга".
Возник вопрос. При проверке нажатия кнопки ОК на разных стадиях используются разные операторы: isset и empty.
Шаг 3
Шаг 4
Так вот, существует ли принципиальная разница какой оператор использовать на той или иной стадии, или это сделано для общего развития изучающего?
Лично мне кажется, для общего развития :)
Возник вопрос. При проверке нажатия кнопки ОК на разных стадиях используются разные операторы: isset и empty.
Шаг 3
if(!empty($_POST['ok']))
{
if(!$text1)
echo 'Текстовое поле не заполнено.';
elseif(!$text2)
echo 'Текстовая область не заполнена.';
else // Записываем информацию в файл, заканчивая символом переноса строки \n
file_put_contents('text.txt', $text2 ."\n", FILE_APPEND);
}
else
{
echo 'Напишите что-нибудь';
}
Шаг 4
if(isset($_POST['ok']))
{
if(!$text1)
echo 'Текстовое поле не заполнено.';
elseif(!$text2)
echo 'Текстовая область не заполнена.';
else
{
// пишем файл
file_put_contents('text.txt', $text2, FILE_APPEND);
// и перенаправляем браузер на новую страницу
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
// Останавливаем скрипт (все равно браузер уже ушел)
exit();
}
}
else
echo 'Напишите что-нибудь';
Так вот, существует ли принципиальная разница какой оператор использовать на той или иной стадии, или это сделано для общего развития изучающего?
Лично мне кажется, для общего развития :)
Спустя 4 минуты, 40 секунд (9.12.2010 - 22:29) twin написал(а):
Предпочтительнее первый вариант. Как показала практика, всеми любимый IE может передать и не то. А по сути да - выбирать вам.
Спустя 2 дня, 16 часов, 55 минут, 3 секунды (12.12.2010 - 15:25) zere_lip написал(а):
Гостевая книга
Шаг 7. Архивирование данных
Хоть убейте, не пойму откуда взялась переменная $dir?. Судя по тому как работает функция scandir, переменная $dir должна содержать информацию о папке которую нужно сканировать. Но как в эту переменную попали нужные данные? По идее перед функцией function dirScan должна быть строка вида $dir = 'data\', но почему то все работает без нее :D
ПС: и еще вопрос откуда в массиве, после сканирования директории берутся эти непонятные "." и ".."?
Помогите нубу, хочу разобраться :)
Шаг 7. Архивирование данных
* Функция чтения директории
* @param string
* @return array
*/
function dirScan($dir)
{
//Объявляем переменную статичной
static $files;
//При первом вызове функции она пуста, по этому
if(empty($files))
{
//Сканируем директорию, вытаскивая в массив все названия файлов
$files = scandir($dir);
//Убираем из массива служебные записи (точка и две точки)
$files = array_diff($files, array('.', '..'));
}
//Если массив пустой, то пишем в него номер 1 При следующем вызове функции
//массив уже не будет пустым, так как объявлен бессмертным конструкцией static
$files = count($files) ? $files : array('1');
//На выход
return $files;
Хоть убейте, не пойму откуда взялась переменная $dir?. Судя по тому как работает функция scandir, переменная $dir должна содержать информацию о папке которую нужно сканировать. Но как в эту переменную попали нужные данные? По идее перед функцией function dirScan должна быть строка вида $dir = 'data\', но почему то все работает без нее :D
ПС: и еще вопрос откуда в массиве, после сканирования директории берутся эти непонятные "." и ".."?
Помогите нубу, хочу разобраться :)
Спустя 6 минут, 53 секунды (12.12.2010 - 15:31) twin написал(а):
Тебе сюда для начала надо.
Спустя 21 час, 56 минут, 3 секунды (13.12.2010 - 13:27) Black Angel написал(а):
zere_lip
Поставь в браузере кодировку utf-8.
Поставь в браузере кодировку utf-8.
Спустя 4 часа, 50 минут, 41 секунда (13.12.2010 - 18:18) zere_lip написал(а):
Цитата |
zere_lip Поставь в браузере кодировку utf-8. |
Это вы относительно какого моего сообщения?
Спустя 21 минута, 10 секунд (13.12.2010 - 18:39) zere_lip написал(а):
Цитата (twin @ 12.12.2010 - 12:31) |
Тебе сюда для начала надо. |
Прочитал, и еще раз весь раздел "Основы основ", но увы так и не понял как попадает значение (путь к папке для сканирования) в переменную $dir.
Может ткнете, где еще почитать?
Спустя 6 минут, 38 секунд (13.12.2010 - 18:46) twin написал(а):
На 118 строке кода вызов функции. Оттуда и поподает.

Спустя 46 минут, 55 секунд (13.12.2010 - 19:33) zere_lip написал(а):
Буду разбираться дальше... Спасибо

Спустя 1 день, 1 час, 5 минут, 15 секунд (14.12.2010 - 20:38) gidrosoldat написал(а):
Всем привет! В очередной раз злой код ставит меня в тупик!
Ситуация такая:
Я сейчас нахожусь в этом месте курсов, далее цитата:
...
Можно запустить и посмотреть - новости тут как тут. Однако это очень некрасиво - выводить сразу все. Потому что
а) их может быть много
б) они могут быть большими.
...
Запускаю, смотрю и удивляюсь! Внизу странички сакраментальная фраза:
Notice: Undefined variable: news in Z:\home\tester\www\skins\tpl\main\show.tpl on line 10
Переменная $news не определена, хотя если прямо в news_controller'е в конце кода прописать echo $news; , на главной странице появятся окошки с новостями (пусть и не в том месте где надо). Очевидно что переменная почему-то не доходит до show.tpl (хотя там она твердо прописана!).
Методом тыка обнаруживаю следующее в главном index.php:
Меняю инклуды местами:
Вуаля! Все работает как надо.
В чем тут дело? Неужели очередность инклудов может влиять на видимость переменной? Или тут дело в другом ?
Ситуация такая:
Я сейчас нахожусь в этом месте курсов, далее цитата:
...
Можно запустить и посмотреть - новости тут как тут. Однако это очень некрасиво - выводить сразу все. Потому что
а) их может быть много
б) они могут быть большими.
...
Запускаю, смотрю и удивляюсь! Внизу странички сакраментальная фраза:
Notice: Undefined variable: news in Z:\home\tester\www\skins\tpl\main\show.tpl on line 10
Переменная $news не определена, хотя если прямо в news_controller'е в конце кода прописать echo $news; , на главной странице появятся окошки с новостями (пусть и не в том месте где надо). Очевидно что переменная почему-то не доходит до show.tpl (хотя там она твердо прописана!).
Методом тыка обнаруживаю следующее в главном index.php:
/**
* The switch of modules
* Переключатель страниц
*/
switch($GET['page'])
{
case 'main':
include './modules/main/router.php';
include './modules/news_controller.php';
$page = $GET['id'];
break;
Меняю инклуды местами:
switch($GET['page'])
{
case 'main':
include './modules/news_controller.php';
include './modules/main/router.php';
$page = $GET['id'];
break;
Вуаля! Все работает как надо.
В чем тут дело? Неужели очередность инклудов может влиять на видимость переменной? Или тут дело в другом ?
Спустя 50 минут, 29 секунд (14.12.2010 - 21:29) twin написал(а):
Конечно может. Код же выполняется по порядку. Если переменная определена во втором файле, а обращение к ней в первом, естественно она еще не определена. Файл то не успел подключиться.
А почему такой порядок, это у меня так?
А почему такой порядок, это у меня так?
Спустя 8 минут, 35 секунд (14.12.2010 - 21:37) gidrosoldat написал(а):
Хмм, а ведь верно! У меня вначале обращение к тпл было, а потом определение переменной.
Порядок такой, потому что я строчку с инклудом контроллера не туда скопировал. В курсе все правильно.
Порядок такой, потому что я строчку с инклудом контроллера не туда скопировал. В курсе все правильно.
Спустя 3 дня, 1 час, 25 минут, 41 секунда (17.12.2010 - 23:03) MNO121280 написал(а):
У меня такой вопрос по гостевой книге с записью в файл. Дошел до 10 шага,
но не знаю, как попасть в админку. Как я понял, что-то нужно дописать в адресной строке, когда открываешь файл. Например: http://www.mysite.ru/apanel. Это как делается в Danneo, а как здесь? Заранее большое спасибо!
но не знаю, как попасть в админку. Как я понял, что-то нужно дописать в адресной строке, когда открываешь файл. Например: http://www.mysite.ru/apanel. Это как делается в Danneo, а как здесь? Заранее большое спасибо!
Спустя 1 час, 35 минут, 46 секунд (18.12.2010 - 00:39) MNO121280 написал(а):
Что касается предыдущего поста, то я разобрался. Вспомнил, что если есть index.php то он открываеться по умолчанию, а остальное не отображается.
Дописал admin.php и все открылось.
Дописал admin.php и все открылось.
Спустя 1 месяц, 2 дня, 20 часов, 39 минут, 37 секунд (20.01.2011 - 21:18) zere_lip написал(а):
Разбираю урок "Ядро".
Второй шаг "Инициализация GET переменных". Дошел до инициализации переменной
и замены переменной в переключателе
Как я понимаю это момент включения ЧПУ.
И после замены в навигации ссылок
на
я столкнулся с проблемой что после тыканья по ссылкам сервер выдает 404 ошибку, страница не найдена.
Функция dbg($_GET) говорит что массив $_GET не определен или пустой...
Несколько раз перечитал урок до этого места, даже начал понимать как работает mod_rewrite :P . Вроде все сделал как положено, а все равно "Object not found!".
Какие будут идеи?
П.С. по причине отказа денвера пробую все на XAMPP, mod_rewrite включен.
Второй шаг "Инициализация GET переменных". Дошел до инициализации переменной
$GET['page'] = !empty($_GET['route']) ? $_GET['route'] : 'main';
и замены переменной в переключателе
switch($GET['page'])
{
Как я понимаю это момент включения ЧПУ.
И после замены в навигации ссылок
<li><a href="?page=main">Главная страница</a></li>
<li><a href="?page=second">Вторая страница</a></li>
на
<li><a href="/main">Главная страница</a></li>
<li><a href="/second">Вторая страница</a></li>
я столкнулся с проблемой что после тыканья по ссылкам сервер выдает 404 ошибку, страница не найдена.
Функция dbg($_GET) говорит что массив $_GET не определен или пустой...
Несколько раз перечитал урок до этого места, даже начал понимать как работает mod_rewrite :P . Вроде все сделал как положено, а все равно "Object not found!".
Какие будут идеи?
П.С. по причине отказа денвера пробую все на XAMPP, mod_rewrite включен.
Спустя 1 час, 22 секунды (20.01.2011 - 22:19) twin написал(а):
Цитата |
Функция dbg($_GET) говорит что массив $_GET не определен или пустой... |
Глюк однако... Не может он быть пустым при таких ссылках.
А мой пример не пробовал запустить?
А мой пример не пробовал запустить?
Спустя 2 минуты, 27 секунд (20.01.2011 - 22:21) twin написал(а):
Цитата |
П.С. по причине отказа денвера пробую все на XAMPP, mod_rewrite включен. |
попробуй наш поставить
Спустя 27 минут, 21 секунда (20.01.2011 - 22:48) zere_lip написал(а):
Заметил, что если поменять ссылки с
на
Все начинает работать.
Что очень странно, т.к. в переменных из массива $_GET для переключения модулей у нас теперь выдергивается 'rout', а ссылки передают 'page'.
Буду пробовать ваш сервер.
На вашем сервере заработало.
П.С.: После установки "ирбиса" сервера выдал localhost с конфигом системы. Поскольку еще был запущен XAMPP, я увидел его конфиг. Оказывается Мод реврайт был выключен, что очень странно, т.к. в конфигурационном файле строка отвечающая за его включение была раскоментированна. Надеюсь это будет полезно пользователям XAMPP и поможет съэкономить время, поскольку я 3 дня читал урок с первого шага до половины второго, пытаясь понять где ошибка :)
<li><a href="/main">Главная страница</a></li>
<li><a href="/second">Вторая страница</a></li>
на
<li><a href="?page=main">Главная страница</a></li>
<li><a href="?page=second">Вторая страница</a></li>
Все начинает работать.
Что очень странно, т.к. в переменных из массива $_GET для переключения модулей у нас теперь выдергивается 'rout', а ссылки передают 'page'.
Буду пробовать ваш сервер.
На вашем сервере заработало.
П.С.: После установки "ирбиса" сервера выдал localhost с конфигом системы. Поскольку еще был запущен XAMPP, я увидел его конфиг. Оказывается Мод реврайт был выключен, что очень странно, т.к. в конфигурационном файле строка отвечающая за его включение была раскоментированна. Надеюсь это будет полезно пользователям XAMPP и поможет съэкономить время, поскольку я 3 дня читал урок с первого шага до половины второго, пытаясь понять где ошибка :)
Спустя 30 минут, 36 секунд (20.01.2011 - 23:19) zere_lip написал(а):
Кстати большое спасибо за работающий сервер, который так нужен начинающим титанам веб-программирования

Спустя 2 месяца, 14 дней, 19 часов, 28 минут, 56 секунд (5.04.2011 - 17:48) kollega написал(а):
А новые уроки будут?
Спустя 1 час, 3 минуты, 4 секунды (5.04.2011 - 18:51) twin написал(а):
Обязательно. Почти готова вторая версия нашей программы, в которой учтены все пожелания и очень расширен функционал. Когда запустим, там будет много уроков.
Спустя 2 часа, 21 минута, 56 секунд (5.04.2011 - 21:13) kollega написал(а):
Класс. Жду с нетерпением)))))
Спустя 2 месяца, 2 дня, 22 часа, 48 минут, 42 секунды (8.06.2011 - 20:02) kollega написал(а):
Уже июнь, а новых уроков нет. Когда же наконец будут? Назовите хоть приблизительную дату.
Спустя 30 минут, 27 секунд (8.06.2011 - 20:32) inpost написал(а):
kollega
Слышал, что на этой неделе вроде, или на следующей выйдет новый блок уроков + обновление версии.
Слышал, что на этой неделе вроде, или на следующей выйдет новый блок уроков + обновление версии.
Спустя 21 день, 1 час, 4 минуты, 43 секунды (29.06.2011 - 21:37) kollega написал(а):
Что-то мне начинает казаться, что больше уроков не будет

Спустя 2 месяца, 7 дней, 16 часов, 7 минут, 57 секунд (7.09.2011 - 13:45) YVSIK написал(а):
kollegaэто так просто сказать хотелось когда кажется ))
кажется только когда кажется, а когда задают вопросы, вот только тогда получают ответы )) ГЫ))
все не перечитывал но суть вроде темы понял)) и не собираюсь тут копипастить попусту
вот вопрос: когда доходишь вот до этого места http://irbis-team.com/15/3/8
и читаешь
кажется только когда кажется, а когда задают вопросы, вот только тогда получают ответы )) ГЫ))
все не перечитывал но суть вроде темы понял)) и не собираюсь тут копипастить попусту
вот вопрос: когда доходишь вот до этого места http://irbis-team.com/15/3/8
и читаешь
Цитата |
И так, файл modules/main/view.php, непосредственно в модуле. А что бы он не простаивал, подключим в систему дебаггер, который проходили раньше. |
вводит меня в полный ступор уже сколько раз до этого места доходил и каждый раз одно и тоже, начинаю судорожно искать где его проходили собственно, может я не заметил и пропустил)) так и не разу не смог его этот дебагер найти в тексте, куда бежать , что смотреть,? и все , потерялся и давай все по новой перечитывать. По моему ну самое место, раз проходили,почемубы явно не указать где или ссылкой или ещё как)) спасибо! за внимание.

Спустя 15 минут, 4 секунды (7.09.2011 - 14:00) Игорь_Vasinsky написал(а):

Спустя 2 часа, 40 минут, 47 секунд (7.09.2011 - 16:41) twin написал(а):
Спустя 2 часа, 9 минут, 32 секунды (7.09.2011 - 18:50) YVSIK написал(а):
Игорь_Vasinsky
специально для вашего понимания!!
twin ЭТО-то я читал и это точно вводит в ступор, почему? да потому,
ну не проходили его раньше и вообще ещё не проходили, потому и метания,
и так вопросов выше крыщи а тут ещё надо понять что мол это такая тема даже,
уже образовалась, вот и мечется новичёк что он пропустил))
В любом случае спасибо!

Свернутый текст
Цитата |
Откуда то тянется мода писать переменные в кавычках. Вот так: echo "$var" и потом сильно удивляются, что результат не тот. Запомните. Тарэлька пишэтся бэз мягкий знак, а сол с мягкий знак. ![]() |
twin ЭТО-то я читал и это точно вводит в ступор, почему? да потому,
ну не проходили его раньше и вообще ещё не проходили, потому и метания,
и так вопросов выше крыщи а тут ещё надо понять что мол это такая тема даже,
уже образовалась, вот и мечется новичёк что он пропустил))
В любом случае спасибо!
Спустя 32 минуты, 45 секунд (7.09.2011 - 19:23) Игорь_Vasinsky написал(а):
YVSIK
а я о всём посте - целиком.. а в цитате понятно я ещё с полгода назад, например в SQL забивал integer в одинарные ковычки
отучился... да вообще за полгода какого тока опыта не было.
Кстати - те спасибо за инфу о хостинге халявном 16mb.... Спасибо.
а я о всём посте - целиком.. а в цитате понятно я ещё с полгода назад, например в SQL забивал integer в одинарные ковычки
'" .(int)$var. "'
отучился... да вообще за полгода какого тока опыта не было.
Кстати - те спасибо за инфу о хостинге халявном 16mb.... Спасибо.
Спустя 12 дней, 17 часов, 28 минут, 27 секунд (20.09.2011 - 12:51) Guest написал(а):
Здравствуйте.
Собираюсь использовать ajax. В скрипте заново подключаю файлы
Не подключаются.
В контроллере подключается, а здесь нет.
Заранее спасибо за помощь.
Собираюсь использовать ajax. В скрипте заново подключаю файлы
/**
* We connect a configuration file
* Подключаем конфигурационный файл
*/
include './config.php';
/**
* We connect a file of the MySQL functions
* Подключаем файл функций MySQL
*/
include './libs/mysql.php';
Не подключаются.
Warning: include(./config.php) [function.include]: failed to open stream: No such file or directory in C:\WebServers\home\test.com\www\libs\ajax.php on line 37
Warning: include() [function.include]: Failed opening './libs/mysql.php' for inclusion (include_path='.;C:\php\pear') in C:\WebServers\home\test.com\www\libs\ajax.php on line 43
В контроллере подключается, а здесь нет.
Заранее спасибо за помощь.
Спустя 2 часа, 32 минуты, 28 секунд (20.09.2011 - 15:24) inpost написал(а):
Файл уже находится в папке libs.
C:\WebServers\home\test.com\www\libs\ajax.php - ВИДИШЬ? А ты от него пытаешься ещё папку либс открыть ./libs/mysql.php , Итого в папке либс, у тебя должна быть папка либс!
Когда подключаешь, используй IRB_ROOT для полного пути.
C:\WebServers\home\test.com\www\libs\ajax.php - ВИДИШЬ? А ты от него пытаешься ещё папку либс открыть ./libs/mysql.php , Итого в папке либс, у тебя должна быть папка либс!
Когда подключаешь, используй IRB_ROOT для полного пути.
Спустя 4 месяца, 9 дней, 20 часов, 13 минут, 44 секунды (30.01.2012 - 11:38) iM0S написал(а):
У меня следующий вопрос.
Я создал каркас сайта изложенного на http://irbis-team.com. Всё замечательно работает. Но есть одно но.
Например я создал определенный модуль, ссылка на который в системе http://test.ru/test1/test2/
Потом я внедряю в данный модуль флэшку а именно просто прописываю код флэхи в show.tpl. Флэха в свою очередь может передавать и принимать GET параметры.
Но вот проблема как раз в том что она не может ни принять не передать, пока находится на show.tpl если указать явный путь в строке браузера на данный файл, то всё работает.
Как обойти данный нюанс или на что нужно обратить внимание?
Я создал каркас сайта изложенного на http://irbis-team.com. Всё замечательно работает. Но есть одно но.
Например я создал определенный модуль, ссылка на который в системе http://test.ru/test1/test2/
Потом я внедряю в данный модуль флэшку а именно просто прописываю код флэхи в show.tpl. Флэха в свою очередь может передавать и принимать GET параметры.
Но вот проблема как раз в том что она не может ни принять не передать, пока находится на show.tpl если указать явный путь в строке браузера на данный файл, то всё работает.
Как обойти данный нюанс или на что нужно обратить внимание?
Спустя 35 минут, 22 секунды (30.01.2012 - 12:13) YVSIK написал(а):
iM0S делаем отдельно тему и показываем как вы это сделали, подключили и так далее, как сделать? тему новой регой, или нового ника, мы рады вам это обьяснить
Спустя 44 минуты, 25 секунд (30.01.2012 - 12:57) inpost написал(а):
iM0S
В реврайте надо указать правило, чтобы путь к данному файлу игнорировался при реврайте. Там правило на конкретную ссылку указывается.
Либо же передавай методом POST параметры.
В реврайте надо указать правило, чтобы путь к данному файлу игнорировался при реврайте. Там правило на конкретную ссылку указывается.
Либо же передавай методом POST параметры.
Спустя 1 день, 6 часов, 38 минут, 36 секунд (1.02.2012 - 19:36) Sergen написал(а):
Господа начальники!
Проясните ситуацию с этими курсами!
Скачал, установил, просмотрел то что бесплатно. Дошел до платных. Перечислил деньги и фсе...Зашел через какое-то время, логин и пароль не подсвечивается, и не восстанавливается. Любой забитый в поля обратной связи е-майл, подсвечивается как не корректный. Написал в support ( с него как-то приходил ответ)-тишина...
И чего делать?
Проясните ситуацию с этими курсами!
Скачал, установил, просмотрел то что бесплатно. Дошел до платных. Перечислил деньги и фсе...Зашел через какое-то время, логин и пароль не подсвечивается, и не восстанавливается. Любой забитый в поля обратной связи е-майл, подсвечивается как не корректный. Написал в support ( с него как-то приходил ответ)-тишина...
И чего делать?
Спустя 12 часов, 26 минут, 37 секунд (2.02.2012 - 08:03) inpost написал(а):
После перечисления денег должен был пополниться баланс счёта. У тебя он пополнился на твоём аккаунте?
Спустя 54 минуты, 58 секунд (2.02.2012 - 08:58) Sergen написал(а):
Цитата (inpost @ 2.02.2012 - 05:03) |
После перечисления денег должен был пополниться баланс счёта. У тебя он пополнился на твоём аккаунте? |
После перечеесления денег, как раз перестал подсвечиваться и логин и пароль. Я не восстановить не могу пароль, не отправить письмо из формы. Вообще ничего.
Спустя 21 минута, 29 секунд (2.02.2012 - 09:19) twin написал(а):
Под каким ником Вы зарегистрированы? И что значит "перестал подсвечиваться и логин и пароль"? Напишите мне в ЛС свои контакты, будем разбираться.
Спустя 8 дней, 9 часов, 8 минут, 10 секунд (10.02.2012 - 18:27) inpost написал(а):
akuchkovsky
В курсе там есть возможность задать вопрос, что-то на подобии консультации. Почему ею не воспользовались?
В курсе там есть возможность задать вопрос, что-то на подобии консультации. Почему ею не воспользовались?
Спустя 4 дня, 21 час, 50 минут, 30 секунд (15.02.2012 - 16:18) Stas написал(а):
Доброго времени суток
у меня вопрос такой возможно сделать так чтоб при печати страници печатался не весь сайт а только одна переменная центральной части
у меня вопрос такой возможно сделать так чтоб при печати страници печатался не весь сайт а только одна переменная центральной части
Спустя 9 дней, 23 часа, 17 минут, 16 секунд (25.02.2012 - 15:35) Sergen написал(а):
Блин, возникла куча вопросов, но в курсах я задавал пару вопросов, почему-то ответов нет(((
Дошел до создания базы (в клиентской стороне сайта), почему при создании таблиц интересно не создаются индексы для некоторых полей? Например fulltext для поля text?
Дошел до создания базы (в клиентской стороне сайта), почему при создании таблиц интересно не создаются индексы для некоторых полей? Например fulltext для поля text?
Спустя 3 минуты, 40 секунд (25.02.2012 - 15:39) Sergen написал(а):
И еще, почему бы не нарисовать схемку, что с чем и куда идет? Файлы index.php, config.php, variables.php и т.д. а тож ведь блин их взаимозвязи без стакана хрен разберешь....
Спустя 6 дней, 1 час, 41 минута, 41 секунда (2.03.2012 - 17:20) aveBen написал(а):
Цитата (Sergen @ 25.02.2012 - 12:39) |
И еще, почему бы не нарисовать схемку, что с чем и куда идет? Файлы index.php, config.php, variables.php и т.д. а тож ведь блин их взаимозвязи без стакана хрен разберешь.... |
Я тоже сижу на уроках Ирбиса.
Вот мой результат обучения, пока что конечно многие вещи не понятны, в особенно ООП, к сожалению в курсах это не очень понятно описано, но книги я думаю помогут...
Все очень просто, index.php это главный маршрутиризатор, в который подключаем системные файлы, config.php, variables.php, в конфиге я думаю и так все ясно, комментирование идет же, в variables.php так же все предельно ясно, установка переменных пост и гет и т.д.
Разобраться нужно только в самом понятии MVC, а его ты уже и сам сможешь собрать или пределать нынешний, я решил совсем чуть-чуть переделать, добавил некоторые классы, аплоадер по папкам заливает картинки и по разделам. Вообщем сейчас, уже могу похвастаться тем, что могу разобрать код написанный авторами Ирбиса почти по полочкам.
При том, что сайтом занимаюсь максимум 2-3 часа в день, основная работа таки есть. Знания получил, планирую изучить по лучше, написать что-то типа мини аукциона. Посмотрим, что получится!
Спустя 1 месяц, 21 час, 12 минут, 22 секунды (3.04.2012 - 14:33) Гость_алексей написал(а):
когда вхожу в личный кабинет выдёт ошибку
Warning: include(./mysql.php) [function.include]: failed to open stream: No such file or directory in /var/www/razvo126/data/www/futurewindroid.biz/libs/irb_paginator.php on line 3
Warning: include() [function.include]: Failed opening './mysql.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/razvo126/data/www/futurewindroid.biz/libs/irb_paginator.php on line 3
и новости не сохраняются
Warning: include(./mysql.php) [function.include]: failed to open stream: No such file or directory in /var/www/razvo126/data/www/futurewindroid.biz/libs/irb_paginator.php on line 3
Warning: include() [function.include]: Failed opening './mysql.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/razvo126/data/www/futurewindroid.biz/libs/irb_paginator.php on line 3
и новости не сохраняются
Спустя 1 минута, 48 секунд (3.04.2012 - 14:34) Игорь_Vasinsky написал(а):
include(path/to/mysql.php);
Спустя 1 минута, 39 секунд (3.04.2012 - 14:36) Гость_алексей написал(а):
не помагло
Спустя 3 минуты, 23 секунды (3.04.2012 - 14:39) Игорь_Vasinsky написал(а):

Спустя 10 минут, 45 секунд (3.04.2012 - 14:50) Гость_алексей написал(а):
у меня всё равно та же ошибка хоть менял код потом наоборот ставил оригинальный
Спустя 3 минуты, 40 секунд (3.04.2012 - 14:54) Игорь_Vasinsky написал(а):
ну те явно php говорит что путь не верный. по указанному пути файла нету.
Спустя 3 часа, 27 минут, 12 секунд (3.04.2012 - 18:21) Гость_алексей написал(а):
помоему проблема не в том что нет файла по указонному пути (он там кстати есть)
а в этой строке ошибки (расшифруйте кто может)
помогите пожалуйста 3 часа мучаюсь
а в этой строке ошибки (расшифруйте кто может)
Failed opening '.:/libs/mysql.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear')
помогите пожалуйста 3 часа мучаюсь
Спустя 34 минуты, 51 секунда (3.04.2012 - 18:56) twin написал(а):
Это полный текст ошибки?
Спустя 8 минут, 50 секунд (3.04.2012 - 19:05) Игорь_Vasinsky написал(а):
Гость_алексей
Ранее ты показал
Ранее ты показал
Цитата |
Warning: include(./mysql.php) [function.include]: failed to open stream: No such file or directory in /var/www/razvo126/data/www/futurewindroid.biz/libs/irb_paginator.php on line 3 Warning: include() [function.include]: Failed opening './mysql.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/razvo126/data/www/futurewindroid.biz/libs/irb_paginator.php on line 3 |
сейчас
Цитата |
Failed opening '.:/libs/mysql.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') |
генерируемая каким то дебагером - но смысл тот же.
Спустя 1 час, 8 минут, 30 секунд (3.04.2012 - 20:13) Гость_алексей написал(а):
Цитата (twin @ 3.04.2012 - 15:56) |
Это полный текст ошибки? |
нет вот полный
Warning: include(.:/libs/mysql.php) [function.include]: failed to open stream: No such file or directory in /var/www/razvo126/data/www/futurewindroid.biz/libs/irb_paginator.php on line 4
Warning: include() [function.include]: Failed opening '.:/libs/mysql.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/razvo126/data/www/futurewindroid.biz/libs/irb_paginator.php on line 4
Спустя 10 минут, 40 секунд (3.04.2012 - 20:24) Guest написал(а):
Цитата (Игорь_Vasinsky @ 3.04.2012 - 16:05) | ||||
Гость_алексей Ранее ты показал
сейчас
генерируемая каким то дебагером - но смысл тот же. |
нет код ошибки всё время одинаковый просто думал в этом месте ошибка
Спустя 3 минуты, 18 секунд (3.04.2012 - 20:27) Игорь_Vasinsky написал(а):
так пробуй
include($_SERVER['DOCUMENT_ROOT'].'/libs/mysql.php');
Спустя 30 минут, 35 секунд (3.04.2012 - 20:58) Гость_алексей написал(а):
теперь такая ошибка
Warning: require(/bootstrap.php) [function.require]: failed to open stream: No such file or directory in /var/www/razvo126/data/www/futurewindroid.biz/index.php on line 102
Fatal error: require() [function.require]: Failed opening required '/bootstrap.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/razvo126/data/www/futurewindroid.biz/index.php on line 102
Спустя 5 минут, 27 секунд (3.04.2012 - 21:03) Игорь_Vasinsky написал(а):
почитай про
ты видимо на поддомене.
ini_set('include_path', ini_get('include_path').';/path/to/my/libs/')
ты видимо на поддомене.
Спустя 12 часов, 3 минуты, 51 секунда (4.04.2012 - 09:07) Гость_алексей написал(а):
всё перезалил ошибку всё равно выдаёт но всё нормально стало работать
Спустя 1 час, 14 минут, 38 секунд (4.04.2012 - 10:22) Игорь_Vasinsky написал(а):
Свернутый текст
no coments
Спустя 5 дней, 20 часов, 35 минут, 42 секунды (10.04.2012 - 06:57) Stas написал(а):
подскажите пожалуйста скрипт на php который пускает пользовотелей напримнр только с 3 ip адресов а других пересылает на другую страницу скрипт иммено php а не .htaccess зарание спасибо
есть вот такой скриптик
но он при входе сохроняет так
есть вот такой скриптик
<?php
$filename = 'log.txt';
if (!$file = fopen ($filename, 'a'))
{
echo "Can't open file {$filename}\n";
return 0;
}
fputs ($file, time() ."\t{$_SERVER['REMOTE_ADDR']}\n");
fclose ($file);
?>
но он при входе сохроняет так
Цитата |
1334121307 127.0.0.1 |
можно сделать чтоб при входе сохранял
Цитата |
127.0.0.1 127.0.0.1 127.0.0.1 |
Спустя 6 дней, 7 часов, 38 секунд (16.04.2012 - 13:58) Cream написал(а):
Здраствуйте. Извиняюсь за глупый вопрос.
Обьясните мне пожалуйста
Есть картинка если ее вставляешь в таком виде:1
<?=HTML::image('media/img/knop1.gif', array('align' => 'left'))?>
то все нормально она отображаеться на всех страницах сайта.
Если же обычным способом: 2<img src="media/img/knop1.gif" > то отображаеться только на главной, на других страницах она есть, но не как изображение а просто надписью изображение т.е какбудто нет ссылки на него.
Обьясните почему так? и Еще вопрос, если использовать вид 1 как в него добавить ссылку на страницу(изображение-ссылка), а также менять размер и т.п.
Обьясните мне пожалуйста
Есть картинка если ее вставляешь в таком виде:1
<?=HTML::image('media/img/knop1.gif', array('align' => 'left'))?>
то все нормально она отображаеться на всех страницах сайта.
Если же обычным способом: 2<img src="media/img/knop1.gif" > то отображаеться только на главной, на других страницах она есть, но не как изображение а просто надписью изображение т.е какбудто нет ссылки на него.
Обьясните почему так? и Еще вопрос, если использовать вид 1 как в него добавить ссылку на страницу(изображение-ссылка), а также менять размер и т.п.
Спустя 15 минут, 23 секунды (16.04.2012 - 14:13) Игорь_Vasinsky написал(а):
видать в самом классе формируется полный путь.
пробуй так
пробуй так
<img src="<?=$_SERVER['DOCUMENT_ROOT'];?>/media/img/knop1.gif" >
Спустя 5 минут, 13 секунд (16.04.2012 - 14:19) Игорь_Vasinsky написал(а):
Цитата |
но он при входе сохроняет так Цитата 1334121307 127.0.0.1 |
fputs ($file, "{$_SERVER['REMOTE_ADDR']}\n");
Цитата |
пускает пользовотелей напримнр только с 3 ip адресов а других пересылает на другую страницу скрипт иммено php а не .htaccess зарание спасибо |
$ips = array(
'192.168.1.1',
'192.168.1.2',
'192.168.1.3'
);
if(!in_array($_SERVER['REMOTE_ADDR'], $ips))
{
header("HTTP/1.1 404 Not Found");
exit();
}
Но вместо REMOTE_ADDR - я бы рекомендовал использовать функцию для определения реального IP, например
https://www.google.ru/webhp?hl=ru&tab=ww#hl...53&pf=p&pdl=300
Спустя 11 часов, 13 минут, 59 секунд (17.04.2012 - 01:33) Cream написал(а):
Разобрался сообщение стер
Спустя 1 месяц, 10 дней, 16 часов, 14 минут, 23 секунды (27.05.2012 - 17:47) Savage написал(а):
Установил сегодня IRBIS-school, пробежался по страницам, заметил некоторые моменты, спешу поделиться ;)
1) Пропущенная буква в слове. Кнопка копирования кода находится не под картинкой. Вот поясняющий скриншот - http://s2.ipicture.ru/uploads/20120527/lQuE1UjF.jpg
2) Программа IRBIS-php Run как-то непонятно проставляет и удаляет комментирующие теги, мне не понятна логика происходящего.
Например раскомментирование работает только для //, но не работает для /**/ и <!-- -->. Кроме того в закрывающей части не хватает двух слешей, т.е. есть вставляется просто -->, а не //-->. И если не выделять комментарий, а сразу вызвать тег многострочного комментария, то он отобразится наоборот, вот так --><!-- . Я думаю что иногда бывает удобнее сначала напечатать тег, а уже потом наполнить его содержимым.
3) В конце некоторых уроков написано, что контрольные задания можно будет проверить в он-лайн консультации. А где эти самые контрольные задания, я не нашёл. Просто странно заходить в платную консультацию за контрольными заданиями.
4) На форуме написано, что "2. Сравниваем то, что получилось с итоговым архивом (в каждом уроке есть аттач)".
А где эти самые аттачи (итоговые архивы)? Не могу найти.
5) Написал почти то же самое во вкладке техподдержки программы IRBIS-school, нажал кнопку отправить и получил выход из программы, а текст заданных вопросов пропал. Пришлось спросить на форуме.
1) Пропущенная буква в слове. Кнопка копирования кода находится не под картинкой. Вот поясняющий скриншот - http://s2.ipicture.ru/uploads/20120527/lQuE1UjF.jpg
2) Программа IRBIS-php Run как-то непонятно проставляет и удаляет комментирующие теги, мне не понятна логика происходящего.
Например раскомментирование работает только для //, но не работает для /**/ и <!-- -->. Кроме того в закрывающей части не хватает двух слешей, т.е. есть вставляется просто -->, а не //-->. И если не выделять комментарий, а сразу вызвать тег многострочного комментария, то он отобразится наоборот, вот так --><!-- . Я думаю что иногда бывает удобнее сначала напечатать тег, а уже потом наполнить его содержимым.
3) В конце некоторых уроков написано, что контрольные задания можно будет проверить в он-лайн консультации. А где эти самые контрольные задания, я не нашёл. Просто странно заходить в платную консультацию за контрольными заданиями.
4) На форуме написано, что "2. Сравниваем то, что получилось с итоговым архивом (в каждом уроке есть аттач)".
А где эти самые аттачи (итоговые архивы)? Не могу найти.
5) Написал почти то же самое во вкладке техподдержки программы IRBIS-school, нажал кнопку отправить и получил выход из программы, а текст заданных вопросов пропал. Пришлось спросить на форуме.
Спустя 8 минут, 49 секунд (27.05.2012 - 17:56) Savage написал(а):
6) Хорошо бы включить в уроки такую же http://phpforum.ru/index.php?showtopic=21213 главу, как дополнение.
7) Планируется ли в IRBIS-school в настройках установка размера шрифта?
7) Планируется ли в IRBIS-school в настройках установка размера шрифта?
Спустя 19 часов, 57 минут (28.05.2012 - 13:53) Savage написал(а):
А вообще какие правильнее теги устанавливать, такие <!-- --> или такие <!-- //-->
; и так и так работает, или конструкция <!-- //--> считается устаревшей?
; и так и так работает, или конструкция <!-- //--> считается устаревшей?
Спустя 4 часа, 15 минут, 39 секунд (28.05.2012 - 18:09) Savage написал(а):
Цитата (Savage @ 27.05.2012 - 14:47) |
2) Программа IRBIS-php Run как-то непонятно проставляет и удаляет комментирующие теги ... если не выделять комментарий, а сразу вызвать тег многострочного комментария, то он отобразится наоборот, вот так --><!-- . |
При этом в самой IRBIS-school всё работает логично и правильно отображается ))
Спустя 13 часов, 3 минуты, 37 секунд (29.05.2012 - 07:12) YVSIK написал(а):
вот тут <!-- начало
вот тут --> конец,
а все остальное и даже // уже значит комментарии))
вот тут --> конец,
а все остальное и даже // уже значит комментарии))
Спустя 42 минуты, 13 секунд (29.05.2012 - 07:54) twin написал(а):
1. спасибо, поправим.
2. Комментарии работают правильно, слэшей на конце быть не должно.
3. Контрольные задания есть, но не во всех уроках. Сдавать или нет на проверку - дело личное. 10 рублей за разбор полетов - не ахти какая сумма. Сейчас готовится большой раздел с практическими задачами, там будут ответы.
4. Итоговые архивы по каждому занятию были (и есть) на сайте IRBIS-TEAM. В школе есть только общие итоговые проекты. Находятся они "Файл->Новый->Проект" либо CTRL+SHIFT+N
5. Это глюк.
6. Обязательно
7. Какой именно шрифт интересует? Если в редакторе, то зажмите CTRL и покрутите колесико мышки. Если в уроках - то да, упущение. Добавим настройку в следующей версии.
2. Комментарии работают правильно, слэшей на конце быть не должно.
3. Контрольные задания есть, но не во всех уроках. Сдавать или нет на проверку - дело личное. 10 рублей за разбор полетов - не ахти какая сумма. Сейчас готовится большой раздел с практическими задачами, там будут ответы.
4. Итоговые архивы по каждому занятию были (и есть) на сайте IRBIS-TEAM. В школе есть только общие итоговые проекты. Находятся они "Файл->Новый->Проект" либо CTRL+SHIFT+N
5. Это глюк.
6. Обязательно
7. Какой именно шрифт интересует? Если в редакторе, то зажмите CTRL и покрутите колесико мышки. Если в уроках - то да, упущение. Добавим настройку в следующей версии.
Спустя 10 часов, 18 минут, 39 секунд (29.05.2012 - 18:13) Guest написал(а):
twin, да, конечно, установка размера шрифта в уроках интересует.
YVSIK, понятно. Ещё интересует такой вопрос, - я в справочнике по html прочитал, что "Двойной дефис внутри комментария (--) воспринимается как часть комментария и соответственно его наличие приводит к ошибке при валидации документа."
Интересно, а почему именно двойной дефис будет давать ошибку при валидации (я так понял на сайте www.w3.org), а те же // не будут? Вроде бы -- не будет являться вложенным комментарием, да и не оканчивается на >, чтобы посчитать -- за закрывающий комментарий тег.
<!-- комментар--ий --> Такая запись неверна получается?
YVSIK, понятно. Ещё интересует такой вопрос, - я в справочнике по html прочитал, что "Двойной дефис внутри комментария (--) воспринимается как часть комментария и соответственно его наличие приводит к ошибке при валидации документа."
Интересно, а почему именно двойной дефис будет давать ошибку при валидации (я так понял на сайте www.w3.org), а те же // не будут? Вроде бы -- не будет являться вложенным комментарием, да и не оканчивается на >, чтобы посчитать -- за закрывающий комментарий тег.
<!-- комментар--ий --> Такая запись неверна получается?
Спустя 1 час, 27 минут, 27 секунд (29.05.2012 - 19:40) YVSIK написал(а):
Guest-Ю
Свернутый текст
Ну уже если вас так и будут терзать вопросы коментов и так будешь дотошным даже с ними, чтож заходи на форум как положено . не прикрывайся гостем, а как принято через дверь представся и продолжим )

Спустя 23 часа, 49 минут, 49 секунд (30.05.2012 - 19:30) Savage написал(а):
OK, зарегистрировался.
Спустя 10 дней, 2 часа, 31 минута, 26 секунд (10.06.2012 - 22:02) Pingvinenok_Lolo написал(а):
Нашла давеча Ваш сайт. Узнала много нового и полезного, особенно с переменными $_GET и $_POST, отделение логики от шаблона, например для меня это были две БОЛЬШИЕ проблемы, прочитала всё стало понятно, всё на своих местах, да и вообще много хорошего.
Пришла к выводу что придётся свой сайт полностью переписывать с нуля
Спасибо за отличный и доступный для брюнеток материал!!!
Ну да ладно, у меня такой вопрос, хочу написать блог для себя, использовать тут ООП не вижу смысла (лично для себя в ООП вижу хорошее так это наследование), но работодатели есессно жаждут созерцать ООП в моих творениях, и вот прям не знаю что делать, писать процедурный код или использовать ООП или и то и то если такое допускается? Заранее спасибо за ответы!
p.s. Спрашиваю, т.к. опыт php программирования практически нулевой
Пришла к выводу что придётся свой сайт полностью переписывать с нуля

Спасибо за отличный и доступный для брюнеток материал!!!

Ну да ладно, у меня такой вопрос, хочу написать блог для себя, использовать тут ООП не вижу смысла (лично для себя в ООП вижу хорошее так это наследование), но работодатели есессно жаждут созерцать ООП в моих творениях, и вот прям не знаю что делать, писать процедурный код или использовать ООП или и то и то если такое допускается? Заранее спасибо за ответы!
p.s. Спрашиваю, т.к. опыт php программирования практически нулевой
Спустя 12 минут, 52 секунды (10.06.2012 - 22:15) inpost написал(а):
Pingvinenok_Lolo
Чьи бабки, тот и в тапках! Если им надо ООП, значит ООП, если им нужен сайт - значит им нужен сайт. Платят они за выполнения своих требований.
Чьи бабки, тот и в тапках! Если им надо ООП, значит ООП, если им нужен сайт - значит им нужен сайт. Платят они за выполнения своих требований.
Спустя 1 минута, 25 секунд (10.06.2012 - 22:16) neadekvat написал(а):
Pingvinenok_Lolo, опыт только в php нулевой или во всем программировании?
Работат с ООП пока что не советовал бы. Сначала в процедурном стиле добиться того, чтобы кто-нибудь из более опытных мог сказать, что "в целом неплохо", а уж потом можно приступать к ООП, ибо это слегка иная философия, надо четко понимать ее отличие от процедурного стиля, иначе, как и многие, будешь писать в процедурном стиле, используя фичи из ООП.
Работат с ООП пока что не советовал бы. Сначала в процедурном стиле добиться того, чтобы кто-нибудь из более опытных мог сказать, что "в целом неплохо", а уж потом можно приступать к ООП, ибо это слегка иная философия, надо четко понимать ее отличие от процедурного стиля, иначе, как и многие, будешь писать в процедурном стиле, используя фичи из ООП.
Спустя 31 минута, 27 секунд (10.06.2012 - 22:47) Pingvinenok_Lolo написал(а):
inpost, это то понятно, просто сколько вакансий php-программиста просматриваю, везде требуются знания ООП
neadekvat, нулевой опыт в php(а так лабы С/С++, Delphi на практике делала, кой-чего соображаю), один сайтик на php написала, но хочу и дальше заниматься сайтостроительством. Думаю Вы правы, для начала надо утвердиться в процедурном стиле, потом уже лезть в дебри
neadekvat, нулевой опыт в php(а так лабы С/С++, Delphi на практике делала, кой-чего соображаю), один сайтик на php написала, но хочу и дальше заниматься сайтостроительством. Думаю Вы правы, для начала надо утвердиться в процедурном стиле, потом уже лезть в дебри

Спустя 4 минуты (10.06.2012 - 22:51) inpost написал(а):
Pingvinenok_Lolo
Каждый видит то, что он хочет видеть, не более того.
Да и 50% работодателей не понимают даже половины того, что указываются в требованиях. Менеджеры просто копируют друг у друга одно и то же объявление
Каждый видит то, что он хочет видеть, не более того.
Да и 50% работодателей не понимают даже половины того, что указываются в требованиях. Менеджеры просто копируют друг у друга одно и то же объявление

Спустя 1 час, 2 минуты, 41 секунда (10.06.2012 - 23:54) twin написал(а):
Если вопрос в эту ветку, я тож должен ответить.
Цитата |
Требования: профессиональные навыки в управлении легковыми и грузовыми автомобилями,троллейбусами,трамваями, поездами метрополитена и фуникулера, экскаваторами и бульдозерами, спецмашинами на гусеничном ходу, боевыми машинами пехоты и современными легкими/средними танками, находящимисяна вооружении стран СНГ и НАТО. Навыки раллийного и экстремального вождения обязательны. Опыт управления болидами "Формулы-1" - приветствуется. Знания и опыт ремонта поршневых и роторных двигателей, автоматических и ручных трансмиссий, систем зажигания, антиблокировочных систем, навигационных систем и автомобильных аудиосистем ведущих поизводителей - обязательны. Опыт проведения кузовных и окрасочных работ - приветствуется. Претенденты должны иметь сертификаты Mercedes, BMW, а также справки об участии в крупных международных ралли не более чем двухлетней давности. |
Если нужно зработать денек - вполне и пойдет. Если ты ПРОГРАММИСТ, шли всех лесом. Себе дороже.
Спустя 16 часов, 40 минут, 51 секунда (11.06.2012 - 16:35) Pingvinenok_Lolo написал(а):
Цитата (inpost @ 10.06.2012 - 19:51) |
Pingvinenok_Lolo Да и 50% работодателей не понимают даже половины того, что указываются в требованиях. Менеджеры просто копируют друг у друга одно и то же объявление ![]() |
Так вот как пишутся вакансии

Спустя 10 минут, 2 секунды (11.06.2012 - 16:45) Pingvinenok_Lolo написал(а):
Цитата (twin @ 10.06.2012 - 20:54) |
Если вопрос в эту ветку, я тож должен ответить. Если нужно зработать денек - вполне и пойдет. Если ты ПРОГРАММИСТ, шли всех лесом. Себе дороже. |
Пока только начинающая программистка. Короче говоря надо делать так, как умеешь, а там разберутся
Спасибо люди за внимание, хоть кто-то толково объяснил что в ООП пока лезть не стоит. Еще раз спасибо за отличный сайт с уроками, молодцы!
Пойду творить сайты "по уму"
