PDA

Просмотр полной версии : Пожалуйста help! :) Есть несколько вопросов по PHP/MySQL


PEPSICOLA
17.01.2008, 03:13
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
limit x,y где х - запись, с которой показывается у записей

ЗЫ вкусный был кофе?)
мэн, нифига не понял :confused: :D

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

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

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

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

Piflit
17.01.2008, 04:04
А не выведит ли он только десятую? По типу... Вывести 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. Первый параметр с какой записи, а второй сколько.
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_*. Для твоего примера решение будет следующее:

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
Понятно, спасибо, мэн! :) У меня идёт так: пользователь загружает картинки на сайт и вставляет их в 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
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
}
?>
Вот та можно удобней работать:

$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
Не желательно а обязательно
попробуй такой код:
<?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
Ну если так то естественно