Просмотр полной версии : как заставить php не парсировать "\"
darksranger
24.09.2008, 04:25
вобщем проблема вот в чем,из flash передаю путь к файлу, например
path\folder1\image1.jpg
в flash вижу, что в php в момент запроса в mysql, путь правильный тоесть с "\", но при получении данных средствами php, тажа строка уже выводится без "\"
pathfolder1image1.jpg
в чем может быть проблема ?
в чем может быть проблема ?
Проблема в том, что телепаты в отпуске. Ты можешь их подождать или таки запостишь свой PHP-код... It's up to you.
Mnilionic
28.09.2008, 02:56
обратные слэши нужно экранировать, причём при записи в MySQL из PHP !2! раза.
А почему они у вас вообще обратные?
причём при записи в 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 при обработке
[CODE]
1 и 3 слеш снимает пхп при отправе запроса
Чушь и бред. Эти слэши отсекает парсер PHP при разборе строкового литерала. Ни в какой запрос они никому не отправляются.
Автор треда передает строку в PHP снаружи. Соответственно, никакого стрового литерала в исходном коде не будет и строка, если не принять специальных мер, будет передана в MySQL с в точности тем количеством "\", с которым была получена.
Если PHP криво настроен (http://ru2.php.net/manual/en/info.configuration.php#ini.magic-quotes-gpc), то их станет даже больше.
P.S. Это я уже не говорю о том, что нужно не "добавлять слэши для MySQL", а вызывать функцию mysql_real_escape_string (http://ru2.php.net/manual/en/function.mysql-real-escape-string.php).
P.P.S. "Книжки -- читать, траву -- курить. Не наоборот." (c)
Mnilionic
28.09.2008, 19:13
поэтому делается просто
$str = addcslashes($str_from_flash, '\\');
поэтому делается просто
$str = addcslashes($str_from_flash, '\\');
...и, поскольку эта функция ничего не знает о кодировке, используемой при обмене с базой, мы открываем себя для SQL Injection. Браво, молодой человек.
Так что читайте выше про mysql_real_escape_string, благо ссылка дана непосредственно на мануал, и просвещайтесь.
Mnilionic
28.09.2008, 23:18
ёлки-иголки "чушь, чушь и бред, просвещайесь" - вежливость никто не отменял.
А я ошибался, признаю
darksranger
01.10.2008, 09:25
код обычный, поэтому не привел, но вобщем вот
в php скрипт текст попадает в правильном виде
об этом говорит echo в flash, из которого данные и попадают,
а вот когда получаешь данные, они приходят без "\"
кладется в базу так
конект
....
$path = "'".$path."'";
$query = "insert into table (path) values ($path)";
обратные слэши, так как путь локальный ...
слеши кстате, только обратные убераются из строки, если поставить "/" то все ок
поэтому тема впринцепи не актуальна
слеши кстате, только обратные убераются из строки, если поставить "/" то все ок
поэтому тема впринцепи не актуальна
Читаю и плачу (c) почти по поручику Ржевскому
Молодой человек, во-первых, выше дали сразу два решения: правильное и не совсем правильное. Но оба -- гораздо лучше, чем то, что Вы сделали.
На досуге почитайте про "sql injection".
P.S. Так по какому адресу отдеплоен ваш чудесный скрипт, вот так честно делающий '$query = "insert into table (path) values ($path)";' ? :)
darksranger
01.10.2008, 23:17
ну я сразу отпишусь, чтобы не было косяков в мою сторону :)
php не увлекаюсь, использую только по назначению :) на досуге другие книги читаю ( as3 ), поэтому времени нету )))
впринцепи, если бы проблема так и висела, я бы конечно обратился к справке по sql injection ...
собственно мой код написан, частично после изучения сурсов DLE ( data life engine или как там ) и частично, по справке, по mysql
так что я не претендую, на красочный код на php, просто нужно чтобы работало ), оно работает ! остальное делает as3 ... и его такие телодвижения устраивают :D ( знаю что не правильный подход к проблемме, но реально времени ковырятся нету )
и если не сложно ( уж раз завели тему ), раскажите чем мое "решение" плохо,
будет интересно просветится !
раскажите чем мое "решение" плохо,
Тем, что допускает SQL Injection.
darksranger
02.10.2008, 15:26
спасибо ! чуствую нада всетаки напряч гугл ...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.