Ответить
Та лана, наоборот - форум крутим, то что надо)))
Общие вопросы новичков
Отправлено: 6 Oct 2010#21
Ну вот смотри, если у нас шаблон страницы, на странице должна проходить проверка сессии, к примеру
Как этот скрипт туда сунуть?
Как этот скрипт туда сунуть?
Отправлено: 6 Oct 2010#22
skad0, мой тебе совет не надо объединять логику и шаблоны.
скрипты пусть занимаются проверками без какого либо отображения, а когда ты уже знаешь кто запрашивает страницу и что надо отобразить, тогда уже собирай страничку или бери готовую(смотря как сделаешь) и показывай. Например так
типа этого. Тоесть сперва работа кода и только когда код полностью отработал что-то показываем. И постарайся сразу себя приучить разделять логику от шаблонов. Например при помощи меток как у меня в примере.
скрипты пусть занимаются проверками без какого либо отображения, а когда ты уже знаешь кто запрашивает страницу и что надо отобразить, тогда уже собирай страничку или бери готовую(смотря как сделаешь) и показывай. Например так
1
2
3
4
5
6
7
<?php $templ = file_get_contents('templ.html');
if (/*вася*/) {
$var = str_replace('{PRIV}', 'Привет Вася', $templ);
} else {
$var = echo str_replace('{PRIV}', 'Ты не Вася', $templ);
}
echo $var;?>
типа этого. Тоесть сперва работа кода и только когда код полностью отработал что-то показываем. И постарайся сразу себя приучить разделять логику от шаблонов. Например при помощи меток как у меня в примере.
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 6 Oct 2010#23
А как вот к примеру для шаблона сделать?
{content} - обозначает вывод новостей из базы в нужном диве.
Так?
{content} - обозначает вывод новостей из базы в нужном диве.
1
2
<?php $templ = file_get_contents('templ.html');
str_replace('{content}', 'сам скрипт', '$templ');?>
Так?
Отправлено: 6 Oct 2010#24
ну не совсем
например так
тут мы в цикле перибираем все новости и выводим заголовок каждой. Обрати внимание мы не перезаписываем переменную $con а дозаписываем. таким образом к концу цикла в ней будут все новости из массива $news. А потом все эти новости тулим вместо метки в шаблоне.
1
2
3
4
5
6
7
8
<?php $con = '';
foreach ($news as $new) {
$con = $con . $new['title'] . '<br>';
}
$templ = file_get_contents('templ.html');
$con = str_replace('{content}', $con, $templ);
echo $con;?>
например так
тут мы в цикле перибираем все новости и выводим заголовок каждой. Обрати внимание мы не перезаписываем переменную $con а дозаписываем. таким образом к концу цикла в ней будут все новости из массива $news. А потом все эти новости тулим вместо метки в шаблоне.
Edit by author 6 Oct 2010
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 6 Oct 2010#25
а если с контентом, то так:
??? Кажись понял .. А можно ли заданные шаблонные переменные выводить в конфиги? Например:
config.php
index.php
А ещё спросить хотел, можешь рассказать про "квотирование"? А то я нашел, кажется, ф-ция: ereg(), но, почитав, не очень понял, как ей пользоваться. Если это вообще та..
Добавлено 2010.10.06 21-56
Если про этот код, вот я его под себя дополнил подключил к бд:
mysql_conf.php
Запрос не обрабатывает >.> Оставляет на главной странице
Добавлено 2010.10.06 22-01
Пробил по учебникам и по eclipse ошибок не нашел. Структура, вроде, тоже верная ...
1
2
3
4
5
6
7
8
<?php $con = '';
foreach ($news as $new) {
$con = $con . $new['title'] . '<br>' . $new['content'];
}
$templ = file_get_contents('templ.html');
$con = str_replace('{content}', $con, $templ);
echo $con;?>
??? Кажись понял .. А можно ли заданные шаблонные переменные выводить в конфиги? Например:
config.php
1
2
3
4
5
6
7
8
9
10
11
12
<?php $con = '';
foreach ($news as $new) {
$con = $con . $new['title'] . '<br>' . $new['content'];
}
$templ = file_get_contents('templ.html');
$con = str_replace('{content}', $con, $templ);
echo $con;
$name = "Петя";
$name = str_replace('{name}', $name, $templ);
$title = "Сайт" . $name;
$name = str_replace('{title}', $title, $templ);?>
index.php
1
2
3
4
<?php include(config.php);
$razdel = "Главная";
$razdel = str_replace('{raz}', $razdel, $templ); // Срочные подключения, работающие только в этом документе?>
А ещё спросить хотел, можешь рассказать про "квотирование"? А то я нашел, кажется, ф-ция: ereg(), но, почитав, не очень понял, как ей пользоваться. Если это вообще та..
Добавлено 2010.10.06 21-56
Цитата
<?php if ($q = mysql_query("SELCT * FROM users WHERE pass=$_POST['pass'] AND login=$_POST['login'] LIMIT 1")) // проверяем логины и пароли
$_SESSION['user'] = mysql_result($q, 0); // устанавливаем ключ ID для сессии авторизованного
header("Location: ../main.php"); // отправляем на закрытую страницу
else
unset($_SESSION['user']);
header("Location: ../index.php"); // отправляем обратно на авторизацию
?>
$_SESSION['user'] = mysql_result($q, 0); // устанавливаем ключ ID для сессии авторизованного
header("Location: ../main.php"); // отправляем на закрытую страницу
else
unset($_SESSION['user']);
header("Location: ../index.php"); // отправляем обратно на авторизацию
?>
Если про этот код, вот я его под себя дополнил подключил к бд:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php include ('mysql_conf.php');
if ($q = mysql_query("SELECT * FROM ". $user_tb ." WHERE ". $pass=$_POST['password'] ." AND ". $login=$_POST['login'] ." LIMIT 1 ")) {
// проверяем логины и пароли
$_SESSION['user'] = mysql_result($q, 0); // устанавливаем ключ ID для сессии авторизованного
header("Location: ../main.php"); // отправляем на закрытую страницу
mysql_close ($link);
die();
}
else {
unset($_SESSION['user']);
header("Location: ../index.php"); // отправляем обратно на авторизацию
die();
}?>
mysql_conf.php
1
2
3
4
5
6
7
<?php $host = "localhost";
$user = "root";
$pass = "";
$db = "sengine";
$users_tb = "users";
$link = mysql_connect($host, $user, $pass);?>
Запрос не обрабатывает >.> Оставляет на главной странице
Добавлено 2010.10.06 22-01
Пробил по учебникам и по eclipse ошибок не нашел. Структура, вроде, тоже верная ...
Отправлено: 6 Oct 2010#26
Во первых не юзай там
юзай
во-вторых забудь про erg() юзай preg_match()
ereg() уже вырезают из PHP и на новых версиях она не будет работать.
в-третьих ты там выше приводил примеры где сначала выводил контент
а потом продолжал его формировать. Так не делается. сначала полностью закончи его формировать а уже потом выводи.
в-четвертых забей на еклипс и так далее. пиши в самом первом файле который у тебя самым первым начинает работу в самом верху(начале)
оно и скажет тебе о всех ошибках
прикола с конфигом не понял. конфиг это то место где хранятся настройки такие как подключение к бд(пасс логин и имя базы) и так далее. например сколько новостей выводить на главной и все такое, логики там по идее быть не должно.
1
2
<?php mysql_result($q, 0);?>
юзай
1
2
<?php mysql_fetch_array($q);?>
во-вторых забудь про erg() юзай preg_match()
ereg() уже вырезают из PHP и на новых версиях она не будет работать.
в-третьих ты там выше приводил примеры где сначала выводил контент
1
2
<?php echo $con;?>
а потом продолжал его формировать. Так не делается. сначала полностью закончи его формировать а уже потом выводи.
в-четвертых забей на еклипс и так далее. пиши в самом первом файле который у тебя самым первым начинает работу в самом верху(начале)
1
2
<?php error_reporting(E_ALL);?>
прикола с конфигом не понял. конфиг это то место где хранятся настройки такие как подключение к бд(пасс логин и имя базы) и так далее. например сколько новостей выводить на главной и все такое, логики там по идее быть не должно.
Edit by author 6 Oct 2010
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 6 Oct 2010#27
Исправил, вот что получилось
Не обрабатывает запрос. Точнее обрабатывает, но неадекватно. Не находит в базе должных логина и пароля
Про конфиг:
Имеется в виду файл, в котором будут содержаться постоянные переменные, нужные для шаблонов на нескольких страницах, что бы не копировать его постоянно
Можешь пример привести? А то не особо понятно указано на php.ru/php.su/webteach.ru
Добавлено 2010.10.06 23-06
Про первое:
Я подумал, он же не знает получается, в каких полях искать логин и пароль, как их задать?
Прости, я, наверное, тебя уже запарил
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php error_reporting(E_ALL);
include ('mysql_conf.php');
if ($q = mysql_query("SELECT * FROM ". $users_tb ." WHERE ". $pass=$_POST['password'] ." AND ". $login=$_POST['login'] ." LIMIT 1 ")) {
// проверяем логины и пароли
session_start();
$_SESSION['user'] = mysql_fetch_array($q); // устанавливаем ключ ID для сессии авторизованного
header("Location: ../main.php"); // отправляем на закрытую страницу
mysql_close ($link);
die();
}
else {
// unset($_SESSION['user']); // если она не заслешована, выдает ошибку о undefinded variable, потому что сессия не открыта
header("Location: ../index.php"); // отправляем обратно на авторизацию
die();
}?>
Не обрабатывает запрос. Точнее обрабатывает, но неадекватно. Не находит в базе должных логина и пароля
Про конфиг:
Имеется в виду файл, в котором будут содержаться постоянные переменные, нужные для шаблонов на нескольких страницах, что бы не копировать его постоянно
Цитата
<?php mysql_fetch_array($q);?>
Можешь пример привести? А то не особо понятно указано на php.ru/php.su/webteach.ru
Добавлено 2010.10.06 23-06
Про первое:
Я подумал, он же не знает получается, в каких полях искать логин и пароль, как их задать?
Прости, я, наверное, тебя уже запарил
Отправлено: 6 Oct 2010#28
Цитата
Прости, я, наверное, тебя уже запарил
Цитата
Про первое:
Я подумал, он же не знает получается, в каких полях искать логин и пароль, как их задать?
Я подумал, он же не знает получается, в каких полях искать логин и пароль, как их задать?
SELECT * FROM `users` WHERE `поле`='значение'
или конкретнееSELECT * FROM `users` WHERE `login`=$login
еще конкретнее 1
2
<?php $q = mysql_query("SELECT * FROM ". $users_tb ." WHERE `pass`=".$_POST['password'] ." AND `login`=".$_POST['login'] ." LIMIT 1 ")?>
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 6 Oct 2010#29
Подставил, нет ошибок, запрос не обрабатывает
Добавлено 2010.10.06 23-23
Все настроил под свою БД...
Добавлено 2010.10.06 23-23
Все настроил под свою БД...
Сейчас online: 4. Зарегистрированных: 0. Гостей: 4.

