[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ЗАДАНИЯ ДЛЯ НАЧИНАЮЩИХ
ZSH
Здравствуйте!. Я изучаю PHP, уровень начинающий .
Хочу попробовать написать небольшой скрипт по заданию специалиста,
и узнать ваше мнение по этому скрипту.

ЗАРАНЕЕ СПАСИБО!



Спустя 21 минута, 47 секунд (13.08.2009 - 21:24) twin написал(а):

Спустя 29 минут, 57 секунд (13.08.2009 - 21:54) ZSH написал(а):
Спасибо! Тяжеловато для начинающего, но попробую справится.
И объясните пожалуйста чайнику:
2. Должна быть защита от F5
3. Страница должна быть защищена от XSS атак.
че это такое.

Спустя 4 минуты, 47 секунд (13.08.2009 - 21:59) twin написал(а):
F5 это кнопка такая на клаве. Когда нажимаешь, страница обновляется. Если нет защиты, то можно жать эту кнопку стопицот раз и будет столько записей. Это защита от флуда по русски. XSS поищи в гугле, очень много инфы. А что сложно, то не боись. Подскажем.

Спустя 5 минут, 58 секунд (13.08.2009 - 22:04) ZSH написал(а):
twin спасибо понял. Буду пробовать.

Спустя 55 секунд (13.08.2009 - 22:05) PandoraBox2007 написал(а):

Спустя 1 час, 40 минут, 47 секунд (13.08.2009 - 23:46) Han написал(а):
twin спасибо и мне дал почву для упорной работы!

Спустя 1 час, 26 минут, 37 секунд (14.08.2009 - 01:13) Soldier Ghost написал(а):
Цитата (ZSH @ 13.08.2009 - 18:54)
Спасибо! Тяжеловато для начинающего, но попробую справится.
И объясните пожалуйста чайнику:
2. Должна быть защита от F5
3. Страница должна быть защищена от XSS атак.
че это такое.

Это на первый взгляд ph34r.gif это только цветочки laugh.gif

Спустя 21 час, 8 минут, 14 секунд (14.08.2009 - 22:21) blase написал(а):
zsh
чтобы защитится от XSS атак, надо писать фильтрацию на тэги "<>" и т.п.
тоесть, если у тебя нет фильтра, то любой желающий может написать код:
PHP
&#60;script>alert(4815162342)</script>

в какой либо активной строке после чего, при каждом обновлении страницы, будет выскакивать окно с цифрами "4815162342", которая тем самым может попортить нервы)
и другие подобные извращения над твоим сайтом, могут таким же методом осуществить нервотрепку
а "Защита от XSS атак" это фильтрат на подобные скрипты
поищи на ya.ru

Спустя 17 минут, 7 секунд (14.08.2009 - 22:38) twin написал(а):
Еще один любитель фильтров... Скрипт это не сигарета, а символы - не никотин, что бы филтры приделывать.
А написать можно не только "нервотрепный" код, а кое что посерьёзнее. Куки допустим на снифер отправить.

Спустя 1 час, 28 минут, 24 секунды (15.08.2009 - 00:07) ZSH написал(а):
По моему лучше не фильтровать данные, а экранировать. Пусть пользователи вводят что хотят. Если данные будут не коректные админ сайта поправит или удалит.

Сейчас мучаюсь. Лопачу литературу. Кое что получается.ТРУДНО!! Примеров скрипта не ищу.
Пусть долго про мучаюсь зато в башке что-то останется, а то скачаеш готовое и забудеш через день что к чему.

Спустя 37 минут, 29 секунд (15.08.2009 - 00:44) Gabriel написал(а):
искать пример ето одно а качать готовое ето другое

Спустя 4 часа, 27 минут, 34 секунды (15.08.2009 - 05:12) PandoraBox2007 написал(а):
PHP
htmlspecialchars()


кодируем в базу а в браузере при выводе из бд получаем уже экранированный текст который только отображается не каких дырок всего 1 функция для обработки BBcode нужно ставить метки что бы места тегов которые вам нужны не перезаписывалось

Спустя 1 час, 3 минуты, 47 секунд (15.08.2009 - 06:15) twin написал(а):
Цитата
htmlspecialchars()
кодируем в базу

Не надо так делать.

Спустя 3 часа, 31 минута, 19 секунд (15.08.2009 - 09:47) ИНСИ написал(а):
обрабатывай через mysql_real_escape_string и stripslashes

Спустя 12 часов, 57 минут, 43 секунды (15.08.2009 - 22:44) twin написал(а):
Цитата
обрабатывай через mysql_real_escape_string и stripslashes

И так не надо делать.

Спустя 1 час, 57 минут, 1 секунда (16.08.2009 - 00:41) ZSH написал(а):
Каким способом лучше вставлять даные в таблицу БД
INSERT INTO таблица (поле) VALUES ('даные')
или
INSERT INTO таблица SET поле='даные'

