Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Пожалуйста help! :) Есть несколько вопросов по PHP/MySQL (https://forum.antichat.xyz/showthread.php?t=58934)

PEPSICOLA 17.01.2008 03:13

Пожалуйста help! :) Есть несколько вопросов по PHP/MySQL
 
mysql_query("SELECT uid, password FROM crew WHERE login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1")

Что обозначает "LIMIT 1" ?

И такой вопрос - там что то header's не должны выводиться - первым делом устанавливаются куки...
А требуется сделать установку cookies, в include файле, а этот файл вставляется посреди index'a?

Есть более навороченные способы установить куки? :)
Например... создать отдельный файл, отвечающий за установку cookies и когда требуется, что бы он сам включался в index и делал свою работу? :rolleyes:

Спасибо за помощь и... продолжение следует :) Я решился взяться сам за давно задуманный сайт :D

Piflit 17.01.2008 03:35

limit x,y где х - запись, с которой показывается у записей

ЗЫ вкусный был кофе?)

PEPSICOLA 17.01.2008 03:47

Цитата:

Сообщение от Piflit
limit x,y где х - запись, с которой показывается у записей

ЗЫ вкусный был кофе?)

мэн, нифига не понял :confused: :D

Кофе - отменный :D

C!klodoL 17.01.2008 03:54

Limit - это сколько выводить строк из таблицы, как пифлит писал выше Limit 1,10 выведет с первой по 10

PEPSICOLA 17.01.2008 03:59

Цитата:

Сообщение от C!klodoL
Limit - это сколько выводить строк из таблицы, как пифлит писал выше Limit 1,10 выведет с первой по 10

А не выведит ли он только десятую? По типу... Вывести 1 начиная с 10.

Piflit 17.01.2008 04:04

Цитата:

Сообщение от PEPSICOLA
А не выведит ли он только десятую? По типу... Вывести 1 начиная с 10.

limit 10,1 т.е. первая запись идет как 0. тогда он выведет 11ую

C!klodoL 17.01.2008 04:06

омг, ступил) короче Limit 1,10 выведет 10 записей после 1 записи, там отсчёт идет с нуля
лимит там вообще не нужен, там и так выводится только та строка которой соответствует login

PEPSICOLA 17.01.2008 04:07

ужос =)))

PEPSICOLA 17.01.2008 04:08

ну я попрактикую :)

GreenTiger 17.01.2008 04:37

Цитата:

Q. Как ограничить число элементов выдаваемых SELECT в MySQL?
Необходимо воспользоваться LIMIT. Первый параметр с какой записи, а второй сколько.
PHP код:

select from table LIMIT 1,1


http://www.mysql.ru/faq/
http://www.mysql.ru/docs/man/LIMIT_optimisation.html

n1†R0x 17.01.2008 07:47

omg
Limit 1 в данном контексте дает гарантию, что запрос будет применен только к первому вхождению в поле возможных значений. Иначе говоря, есть у нас таблица lg:
Цитата:

#id name value
1 user 333
2 user 345
3 user 444
запрос
Цитата:

UPDATE `lg` SET value = '777' WHERE `name` = 'user'
заменит все значения, а если добавить Limit 1, то только первое.


2 PEPSICOLA:
cookies должны быть установлены до первого вывода информации на экран. я уверен, можно структуру скриптов переформировать таким образом, чтобы это правило соблюдалось.

groundhog 17.01.2008 11:17

Уже же обсуждалось, что кукисы можно ставить где угодно в скрипте, и хидеры посылать можно где угодно в скрипте... Просто нужно воспользоваться механизмом кеширования вывода, который PHP предоставляет разработчику веб-приложений... Почитай маны на тему функций ob_start() и ob_end_flush(), да и вообще всех функций ob_*. Для твоего примера решение будет следующее:

PHP код:

ob_start();
echo 
"Бугого!";
require_once(
'bugogo_lib.php');
ob_end_flush(); 

Внутри bugogo_lib.php может строять вызов setcookie и он корректно отработает за счёт того, что PHP прокеширует весь вывод скрипта, потом пошлёт хидеры, и только за ними отдаст прокешированный вывод...

PEPSICOLA 25.01.2008 19:40

У меня появился ещё один вопрос. :)
Каким способом можно предотвратить загрузку сниферров на сайт ввиде изображений?

Допустим, открыта пользователю функция загрузки изображений. Он переделывает php скрипт в jpg формат, загружает, появляется опасность стыривания cookies и т.п. Каким способом, можно проверять файлы, на такие вот внедрения кода в jpg? И как это вообще избежать? :)

Если есть подобная инфа на счёт Mp3 - Тоже очень интересует.

Большое спасибо :)

Scipio 25.01.2008 19:55

Ну для этого не надо проверять саму картинку, хотя можно конечноже функциями из GD например getimagesize() но смысл заключается в правильной фильтрации размещения этих картинок, т.е. защита от активных XSS, а так максимум что можно отснифать это ip адресс того кто увидит картинку, и куки не украдут при правильной фильтрации

PEPSICOLA 25.01.2008 19:58

А в чем заключается правильная фильтрация? Фильтрация идет при добавлении или при показе?

Scipio 25.01.2008 20:08

