Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   как заставить php не парсировать "\" (http://www.flasher.ru/forum/showthread.php?t=116241)

darksranger 24.09.2008 04:25

как заставить php не парсировать "\"
 
вобщем проблема вот в чем,из flash передаю путь к файлу, например
Код:

path\folder1\image1.jpg
в flash вижу, что в php в момент запроса в mysql, путь правильный тоесть с "\", но при получении данных средствами php, тажа строка уже выводится без "\"
Код:

pathfolder1image1.jpg
в чем может быть проблема ?

Crazy 27.09.2008 14:47

Цитата:

Сообщение от darksranger (Сообщение 765944)
в чем может быть проблема ?

Проблема в том, что телепаты в отпуске. Ты можешь их подождать или таки запостишь свой PHP-код... It's up to you.

Mnilionic 28.09.2008 02:56

обратные слэши нужно экранировать, причём при записи в MySQL из PHP !2! раза.
А почему они у вас вообще обратные?

Crazy 28.09.2008 10:19

Цитата:

Сообщение от Mnilionic (Сообщение 766850)
причём при записи в MySQL из PHP !2! раза.

Чушь.

Division 28.09.2008 11:33

Цитата:

причём при записи в MySQL из PHP !2! раза.
Действительно чушь
(:

Mnilionic 28.09.2008 17:25

Код:

$str = '\\\\path\\\\file.ext';
$sql = "INSERT INTO news SET text = '$str'";
$result = mysql_query($sql);

1 и 3 слеш снимает пхп при отправе запроса
2 слеш снимает MySQL при обработке

Crazy 28.09.2008 18:58

Цитата:

Сообщение от Mnilionic (Сообщение 766894)
[code]
1 и 3 слеш снимает пхп при отправе запроса

Чушь и бред. Эти слэши отсекает парсер PHP при разборе строкового литерала. Ни в какой запрос они никому не отправляются.

Автор треда передает строку в PHP снаружи. Соответственно, никакого стрового литерала в исходном коде не будет и строка, если не принять специальных мер, будет передана в MySQL с в точности тем количеством "\", с которым была получена.

Если PHP криво настроен, то их станет даже больше.

P.S. Это я уже не говорю о том, что нужно не "добавлять слэши для MySQL", а вызывать функцию mysql_real_escape_string.

P.P.S. "Книжки -- читать, траву -- курить. Не наоборот." (c)

Mnilionic 28.09.2008 19:13

поэтому делается просто
Код:

$str = addcslashes($str_from_flash, '\\');

Crazy 28.09.2008 19:55

Цитата:

Сообщение от Mnilionic (Сообщение 766912)
поэтому делается просто
Код:

$str = addcslashes($str_from_flash, '\\');

...и, поскольку эта функция ничего не знает о кодировке, используемой при обмене с базой, мы открываем себя для SQL Injection. Браво, молодой человек.

Так что читайте выше про mysql_real_escape_string, благо ссылка дана непосредственно на мануал, и просвещайтесь.

Mnilionic 28.09.2008 23:18

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


Часовой пояс GMT +4, время: 00:13.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.