Jump to content

Perezzloy

Newbie
  • Posts

    15
  • Joined

  • Last visited

About Perezzloy

  • Birthday 12/02/1991

Information

  • Sex
    Мужчина
  • From
    Ярославль
  • Interests
    Программирование Icon, php, html, css, xml, java, perl и другие. Самоучка! А вообще то я студент-эколог :D

Perezzloy's Achievements

Explorer

Explorer (1/14)

0

Reputation

  1. keltanas, спасибо за подсказку, попробую так
  2. Есть у меня функция, которая серилизует и записывает данные из массива в файл. Данные располагаются в файле построчно, типа этого (тут 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). Подскажите как сделать, чтобы каждая строка была рассериализована и выведена на страницу? Вероятно тут как-то через цикл надо, но я плохо понимаю работу циклов(
  3. Мне думается, что на файлах быстрее, к тому же меньше риск потерять информацию. На счет безопасности я предусмотрел Буду изучать DOM как наиболее перспективное.
  4. Нужно создать регистрацию и авторизацию на сайте. Данные пользователей должны сохраняться в ОДИН 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.
  5. Ок, спасибо, попробую разобраться
  6. Сразу скажу, да, я знаю что в инете полно статей по этой теме, но мне остаются неясными некоторые моменты! Задача: Мне нужно создать 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. Вот примерно так. А, чуть не забыл, все это без использования мускула, бд только на файлах! Как это реализовать не представляю. Помогите хотя бы с алгоритмом и "описанием" кода. Свои пробы буду выкладывать в этой теме.
  7. Все, разобрался. Сделал таки регистрацию/авторизацию на своем сайте.
  8. $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); ?>
  9. Ок, спасибо всем! Этот поиск нужен для авторизации на сайте (БД на файлах). Это для обучения мне . Сегодня я случайно нашел более простое решение: if (strpos(file_get_contents("test.txt"), $data)); и не нужно больше никаких массивов Хотя нужно проверять (ибо уязвима такая передача), может еще и ваши варианты использую. Еще раз спасибо.
  10. Я почему то так сразу и подумал... А вы не боитесь на него в explorere заходить?)) я не критикую, у самого в explorere вид немного теряется. Под exp отдельно хакать придется Да, Вы правы, в эксплорере вид не очень, но я все же подгоняю где могу. Кроме того, люди, пользующиеся эксплорером, мало меня интересуют Ну и на примере того сайта я учусь css и php.
  11. Они и так в ней. Но проблему уже решил. Можете глянуть на сайте (выше в сообщениях). А на счет спецсимволов, да есть некоторые. Просто на CSS3 делаю, с применением скругленных углов, прозрачности, градиентов и т.д. А еще там есть хаки для разных браузеров.
  12. Есть файл test.txt такого вида: слово1::слово2::слово3 Нужно проверить есть ли в этом файле "слово2" (к примеру). "::"-это разделители, слова должны проверяться без них. Вот я начал так писать: $data = ("слово2"); $file = file("test.txt"); Дальше не знаю как, вроде как надо перегонять из файла в массив, разделять на строки по разделителю "::", сравнивать $data с каждой строкой и если найдется равная вывести об этом сообщение, если не найдется, то вывести сообщение что не нашлась. Подскажите как все это реализовать. Лучше прям кодом, я новичек в php, нужен пример. И распишите, плиз, код, чтоб понятно было что где. И вот еще. На всякий случай. Сам файл в кодировке UTF-8. И при поиске слова ОЧЕНЬ важно не учитывать разделитель; пробелы и другие пустые символы.
  13. ок, попробую, спасибо. хотя эту проблему в целом то решил с помощью отрицательных внешних отступов, хотя такое решение мне не нравится
  14. Да, вот все же ссылка на мой сайт: pereclab.tk
  15. Делаю сайт. Шаблон у меня частично на дивах, частично в таблицах. Возникла такая проблема: не могу убрать пробел между горизонтальным меню и блоком "контент". Как сделать 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й день.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy