view.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Гостевая книга</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h2>Добавить свое сообщение</h2>
<form action="controller.php" method="post">
Ваше имя: <input type="text" name="new[name]" /><br />
Комментарий: <br />
<textarea name="new[text]" cols="60" rows="5"></textarea><br />
<input type="submit" name="add" value="Добавить!" />
</form>
<h2>Гостевая книга:</h2>
<?php
foreach ($book as $id=>$e)
{
?>
имя: <?php echo $e['name']?><br />
Комментарий: <?php echo nl2br($e['text'])?><hr />
<?php }?>
</body>
</html>
файл controller.php
<?php
/*
* file by m4a1fox
* year - 2011
*/
define ("GBook", "gbook.dat");
require_once './model.php';
$book = LoadBook (GBook);
if (!empty ($_REQUEST['add'])) {
$book = array (time ()=>$_REQUEST['new']) + $book;
SaveBook (GBook, $book);
}
include './view.php';
?>
и собственно файл model.php
<?php
/*
* file by m4a1fox
* year - 2011
*/
function LoadBook ($fname) {
if (!file_exists($fname)) return array ();
$book = unserialize(file_get_contents($fname));
return $book;
}
function SaveBook ($fname, $book) {
file_put_contents($fname, serialize($book));
}
?>
понимаю, что нужно как то изменить файл model.php. Подскажите как тут быть?
Спустя 5 минут, 51 секунда (30.05.2011 - 15:57) XCross написал(а):
на irbis-team почитай. Там какраз по твоей части раздел есть. А точнее . Первая-это гостевуха на файлах, а вторая какраз на mysql
Спустя 6 минут, 34 секунды (30.05.2011 - 16:04) m4a1fox написал(а):
kmaks
Это уже читал... Не так давно... Но много вопросов.... Ладно, буду дальше воевать.
Это уже читал... Не так давно... Но много вопросов.... Ладно, буду дальше воевать.
Спустя 40 минут, 45 секунд (30.05.2011 - 16:44) Dezigo написал(а):
Сделай в модели метод на запрос к бд и метод получение данных. А в контроллере вывозв методов из этой модели.
Логика не меняется.
Логика не меняется.
Спустя 8 минут, 42 секунды (30.05.2011 - 16:53) m4a1fox написал(а):
Dezigo
Метод.... значит ооп. Без ооп никак?
Метод.... значит ооп. Без ооп никак?
Спустя 22 минуты, 39 секунд (30.05.2011 - 17:16) s909 написал(а):
можешь оставить те же функции, но естественно содержимое поменяй. В LoadBook mysql_query("SELECT....");
В SaveBook mysql_query("INSERT ...");
В SaveBook mysql_query("INSERT ...");
Спустя 9 минут, 23 секунды (30.05.2011 - 17:25) m4a1fox написал(а):
s909
Вот так?
Вот так?
function LoadBook ($book) {
$b = mysql_query("SELECT * FROM guest");
$book = mysql_fetch_assoc($b);
return $book;
}
Спустя 5 минут, 32 секунды (30.05.2011 - 17:31) s909 написал(а):
почти) главное используй цикл, что бы вывести все!
Спустя 3 минуты, 50 секунд (30.05.2011 - 17:34) m4a1fox написал(а):
s909
Вот с циклом маленькая запарка, как они работают я понимаю, как их делать тоже, но вот проблема в том, что даже не могу представить себе, как вывести LoadBook в рабочую среду.
Вот с циклом маленькая запарка, как они работают я понимаю, как их делать тоже, но вот проблема в том, что даже не могу представить себе, как вывести LoadBook в рабочую среду.
Спустя 14 минут, 42 секунды (30.05.2011 - 17:49) m4a1fox написал(а):
Вот тут
цикла не получается, наверно в этот код необходимо что то добавить дабы получился цикл... или надо добавлять уже в view.php?
function LoadBook ($book) {
$b = mysql_query("SELECT * FROM guest");
$book = mysql_fetch_assoc($b);
return $book;
}
цикла не получается, наверно в этот код необходимо что то добавить дабы получился цикл... или надо добавлять уже в view.php?
Спустя 5 минут (30.05.2011 - 17:54) m4a1fox написал(а):
Добавил строку с циклом
вот так вывожу
но все равно только одна запись выходит
function LoadBook($book) {
$b = mysql_query("SELECT * FROM guest");
$book = mysql_fetch_assoc($b);
foreach ($book as $id=>$e)
{
$book[] = $e['name']." ".$e['text'];
}
return $book;
}
вот так вывожу
echo '<pre>';
echo print_r (LoadBook($book));
echo '</pre>';
но все равно только одна запись выходит
Спустя 32 минуты, 33 секунды (30.05.2011 - 18:27) denash написал(а):