при размещении картинки, или ссылки, например на форуме когда ты между [bb] кодов юзербар размещаешь или аватару, куки же не тырятся можно только ип отснифать, фильтрация заключается в том, чтоб нельзя было вставить свой код, если ты сам верстаешь страницу, и пользователь не может вставлять картинки как на форуме, то тут проблемм быть не должно, если картинка берется с удаленного сервера, то тут уже фильтрация нужна, просто понимаешь в двух словах эту тему не осветишь, тут полно нюансов

Talisman 25.01.2008 20:17

решение - не разрешай ставить ссылки на удаленные картинки.
т.е. позволь только загружать картинки. загружаемую картинку проверяй GD library на корректность (isgif...isjpeg - вроде так)

PEPSICOLA 25.01.2008 20:19

Понятно, спасибо, мэн! :) У меня идёт так: пользователь загружает картинки на сайт и вставляет их в Bb тэги, уже с сайта.

edit: всмысле локального сайта... нет возможности удалённой вставки. :D

Scipio 25.01.2008 20:20

плюс проверяй последнее расширение у загружаемой картинки, а лучше всего пусть скрипт сам добавляет расширение

Scipio 25.01.2008 20:25

Цитата:

Сообщение от PEPSICOLA
Понятно, спасибо, мэн! :) У меня идёт так: пользователь загружает картинки на сайт и вставляет их в Bb тэги, уже с сайта.

edit: всмысле локального сайта... нет возможности удалённой вставки. :D

ну тут тогда надо проверять, чтоб между bb тегами нельзя было вствлять реальные теги пльс слова типа javascript и т.п. вобще WJ любит эту тему посмотри статьи где он описывает xss в форумах

Talisman 25.01.2008 20:27

2 пепси: стучи в аську: 236662256 седня отвечу на любые вопросы :) (почти)

PEPSICOLA 31.01.2008 02:04

Помогите, каким запросом mysql, я могу выбрать нужную инфу из базы данных и вывести её в форму, в поле edit, с помощью Php?

Теоретически я думаю вроде этого:
$mysqlquerrry = mysqlconnect(select * where user id и т.п. и т.д.)
$data = $mysqlquerry (перевожу каким то образом в массив)

Далее в html пишу форму

Цитата:

form

{type=text , value="<?php echo $data[1] ?>" }

/form
Похоже что то типа того? :)

Именно сама суть нужна :) Или существуют способы для более серьёзных людей?

bul.666 31.01.2008 02:15

PHP код:

<?php
mysql_connect
("localhost","",""); //Тут конектимся к Серверу Скул
mysql_select_db("db"); //Выбираем БД

$result mysql_query("SELECT pole FROM table"); //SQL запрос
mysql_close(); //Закрываем соеденение... Если дальше не будет использоваться БД
while($data mysql_fetch_row($result)) 
{    
echo 
"<input type='text' value='$data[0]'>"//Дата 0 - Это первый элемент из результата SQL
}
?>

Вот та можно удобней работать:
PHP код:

$result mysql_query("SELECT * FROM `users` WHERE `name`='задрот' ");
while(
$data mysql_fetch_row($result)) 
{
    list(
$id,$name,$last_name,$class,$password)=$data;
    echo 
"
    <table>
    <tr>
    <td>ID</td><td>
$id</td>
    </tr>
    <tr>
    <td>NAME</td><td>
$name</td>
    </tr>        
    <tr>
    <td>LAST_NAME</td><td>
$last_name</td>
    </tr>
    <tr>
    <td>CLASS</td><td>
$class</td>
    </tr>
    <tr>
    <td>PASSWORD</td><td>
$password</td>
    </tr>
    </table>"
;


Тоесть присоем списку переменных вывод из Скулы... Если резултатов много то, так удобнее
Цитата:

в поле edit
edit скорее всего из дельфи или С++ =))))))) А в хтмл input_text +))))))))))))))

Scipio 31.01.2008 02:27

нет, с помощью mysql_connect() ты соеденяешься с сервером мускула, т.е. в нее передаешь адрес сервера, логин пользователя БД и пароль,
например mysql_connect("localhost","root","pass"), в mysql_query ты передаешь запрос к БД например: $data=mysql_query("select * from table where user id и т.п. и т.д.")
кстати до mysql_query желательно выбрать БД так:mysql_select_db("DBname");
дальше с помощью различных функций заносишь полученные данные в массив, наиболее универсальная функция для этого mysql_fetch_assoc(), но бывают варианты когда удобнее использовать другие функции, все это делается в цикле а потом, выводишь в форму или куда там тебе надо значения этого массива

bul.666 31.01.2008 02:29

Цитата:

кстати до mysql_query желательно выбрать БД
Не желательно а обязательно

Scipio 31.01.2008 02:41

Цитата:

Сообщение от bul.666
Не желательно а обязательно

попробуй такой код:
PHP код:

<?php
error_reporting
(E_ALL);
$connect mysql_connect ("localhost","root","");
$result=mysql_query("SELECT user from mysql.user");
while(
$data mysql_fetch_row($result))
{
echo 
"<input type='text' value='$data[0]'>"
}

?>


bul.666 31.01.2008 02:48

Ну если так то естественно


Время: 07:58