|
Экранирование $
|
|||
---|---|---|---|
#18+
Как правильно экранировать $ в php? Нужно написать веб-форму для работы с таблицами mon$, сразу столкнулся с необходимостью экранировать $ в именах таблиц и т.п. При таком варианте <?php #error_reporting(0); echo'<tr><td>'.'MON$ATTACHMENT_ID'.'</td><td>'.'MON$USER'.'</td><td>'.'MON$TIMESTAMP'.'</td><td>'.'MON$REMOTE_PROCESS'.'</td>'; $host = 'localhost:D:\FDBase\TEST.FDB'; $connection = ibase_connect($host, 'SYSDBA', 'masterkey', 'UTF8') or die(ibase_errmsg()) ; $query="select MON\$ATTACHMENT_ID , MON\$USER, MON\$TIMESTAMP,MON\$REMOTE_PROCESS from MON\$ATTACHMENTS"; $result=ibase_query($connection,$query) or die(ibase_errmsg()); while($row = ibase_fetch_assoc($result)) { $MON\$ATTACHMENT_ID = $row['MON\$ATTACHMENT_ID']; $MON\$USER = $row['MON\$USER']; $MON\$TIMESTAMP = $row['MON\$TIMESTAMP']; $MON\$REMOTE_PROCESS = $row['MON\$REMOTE_PROCESS']; echo'<tr><td>'.$MON\$ATTACHMENT_ID.'</td><td>'.$MON\$USER.'</td><td>'.$MON\$TIMESTAMP.'</td><td>'.$MON\$REMOTE_PROCESS.'</td>'; } ibase_close($connection); ?> Эту проблему обошел, но хочу понять как решить это без секса на лыжах и гамаке. Обошел вот так: <?php #error_reporting(0); echo'<tr><td>'.'MON$ATTACHMENT_ID'.'</td><td>'.'MON$USER'.'</td><td>'.'MON$TIMESTAMP'.'</td><td>'.'MON$REMOTE_PROCESS'.'</td>'; $host = 'localhost:D:\FDBase\TEST.FDB'; $connection = ibase_connect($host, 'SYSDBA', 'masterkey', 'UTF8') or die(ibase_errmsg()) ; $query="select MON\$ATTACHMENT_ID as ATTACHMENT_ID, MON\$USER as muser, MON\$TIMESTAMP as mtimestamp,MON\$REMOTE_PROCESS as REMOTE_PROCESS from MON\$ATTACHMENTS "; $result=ibase_query($connection,$query) or die(ibase_errmsg()); while($row = ibase_fetch_assoc($result)) { $ATTACHMENT_ID = $row['ATTACHMENT_ID']; $USER = $row['MUSER']; $TIMESTAMP = $row['MTIMESTAMP']; $REMOTE_PROCESS = $row['REMOTE_PROCESS']; echo'<tr><td>'.$ATTACHMENT_ID.'</td><td>'.$USER.'</td><td>'.$TIMESTAMP.'</td><td>'.$REMOTE_PROCESS.'</td>'; } ibase_close($connection); ?> ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 20:28 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
Gallemar, в PHP $ надо экранировать только когда она встречается в строке обрамлённой двойными кавычками. Если строка обрамлена одинарными кавычками экранировать $ не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 20:32 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
Симонов Денис,не получается. Ошибка Parse error: syntax error, unexpected '$ATTACHMENT_ID' (T_VARIABLE) при #error_reporting(0); echo'<tr><td>'.'MON$ATTACHMENT_ID'.'</td><td>'.'MON$USER'.'</td><td>'.'MON$TIMESTAMP'.'</td><td>'.'MON$REMOTE_PROCESS'.'</td>'; $host = 'localhost:D:\FDBase\TEST.FDB'; $connection = ibase_connect($host, 'SYSDBA', 'masterkey', 'UTF8') or die(ibase_errmsg()) ; $query="select MON\$ATTACHMENT_ID , MON\$USER, MON\$TIMESTAMP,MON\$REMOTE_PROCESS from MON\$ATTACHMENTS"; $result=ibase_query($connection,$query) or die(ibase_errmsg()); while($row = ibase_fetch_assoc($result)) { $MON$ATTACHMENT_ID = $row['MON$ATTACHMENT_ID']; $MON$USER = $row['MON$USER']; $MON$TIMESTAMP = $row['MON$TIMESTAMP']; $MON$REMOTE_PROCESS = $row['MON$REMOTE_PROCESS']; echo'<tr><td>'.$MON$ATTACHMENT_ID.'</td><td>'.$MON$USER.'</td><td>'.$MON$TIMESTAMP.'</td><td>'.$MON$REMOTE_PROCESS.'</td>'; } ibase_close($connection); ?> ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 20:38 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
А не пойти ли тебе в раздел пых-пыха?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 20:45 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov,чтобы там делали большие глаза увидев ibase_ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 20:47 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
Gallemar, во первых у тебя тэг tr не закрыт Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
ИХМО, всё равно говнокод. Если собираешься делать что-то посерьёзней представление надо отделять логики. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 20:55 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
Симонов Денис надо отделять логики. Это как? Про говнокод согласен, практики практически нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 21:01 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
Gallemarчтобы там делали большие глаза увидев ibase_ ? Никакие глаза. ibase_ как и FB PDO драйвер входят в Core, а это значит что стараются поддерживать как могут. И вообще, много российских разработчиков в недрах пыха, общительные и отзывчивые. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 21:12 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
Gallemar, работу с данными надо отделять от отображения. Если на каком-то этапе работы у тебя произойдёт ошибка, то в браузер будет выведено непонятно что. Ради интереса можешь почитать про архитектуру MVC, которая используется в довольно больших веб приложениях. Если я правильно понимаю ты себе делаешь мелкую примочку, чтобы мониторить БД через браузер, поэтому скорее всего для тебя MVC будет перебором. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 21:13 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
Симонов Денис,ну да. У меня есть мониторинг, который смотрит за самой БД (статистика по транзакциям, размер БД, кол-во пользователей), за учетной системой (время запуска всевозможных автоматических процессов и время их выполнения), контроль пользователей (кто,что и как делал). Поверх этого всего пишу простой веб-интерфейс на php, пока самые важные вещи. Про MVC представление имею, немного знаком с соответствующими фреймворками. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 21:20 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
GallemarЭто как? Отделить представление данных (view/html код) от логики (извлечение, обработка, модели данных). Обычно используют темплэйты, а не echo '<td>'. Cмотри в сторону "include". И дальше совершенству нет пределов. Миллион CMSов и подходов. Я для себя придумал что-то а ля делфийские компоненты с парентом и рендерингом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 21:22 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
Dorin Marcoci, а где можно почитать как правильный код писать? А то у меня знания по php десятилетней давности. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 06:52 |
|
Экранирование $
|
|||
---|---|---|---|
#18+
Незнаю, это приходит со временем :) Вот что быстро нагуглил и показалось OK: http://www.phptherightway.com/ https://phpbestpractices.org/ Некие фрэймворки документированны хорошо, как Laravel например. Но не зацикливайся только на них, особенно в начале. С одной стороны удобные, а сдругой есть и косяки, причем серьезные. Используй обьекты, нэймспэйсы, авто-лоадеры и темплэйты, очень хорошо организуется код. Для фронт-сайда обычно есть хорошие либы как например ExtJs , Kendo, Bootstrap, Angular и на бэке код PHP получается чистый. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 09:34 |
|
|
start [/forum/topic.php?desktop=1&fid=40&tid=1561843]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 174ms |
0 / 0 |