skad0, мой тебе совет не надо объединять логику и шаблоны.
скрипты пусть занимаются проверками без какого либо отображения, а когда ты уже знаешь кто запрашивает страницу и что надо отобразить, тогда уже собирай страничку или бери готовую(смотря как сделаешь) и показывай. Например так
типа этого. Тоесть сперва работа кода и только когда код полностью отработал что-то показываем. И постарайся сразу себя приучить разделять логику от шаблонов. Например при помощи меток как у меня в примере.
тут мы в цикле перибираем все новости и выводим заголовок каждой. Обрати внимание мы не перезаписываем переменную $con а дозаписываем. таким образом к концу цикла в ней будут все новости из массива $news. А потом все эти новости тулим вместо метки в шаблоне.
$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"); // отправляем обратно на авторизацию
?>
Если про этот код, вот я его под себя дополнил подключил к бд:
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();
}?>
во-вторых забудь про erg() юзай preg_match()
ereg() уже вырезают из PHP и на новых версиях она не будет работать.
в-третьих ты там выше приводил примеры где сначала выводил контент
1 2
<?php echo $con;?>
а потом продолжал его формировать. Так не делается. сначала полностью закончи его формировать а уже потом выводи.
в-четвертых забей на еклипс и так далее. пиши в самом первом файле который у тебя самым первым начинает работу в самом верху(начале)
1 2
<?php error_reporting(E_ALL);?>
оно и скажет тебе о всех ошибках
прикола с конфигом не понял. конфиг это то место где хранятся настройки такие как подключение к бд(пасс логин и имя базы) и так далее. например сколько новостей выводить на главной и все такое, логики там по идее быть не должно.
<?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
Про первое:
Я подумал, он же не знает получается, в каких полях искать логин и пароль, как их задать?