Сообщений: 1,240
Тем: 29
Зарегистрирован: May 2013
Репутация:
2,505
Fudji Написал:Я честно говоря и не хочу пополнять банду программеров, мне и админом не плохо, но сьехать с задачи не успел(
Тогда не спешите и потратьте пару дней на чтение. Думаю, потом спасибо скажете.
И ещё. PHP язык без чётко определённого стиля мыслеизлагания для программиста. Т.е. его можно использовать как в стиле ООП (используя классы и методы) или по "колхозному", как у вас в примере. Первый вариант максимально удобен, понятен и читабелен.
Родился, живу и когда-нибудь умру.
Сообщений: 604
Тем: 16
Зарегистрирован: Feb 2013
Репутация:
4,248
07-05-2014, 09:03 PM
(Сообщение последний раз редактировалось: 07-05-2014, 09:11 PM epmak.)
в общем, ооснова в 3 файлах
index.php
PHP код: <?php session_start();
require "configs.php";//подключаем настройки и подключение к базе
require "function.php";//подключаем функции, где кстати будет и auth
if(!isset($_SESSION["login"]) || !isset($_SESSION["group"]))
showLoginForm();
else
{
//работаем с таблицой
logOut();
echo "тут основная движуха";
}
function.php
spoiler
PHP код: <?php
/**
* авторизация
* @param $login
* @param $pwd
* @return bool
*/
function auth($login,$pwd)
{
$q = mysql_query("select password, ugroup FROM users WHERE login='{$login}'");
$info = mysql_fetch_array($q);
if(isset($info["password"]))//если есть такой юзверь
{
if($pwd == $info["password"])
{
$_SESSION["login"] = $login;
$_SESSION["group"] = $info["ugroup"];
return true;
}
}
return false;
}
/**
* обработка данных
*/
function showLoginForm()
{
if(!isset($_POST["loginfield"]) && !isset($_POST["pwdfield"]))
{
echo "<form method='POST' action=''>
Логин: <input type='text' name='loginfield'><br>
Пароль: <input type='password' name='pwdfield'><br>
<input type='submit' name ='logIn' value='Вход'>
</form>";
}
else
{
$login = htmlspecialchars(trim($_POST["loginfield"]));
$pw = htmlspecialchars(trim($_POST["pwdfield"]));
if(!auth($login,$pw))
{
echo "Пользователя не существует или введены неверные данные, нажмите <a href='http://{$_SERVER["HTTP_HOST"]}'>сюда</a> чтобы продолжить";
}
else
header("Location: http://{$_SERVER["HTTP_HOST"]}");
}
}
/**
* выход кнопка/дейстиве по надатии на кнопку
*/
function logOut()
{
if(!isset($_REQUEST["logot"]))
{
echo "<form method='POST'><input type='submit' value='Выйти'> </form>";
}
else
{
session_destroy();
header("Location: http://{$_SERVER["HTTP_HOST"]}");
}
}
configs.php
PHP код: <?php
$db_host = 'localhost';
$db_name = 'test';
$db_username = 'root';
$db_password = 'root';
// соединяемся с сервером базы данных
$connect_to_db = mysql_connect($db_host, $db_username, $db_password)
or die("Could not connect: " . mysql_error());
// подключаемся к базе данных
mysql_select_db($db_name, $connect_to_db)
or die("Could not select DB: " . mysql_error());
PHP код: <?php
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `users`
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`users_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`login` varchar(30) NOT NULL,
`password` varchar(32) NOT NULL,
`ugroup` varchar(15) DEFAULT '0',
PRIMARY KEY (`users_id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES ('6', 'TEst', 'test', '1');
Добавлено через 7 минут
Donatte Написал:Тогда не спешите и потратьте пару дней на чтение.
И ещё. PHP язык без чётко определённого стиля мыслеизлагания для программиста. Т.е. его можно использовать как в стиле ООП (используя классы и методы) или по "колхозному", как у вас в примере. Первый вариант максимально удобен, понятен и читабелен.
для хелоуворда на коленке ооп будет слишком круто
даи для его потребности это не к чему. Хотя, согласен, чет я настолько привык в MVC или частичному MVC, что не привычно
Сообщений: 1,240
Тем: 29
Зарегистрирован: May 2013
Репутация:
2,505
Замените require на require_once. Первое использовать при вызове дополнительных модулей не камильфо.
Родился, живу и когда-нибудь умру.
Сообщений: 604
Тем: 16
Зарегистрирован: Feb 2013
Репутация:
4,248
отличие в приставке _once в том, что жрет больше ресурсов и при одинаковых функциях в общем теле документа не вызывает коллизий, на фига оно там? зачем все усложнять, если этого не требуется...
Сообщений: 1,240
Тем: 29
Зарегистрирован: May 2013
Репутация:
2,505
epmak Написал:отличие в приставке _once в том, что жрет больше ресурсов и при одинаковых функциях в общем теле документа не вызывает коллизий, на фига оно там? зачем все усложнять, если этого не требуется...
Первое, используется для подгрузки HTML кода. Т.е. можно подгружать бесконечное количество раз один и тот же кусок кода из файла и он будет дополнять имеющийся.
Второе, игнорирует повторные вызовы и рекомендовано к использованию для импорта классов и методов исполняемого кода.
Как-то так.
Родился, живу и когда-нибудь умру.
Сообщений: 604
Тем: 16
Зарегистрирован: Feb 2013
Репутация:
4,248
epmak Написал:отличие в приставке _once в том, что жрет больше ресурсов и при одинаковых функциях в общем теле документа не вызывает коллизий, на фига оно там? зачем все усложнять, если этого не требуется... Donatte Написал:игнорирует повторные вызовы и рекомендовано к использованию для импорта классов и методов исполняемого кода.
найдите смысловое отличие.
по поводу рекомендовано. Рекомендовано не значит, что нужно использовать только ее.
и самое главное, меня мучает страшный вопрос, какого не понятного чуда вы машете кулаками после драки? парню за просто так предоставили помощь и тут же находится умных дел мастер "вот тут не так и там не эдак", самому то не противно?
Сообщений: 1,240
Тем: 29
Зарегистрирован: May 2013
Репутация:
2,505
epmak Написал:найдите смысловое отличие.
по поводу рекомендовано. Рекомендовано не значит, что нужно использовать только ее.
и самое главное, меня мучает страшный вопрос, какого не понятного чуда вы машете кулаками после драки? парню за просто так предоставили помощь и тут же находится умных дел мастер "вот тут не так и там не эдак", самому то не противно?
Согласен. Дарёному коню в зубы не смотрят.
Родился, живу и когда-нибудь умру.
Сообщений: 684
Тем: 21
Зарегистрирован: May 2013
Репутация:
2,594
Спасибо огромное всем кто помогал, реализовано всё что я хотел в данной теме.
в мой старый function.php добавил следующай код
PHP код: <?php
$q = mysql_query("select password, ugroup FROM users WHERE login='{$login}'");
$info = mysql_fetch_array($q);
$_SESSION["ugroup"] = $info["ugroup"];
в index.php реализовал так
PHP код: <?php
if ($_SESSION["ugroup"] == 1 ){
echo '<td><center>' . $data['Tema'] . '</center></td>';
}
else
{
echo '<td><center>' . $a . '</td>';
}
Детям нельзя в интернет. От детей интернет тупеет.
|