Спустя 7 минут, 33 секунды (16.08.2009 - 00:49) Gabriel написал(а):
с какой ноги лутше вставать? с левой? с правой? или с обеих сразу?

Спустя 2 дня, 20 часов, 49 минут, 3 секунды (18.08.2009 - 21:38) Guest написал(а):
[code]
Ура!!! Почти получилось. Почемуто не работает поиск с обратными слешами.

PHP
<?php

mysql_connect
('localhost','root','root');             //подключение к БД
mysql_select_db('name');
mysql_query('SET NAMES cp1251');


@
$login $_REQUEST['login']; 
@
$id $_REQUEST['id'];
@
$poisk $_REQUEST['poisk'];
if (
get_magic_quotes_gpc())                           //если включен get_magic_quotes_gpc
    
{    $login stripslashes($login);
        
$id stripslashes($id);                          //удаляем слеши
        
$poisk stripslashes($poisk);
    }
if(
$idDate_register($id);                           //запрос поиска даты регистрации                         
if($poiskPoisk_login($poisk);                       //запрос поиска имени пользователей                                      
if($login)                                            
    {                                                   
        
$login trim($login);                            //проверка на пробелы
        
if($login != ''Save_login($login);              //и вызов функции регистрации
    
}
                                                       
Screen_login();                                       //вывод зарегистрированых на экран
                                                                                                        



                                        //ФУНКЦИЯ ПОИСКА ДАТЫ РЕГИСТРАЦИИ

function Date_register($id)                           //$id номер переданный по ссылке
{    
    
$id mysql_real_escape_string($id);                //экранируем перед запросом БД
    
$date mysql_query('SELECT * FROM name WHERE id ="'.$id.'"');  //запрос БД
    
$date mysql_fetch_array($date);                               //результат БД в массив
    
echo'<h3>Пользователь </h3><h3 style=color:blue>'.htmlspecialchars($date['name'],ENT_QUOTES).'</h3>
             <h3> зарегистрирован </h3><h3 style=color:blue>'
.$date['date'].'</h3><hr>';
}                                                     
//имя и дата из массива на монитор

                                        //ФУНКЦИЯ ПОСКА ИМЕНИ ПО ЗАДАНЫМ СИМВОЛАМ

function Poisk_login($poisk)
{                         
    
$dat mysql_real_escape_string($poisk);           //экранируем строку перед запросом БД
    
$poisk mysql_query('SELECT * FROM name WHERE name LIKE"%'.$dat.'%"'); //поиск в БД
    
if($col mysql_num_rows($poisk))                  //количество найденых
        
{    
            echo
'<h3 style = color:green>Найдено '.$col.' зарегистрировных пользователей</h3>';
            
$login mysql_fetch_array($poisk);            //первый найденый в массив
            
while($login)
                {                                            
//цикл вывода на монитор
                    
echo'<li>'.htmlspecialchars($login['name'],ENT_QUOTES).'</li>';
                    
$login mysql_fetch_array($poisk);
                }
        }    else    echo
'<h3 style = color:red>Пользователей не найдено</h3>';
    echo
'<hr>';                                        
}

                                        
//ФУНКЦИЯ ВЫВОДА НА МОНИТОР ПОЛЬЗОВАТЕЛЕЙ


function Screen_login()

    
$db mysql_query('SELECT * FROM name ORDER BY id DESC');  //запрос к БД в обратном порядке
    
$login mysql_fetch_array($db);
    while(
$login)                                              //цикл перебора всех записей
        
{    
            echo
'<li><a href = "'.$_SERVER['PHP_SELF'].'?id='.$login['id'].'">
                    '
.htmlspecialchars($login['name'],ENT_QUOTES).'</a></li>';
            
$login mysql_fetch_array($db);
        }    
}
                                        
//ФУНКЦИЯ ЗАПИСИ ИМЕНИ В БД


function Save_login($login)
{    
    
$login mysql_real_escape_string($login);
    
mysql_query('INSERT INTO name(name)VALUES("'.$login.'")');
    
header('location: '.$_SERVER['PHP_SELF']);                //запуск по новому
}

?>
<form action = 'index.php' method = 'POST'>
    <h4><b>Введите логин</b></h4>
    <input type = 'text' name = 'login'>
    <input type = 'submit' value = 'Регистрация'>
</form>
<form action = 'index.php' method = 'GET'>
    <h4><b>Поиск</b></h4>
    <input type = 'text' name = 'poisk' value = '<?php echo @htmlspecialchars($_REQUEST['poisk'],ENT_QUOTES); ?>'>
    <input type = 'submit' valu

Спустя 3 минуты, 18 секунд (18.08.2009 - 21:41) ZSH написал(а):
ВОТ БЛИН!!! Забыл авторизироватся.

Спустя 20 минут, 36 секунд (18.08.2009 - 22:02) twin написал(а):
Оформи в отдельную ветку плиз, я сейчас гляну.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.