Спустя 1 минута, 21 секунда (30.05.2011 - 18:28) m4a1fox написал(а):
denash
Я про защиту почти не думаю... оно сейчас мне и не надо... я структурно хочу понять, понимаете?
Я про защиту почти не думаю... оно сейчас мне и не надо... я структурно хочу понять, понимаете?
Спустя 3 минуты, 17 секунд (30.05.2011 - 18:31) m4a1fox написал(а):
Вот так почему-то выводит
Array
(
[id] => 40
[name] => Макисм
[text] => Привет мир
[0] => 4 4
[1] => � �
[2] => � �
)
1
Спустя 1 минута, 53 секунды (30.05.2011 - 18:33) s909 написал(а):
используй что-то типо этого:
<?php
header("Content-Type: text/html; charset=utf-8");
function LoadBook ($table) {
include $_SERVER['DOCUMENT_ROOT'] ."/connect.php" ;
mysql_query('SET NAMES utf8');
$result = mysql_query("SELECT * FROM $table");
return $result;
}
$book = LoadBook ("pages");
while($myrow=mysql_fetch_assoc($book)){
echo $myrow['id'], "<br>";
echo $myrow['txt'], "<br><hr>";}
?>
думаю модель от вида отделишь сам!
<?php
header("Content-Type: text/html; charset=utf-8");
function LoadBook ($table) {
include $_SERVER['DOCUMENT_ROOT'] ."/connect.php" ;
mysql_query('SET NAMES utf8');
$result = mysql_query("SELECT * FROM $table");
return $result;
}
$book = LoadBook ("pages");
while($myrow=mysql_fetch_assoc($book)){
echo $myrow['id'], "<br>";
echo $myrow['txt'], "<br><hr>";}
?>
думаю модель от вида отделишь сам!
Спустя 10 минут, 58 секунд (30.05.2011 - 18:44) m4a1fox написал(а):
s909
Исходя из Вашего последнего сообщения, можно предположить что.
model.php
controller.php
view.php
Так получается?
Исходя из Вашего последнего сообщения, можно предположить что.
model.php
function LoadBook ($table) {
$result = mysql_query("SELECT * FROM $table");
if (mysql_num_rows($result) > 0)
{
return $result;
}
return NULL;
}
controller.php
$book = LoadBook("guest");
view.php
<?php
while($myrow=mysql_fetch_assoc($book)){
echo $myrow['name'], "<br>";
echo $myrow['text'], "<br><hr>";}
?>
Так получается?
Спустя 1 минута, 29 секунд (30.05.2011 - 18:46) sharki написал(а):
m4a1fox
В view.php ты должен собрать некий массив который ты расфоречишь в TPL, ну или сразу в TPL делаешь assoc...
В view.php ты должен собрать некий массив который ты расфоречишь в TPL, ну или сразу в TPL делаешь assoc...
Спустя 5 минут, 43 секунды (30.05.2011 - 18:51) m4a1fox написал(а):
sharki
А поподробнее... если есь желание?
А поподробнее... если есь желание?
Спустя 14 минут, 6 секунд (30.05.2011 - 19:05) sharki написал(а):
m4a1fox
самая стандартная реализация заключается в 5 файлах, index.php model.php controller.php view.php и самого файла шаблона допустим view.tpl где собсна находится преставление HTML разметка и многое другое, в этом файле ты можешь что-то вывести в цикле, чтобы не затрагивать файлы логики, в них не желательно писать echo бла бла; за это отвечает
view.tpl
самая стандартная реализация заключается в 5 файлах, index.php model.php controller.php view.php и самого файла шаблона допустим view.tpl где собсна находится преставление HTML разметка и многое другое, в этом файле ты можешь что-то вывести в цикле, чтобы не затрагивать файлы логики, в них не желательно писать echo бла бла; за это отвечает
view.tpl
<html>
<body>
<?php while($myrow=mysql_fetch_assoc($book)) : ?>
<div> <?php echo $myrow['name']; ?> <br> </div>
<div> <?php echo $myrow['text']; ?> <hr> </div>
<?php endwhile;?>
.....
....
....
</html>
Спустя 3 минуты, 53 секунды (30.05.2011 - 19:09) m4a1fox написал(а):
sharki
View.tpl - это файл представления, и он реализует всю логику, плюс включает в себя и model.php и controller.php а его вывод грузится в index.php... Правильно ли я вас понял?
View.tpl - это файл представления, и он реализует всю логику, плюс включает в себя и model.php и controller.php а его вывод грузится в index.php... Правильно ли я вас понял?
Спустя 2 минуты, 27 секунд (30.05.2011 - 19:12) sharki написал(а):
m4a1fox
он ничего не реализует, он всего лишь предоставляет то что ты уже реализовал в
model.php controller.php и view.php. index.php только лишь подключает нужные контроллеры, в то же время контроллер подключает внутри себя model.php и view.php, где view.php подключает view.tpl
он ничего не реализует, он всего лишь предоставляет то что ты уже реализовал в
model.php controller.php и view.php. index.php только лишь подключает нужные контроллеры, в то же время контроллер подключает внутри себя model.php и view.php, где view.php подключает view.tpl
Спустя 11 минут, 40 секунд (30.05.2011 - 19:23) m4a1fox написал(а):
sharki
Мдя.... и это называется легче.... Ладно... Буду пробовать... Спасибо.
Мдя.... и это называется легче.... Ладно... Буду пробовать... Спасибо.
Спустя 2 минуты, 27 секунд (30.05.2011 - 19:26) sharki написал(а):
m4a1fox
Всё это рассказывается на irbis'e даже разжовывая это) здесь ничего трудного, только понять логику программы, что и когда подключается, как бы следя за выполнением кода PHP мысленно
Всё это рассказывается на irbis'e даже разжовывая это) здесь ничего трудного, только понять логику программы, что и когда подключается, как бы следя за выполнением кода PHP мысленно
Спустя 3 минуты, 12 секунд (30.05.2011 - 19:29) m4a1fox написал(а):
sharki
Я читал на irbis'e.....
Я читал на irbis'e.....
Спустя 47 минут, 18 секунд (30.05.2011 - 20:16) m4a1fox написал(а):
sharki
Значит, во всей этой структуре главный - controller.php?
Значит, во всей этой структуре главный - controller.php?
Спустя 5 минут, 50 секунд (30.05.2011 - 20:22) sharki написал(а):
m4a1fox
ну да, у каждого модуля свой, и название следовательно read_controller.php
а в индексе типа такой строки
ссылка сайта
page=news - здесь news это папка с модулем, rem=read - read тут префикс контроллера, допустим может быть add_controller.php и он уже что-то другое выполняет.
PS Только надо пилить по своему вкусу, и конечно же делать всевозможные проверки и т.п...
ну да, у каждого модуля свой, и название следовательно read_controller.php
а в индексе типа такой строки
include './modules/'.$_GET['page'].'/'.$_GET['rem'].'_controller.php';
ссылка сайта
www.site.ru/?page=news&rem=read
page=news - здесь news это папка с модулем, rem=read - read тут префикс контроллера, допустим может быть add_controller.php и он уже что-то другое выполняет.
PS Только надо пилить по своему вкусу, и конечно же делать всевозможные проверки и т.п...
Спустя 3 часа, 54 минуты, 48 секунд (31.05.2011 - 00:17) denash написал(а):
Цитата (m4a1fox @ 30.05.2011 - 15:28) |
denash Я про защиту почти не думаю... оно сейчас мне и не надо... я структурно хочу понять, понимаете? |
Извините, я не по ошибке сюда написал, я не в ту тему случайно зашёл.