Jump to content

Perezzloy

Newbie
  • Posts

    15
  • Joined

  • Last visited

Posts posted by Perezzloy

  1. Есть у меня функция, которая серилизует и записывает данные из массива в файл. Данные располагаются в файле построчно, типа этого (тут 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).

    Подскажите как сделать, чтобы каждая строка была рассериализована и выведена на страницу?

    Вероятно тут как-то через цикл надо, но я плохо понимаю работу циклов(

  2. Нужно создать регистрацию и авторизацию на сайте. Данные пользователей должны сохраняться в ОДИН 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.

  3. Сразу скажу, да, я знаю что в инете полно статей по этой теме, но мне остаются неясными некоторые моменты!

    Задача:

    Мне нужно создать 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.

    Вот примерно так. А, чуть не забыл, все это без использования мускула, бд только на файлах!

    Как это реализовать не представляю. Помогите хотя бы с алгоритмом и "описанием" кода.

    Свои пробы буду выкладывать в этой теме.

  4. $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); ?>

  5. Ок, спасибо всем! Этот поиск нужен для авторизации на сайте (БД на файлах). Это для обучения мне ;). Сегодня я случайно нашел более простое решение:


    if (strpos(file_get_contents("test.txt"), $data));

    и не нужно больше никаких массивов :lol:

    Хотя нужно проверять (ибо уязвима такая передача), может еще и ваши варианты использую. Еще раз спасибо.

  6. Они и так в ней. Но проблему уже решил. Можете глянуть на сайте (выше в сообщениях). А на счет спецсимволов, да есть некоторые. Просто на CSS3 делаю, с применением скругленных углов, прозрачности, градиентов и т.д. А еще там есть хаки для разных браузеров.

    Я почему то так сразу и подумал... А вы не боитесь на него в explorere заходить?)) я не критикую, у самого в explorere вид немного теряется. Под exp отдельно хакать придется

    Да, Вы правы, в эксплорере вид не очень, но я все же подгоняю где могу. Кроме того, люди, пользующиеся эксплорером, мало меня интересуют :lol:

    Ну и на примере того сайта я учусь css и php.

  7. Они и так в ней. Но проблему уже решил. Можете глянуть на сайте (выше в сообщениях). А на счет спецсимволов, да есть некоторые. Просто на CSS3 делаю, с применением скругленных углов, прозрачности, градиентов и т.д. А еще там есть хаки для разных браузеров.

  8. Есть файл test.txt такого вида:


    слово1::слово2::слово3

    Нужно проверить есть ли в этом файле "слово2" (к примеру). "::"-это разделители, слова должны проверяться без них.

    Вот я начал так писать:


    $data = ("слово2");
    $file = file("test.txt");

    Дальше не знаю как, вроде как надо перегонять из файла в массив, разделять на строки по разделителю "::", сравнивать $data с каждой строкой и если найдется равная вывести об этом сообщение, если не найдется, то вывести сообщение что не нашлась.

    Подскажите как все это реализовать. Лучше прям кодом, я новичек в php, нужен пример.

    И распишите, плиз, код, чтоб понятно было что где.

    И вот еще. На всякий случай. Сам файл в кодировке UTF-8. И при поиске слова ОЧЕНЬ важно не учитывать разделитель; пробелы и другие пустые символы.

  9. Делаю сайт. Шаблон у меня частично на дивах, частично в таблицах. Возникла такая проблема: не могу убрать пробел между горизонтальным меню и блоком "контент". Как сделать 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