Perezzloy
Newbie-
Posts
15 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Perezzloy
-
keltanas, спасибо за подсказку, попробую так
-
Есть у меня функция, которая серилизует и записывает данные из массива в файл. Данные располагаются в файле построчно, типа этого (тут 2 строки, не дает здешний редактор их так записать): a:4:{s:2:"id";i:1;s:5:"login";s:5:"xxxx1";s:8:"rec_name";s:6:"что-то";s:11:"rec_message";s:10:"еще что-то";} a:4:{s:2:"id";i:2;s:5:"login";s:5:"xxxx2";s:8:"rec_name";s:6:"что-то";s:11:"rec_message";s:22:"и здесь какой-то текст";} Нужна функция, которая выводила бы записи на страницу. Я начал писать ее так: function view() { // Получение текста из файла в массив, то есть элементы массива - это строки в файле $content= file('test.txt'); } А вот как сделать чтобы запись из каждой строки выводилась на страницу я понять не могу. Строк в файле может становиться больше. Я могу посчитать через count количество строк(элементов в массиве $content). Подскажите как сделать, чтобы каждая строка была рассериализована и выведена на страницу? Вероятно тут как-то через цикл надо, но я плохо понимаю работу циклов(
-
Мне думается, что на файлах быстрее, к тому же меньше риск потерять информацию. На счет безопасности я предусмотрел Буду изучать DOM как наиболее перспективное.
-
Нужно создать регистрацию и авторизацию на сайте. Данные пользователей должны сохраняться в ОДИН xml-файл, типа: <?xml version="1.0" encoding="utf-8"?> <users><user id="1"><login>User1</login><password>Pass1</password></user><user id="2"><login>User2</login><password>Pass2</password></user><user id="3"><login>User3</login><password>Pass3</password></user></users> Соответственно, нужно написать скрипты для сохранения и вывода информации. + нужно как то привязать к авторизации сессию и куки на 4 часа. Собственно, подскажите хотя бы с чего начать. Вообще не имею опыта работы с xml.
-
Ок, спасибо, попробую разобраться
-
Сразу скажу, да, я знаю что в инете полно статей по этой теме, но мне остаются неясными некоторые моменты! Задача: Мне нужно создать php-скрипт, который выводил бы при нажатии на ссылку определенную страницу сайта. Сейчас попробую подробнее объяснить. Структура сайта такова: index.php config.php # Инклюдится к index.php header.php # Инклюдится к index.php menu.php # Инклюдится к header.php content.php # Инклюдится к index.php left_block.php # Инклюдится к content.php center_block.php # Инклюдится к content.php right_block.php # Инклюдится к content.php footer.php # Инклюдится к index.php В меню должна быть ссылка на раздел "Страницы". При нажатии на нее в center_block.php должна отображаться 1 страница (page1.php), а также горизонтальное меню вида: <|1|2|[3]|4|5|> (ну вы поняли). Настройки лучше чтоб были в config.php. Вот примерно так. А, чуть не забыл, все это без использования мускула, бд только на файлах! Как это реализовать не представляю. Помогите хотя бы с алгоритмом и "описанием" кода. Свои пробы буду выкладывать в этой теме.
-
Все, разобрался. Сделал таки регистрацию/авторизацию на своем сайте.
-
$data создается так: <form method=post > Имя:<input type=text name=login> Пароль:<input type=password name=pass> <input type='reset' name='Reset' value='Очистить'><input type=submit name=go value='Войти'> </form> <?php $_POST['login'] = trim($_POST['login']); $_POST['pass'] = trim($_POST['pass']); if(empty($_POST['login'])) exit(); if(empty($_POST['login'])) exit('Поле "Имя" не заполнено.'); if(empty($_POST['pass'])) exit('Поле "Пароль" не заполнено.'); $data = (trim($_POST['login']."::".$_POST['pass'], "\r\n")); ?> В общем то можно было и попроще, но просто удобно расположить данные в файле в таком виде: login::pass:: Все работает, осталось прикрутить сессию, а вот с этим проблемы. Думаю даже тему создать придется. Кстати, может подскажите почему у меня после html-кода php-код отображается в браузере и не исполняется? Вот: <?php session_start (); if (! isset ($ _POST ['go'])){ echo "<form method=post > Имя:<input type=text name=login> Пароль:<input type=password name=pass> <input type='reset' name='Reset' value='Очистить'><input type=submit name=go value='Войти'> </form>"; } else { $_POST['login'] = trim($_POST['login']); $_POST['pass'] = trim($_POST['pass']); if(empty($_POST['login'])) exit(); if(empty($_POST['login'])) exit('Поле "Имя" не заполнено.'); if(empty($_POST['pass'])) exit('Поле "Пароль" не заполнено.'); $data = (trim($_POST['login']."::".$_POST['pass'], "\r\n")); $file = @fopen("test.txt", "r"); if (!is_resource($file)) { exit("Ошибка доступа к базе данных!"); } if (strpos(file_get_contents("test.txt"), $data)) { $ _SESSION ['login']=$_POST [' login ']; $ _SESSION ['pass']=$_POST['pass']; { Header ("Location: index.php"); } } else echo "Неверный логин или пароль!"; } fclose($file); ?> После вывода формы начинается эта хрень. То есть в браузере видно код начиная отсюда: ;} else { $_POST['name'] = trim($_POST['name']); $_POST['pass'] = trim($_POST['pass']); if(empty($_POST['name'])) exit(); if(empty($_POST['name'])) exit('Поле "Имя" не заполнено.'); if(empty($_POST['pass'])) exit('Поле "Пароль" не заполнено.'); $data = (trim($_POST['name']."::".$_POST['pass'], "\r\n")); $file = @fopen("test.txt", "r"); if (!is_resource($file)) { exit("Ошибка доступа к базе данных!"); } if (strpos(file_get_contents("test.txt"), $data)) { Header ("Location: index.php"); } else echo "Неверный логин или пароль!"; } fclose($file); ?>
-
Ок, спасибо всем! Этот поиск нужен для авторизации на сайте (БД на файлах). Это для обучения мне . Сегодня я случайно нашел более простое решение: if (strpos(file_get_contents("test.txt"), $data)); и не нужно больше никаких массивов Хотя нужно проверять (ибо уязвима такая передача), может еще и ваши варианты использую. Еще раз спасибо.
-
Я почему то так сразу и подумал... А вы не боитесь на него в explorere заходить?)) я не критикую, у самого в explorere вид немного теряется. Под exp отдельно хакать придется Да, Вы правы, в эксплорере вид не очень, но я все же подгоняю где могу. Кроме того, люди, пользующиеся эксплорером, мало меня интересуют Ну и на примере того сайта я учусь css и php.
-
Они и так в ней. Но проблему уже решил. Можете глянуть на сайте (выше в сообщениях). А на счет спецсимволов, да есть некоторые. Просто на CSS3 делаю, с применением скругленных углов, прозрачности, градиентов и т.д. А еще там есть хаки для разных браузеров.
-
Есть файл test.txt такого вида: слово1::слово2::слово3 Нужно проверить есть ли в этом файле "слово2" (к примеру). "::"-это разделители, слова должны проверяться без них. Вот я начал так писать: $data = ("слово2"); $file = file("test.txt"); Дальше не знаю как, вроде как надо перегонять из файла в массив, разделять на строки по разделителю "::", сравнивать $data с каждой строкой и если найдется равная вывести об этом сообщение, если не найдется, то вывести сообщение что не нашлась. Подскажите как все это реализовать. Лучше прям кодом, я новичек в php, нужен пример. И распишите, плиз, код, чтоб понятно было что где. И вот еще. На всякий случай. Сам файл в кодировке UTF-8. И при поиске слова ОЧЕНЬ важно не учитывать разделитель; пробелы и другие пустые символы.
-
ок, попробую, спасибо. хотя эту проблему в целом то решил с помощью отрицательных внешних отступов, хотя такое решение мне не нравится
-
Да, вот все же ссылка на мой сайт: pereclab.tk
-
Делаю сайт. Шаблон у меня частично на дивах, частично в таблицах. Возникла такая проблема: не могу убрать пробел между горизонтальным меню и блоком "контент". Как сделать floatОМ так и не понял, пустой див с нулевыми размером шрифта и высотой вроде бы помогает, но тогда половина горизонтального меню не отображается. Вот код шаблона html: <div id="main"> <header> ?<div id="header"><table align="center" cellpadding="0" cellspacing="0" width="100%"> <tbody><tr> <td width="30%"><div id='logo'><img src="logo.png" alt="" height=100px weight=200px></div></td> <td valign="bottom" width="50%" id="name"><div class='site_name'><h1>Название сайта</h1></div><br /><div class='slogan'><p>Слоган сайта</p></div></td> <td width="20%"><div class='date'>тут дата</div></td> </tr> </tbody></table></div></header> <nav> ?<div class='cssmenu'> <ul> <li class=''><a href='№'><span>ххх</span></a></li> <li class=''><a href='#'><span>ххх</span></a></li> <li class='has-sub '><a href='#'><span>ххх</span></a> <ul> <li class=''><a href='#'><span>ххх</span></a></li> <li class=''><a href='#'><span>ххх</span></a></li> </ul> </li> <li class=''><a href='#'><span>Контакты</span></a></li> </ul> </div> </nav> <section> ?<div id="content"><table cellpadding="0" cellspacing="0" width="100%" valign="top"> <tbody><tr valign="top"> ?<td id="left_block"></div></td> ?<td id="center_block"></td>? <td id="right_block">?</td></tr> </tbody></table></div> <div style="font-size: 0px; height: 0px;"> </section> А вот его css: html, body{ margin:0; padding:1; width:99,9%; height:100%; font-family: Arial; font-size: 12px; color: #444; background: #888;} p:first-letter {color: red; font-weight: bold;} h1:first-letter {color: red; font-weight: bold;} /* Основной раздел */ #main { width: 100%; background – color : #ECECEC; margin-left: auto; margin-right: auto; position:relative; min-height:99%; height:auto !important; height:99%; color: #646464; border: 2px;} #main .empty {height:41px; } /* Хеадер */ #header { overflow: hidden; background – color : #F7F5F5; background – repeat : repeat – x; background – position : bottom; -moz-border-radius: 10px; -webkit-border-radius: 10px; border: 0px; padding: 0px 8px 0px 8px; font-size: 8px;} .site_name { font-family: Arial; text–align: center; font-size: 18px;} .slogan { font-size: 14px; font-family: Arial; text–align: center;} .date {font-size: 12px; font-family: Arial; text–align: center; font-weight: top;} /* менюшка */ #name { padding–top: 4px; padding–bottom: 4px; padding–left: 4px; padding–right: 2px; color: #555; text–align: center; overflow: hidden;} .cssmenu ul {margin: 0; padding: 7px 6px 0; background: #7d7d7d url(http://ххх) repeat-x 0 -110px; line-height: 100%; border-radius: 2em; font: normal .8em/1.5em Arial, Helvetica, sans-serif; font-size: 12px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; -webkit-box-shadow: 0 0px 0px rgba(0,0,0, .4); -moz-box-shadow: 0 0px 0px rgba(0,0,0, .4);} .cssmenu li {margin: 0 0px; padding: 0 0 8px; float: left; position: relative; list-style: none; } .cssmenu a, .cssmenu a:link {font-weight: bold; color: #e7e5e5; text-decoration: none; display: block; padding: 8px 20px; margin: 0; border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; text-shadow: 0 1px 2px rgba(0,0,0, .3); } .cssmenu a:hover {background: #000; color: #fff;} .cssmenu .active a, .cssmenu li:hover > a {background: #666 url(http://ххх) repeat-x 0 -40px; color: #444; border-top: solid 1px #f8f8f8; -webkit-box-shadow: 0 1px 1px rgba(0,0,0, .2); -moz-box-shadow: 0 0px 0px rgba(0,0,0, .2); box-shadow: 0 0px 0px rgba(0,0,0, .2); text-shadow: 0 1px 0 rgba(255,255,255, 1); } .cssmenu ul ul li:hover a, .cssmenu li:hover li a {background: none; border: none; color: #666; -webkit-box-shadow: none; -moz-box-shadow: none;} .cssmenu ul ul a:hover {background: #8f8f8f url(http://ххх) repeat-x 0 -100px !important; color: #fff !important; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; text-shadow: 0 1px 1px rgba(0,0,0, .1);} .cssmenu li:hover > ul {display: block;} .cssmenu ul ul {display: none; margin: 0; padding: 0; width: 185px; position: absolute; top: 40px; left: 0; background: #ddd url(http://ххх) repeat-x 0 0; border: solid 1px #b4b4b4; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; -webkit-box-shadow: 0 0px 0px rgba(0,0,0, .3); -moz-box-shadow: 0 0px 0px rgba(0,0,0, .3); box-shadow: 0 0px 0px rgba(0,0,0, .3);} .cssmenu ul ul li {float: none; margin: 0; padding: 3px; } .cssmenu ul ul a {font-weight: normal; text-shadow: 0 1px 0 #fff; } .cssmenu ul:after {content: '.'; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;} * html .cssmenu ul {height: 1%;} /* ————————————————————————————-- */ /* колонки */ #content {font-weight: top;} #left_block { width: 19%; background: #888; padding: 0px 3px 2px 6px; margin: 0 auto 0 auto; font-size: 12px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border: 0px;} #left_block p { text-align: justify;} #center_block { width: 58%; background: #888; padding: 0px 3px 2px 3px; margin: 0 auto 0 auto; font-size: 12px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border: 0px;} #center_block p { text-align: justify;} #center_block h2 { text-align: center;} #right_block { width: 19%; background: #888; padding: 0px 6px 2px 3px; margin: 0 auto 0 auto; font-size: 12px; text–align: center; -moz-border-radius: 10px; -webkit-border-radius: 10px; border: 0px;} Помогите разобраться, мучаюсь с этим уже 2й день.