Уважаемые дамы и господа. На php пишу не так давно, хотя на delphi опыт более 15 лет. Руководству сайт потребовался, вот и пришлось переквалифицироваться - вот что получилось http://ark-spa.com У меня вопрос такого плана. Где-то вычитал, что сессии небезопасны в плане утечки данных, вот и решил воспользоваться такой замуткой: использую только session_id() а все остальное храню в бд mysql. Посмотрите, что у меня получилось и стоит ли игра свеч? PHP: <?php function sess_set($name, $value) { dbConnect(); $id = mysql_escape_string(session_id()); if (is_bool($value)) $value = (int) $value; $name = mysql_escape_string($name); $value = mysql_escape_string($value); mysql_query('delete from t_Sessions where id="'.$id.'" and name="'.$name.'"'); mysql_query('insert into t_Sessions (id,name,value) values ("'.$id.'","'.$name.'","'.$value.'")'); } function sess_get($name) { dbConnect(); $id = mysql_escape_string(session_id()); $name = mysql_escape_string($name); $res = mysql_query('select * from t_Sessions where id="'.$id.'" and name="'.$name.'"'); if ($row = mysql_fetch_assoc($res)) $ret = $row['value']; mysql_free_result($res); return $ret; } function sess_isset($name) { if (!sess_get($name)) return false; else return true; } function sess_unset($name) { dbConnect(); $id = mysql_escape_string(session_id()); $name = mysql_escape_string($name); mysql_query('delete from t_Sessions where id="'.$id.'" and name="'.$name.'"'); } ?>
P.S. Немного усложнил - вместо $id использую результат функции sess_id() PHP: function sess_id() { return md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['HTTP_ACCEPT_CHARSET'].session_id()); }
вы куки с сессиями не попутали? Сессии живут на сервере. И используют только session id =) И хранят все где надо и там никто не ходит =)
А ведь действительно, чайник я с ручкой ))) Почитал мануал по сессиям и разобрался. Насколько я понял айди сессии хранится в куке и передается серверу. Но может передаваться и через get-параметр. Короче, дурная затея )))
acso Хотел подшутить чтото, но твой стаж программирования в 15 лет на делфи мне морально такого не позволяет))
Что ж, спасибо на добром слове. Да, таскаю, кодом. Какое начало общения, такое и продолжение. По крайней мере там, где я общаюсь, себя не так ведут. Даже с новичками. Прощайте. Гугль рулит форева! vcl по форме... хм... Королевство Delphi
Apple Загнул ты конечно про 15 лет и vcl)) За такое время я в пхп, наверно, научусь md5 в голове дешифровывать ))))
А что, человек за 15 лет на всех форумах, на которых отписывался, не забывал упомянуть о своём стаже на Delphi? =) Можно ещё сказать, что у меня жена, трое детей и рояль в гостинной, но в РНР не шарю. MD5 относится к РНР как слон к губке.
Apple Думаю, если бы ты 15 лет изучал пхп (+ js, html, css), то смог бы в короткое время разобраться в несложном коде того же делфи. Так и тут.
Неправильно думаешь, неправильно. У РНР Си-подобный синтаксис, у Дельфи, мягко говоря, — нет. Кроме того подключаемые библиотеки и процедуры в Дельфи в корне отличаются от тех же С++ (не считая VCL для Дельфи, которую прилепили к билдеру). Итого: разный синтаксис уже, тип Variant (знаешь, что это такое? Догадайся ), а как тип-то лепится к переменной - он не впереди стоит, и список отличий, который можно продолжать и продолжать. Это разные языки, кроме того, в РНР нет указателей, и простенький код на Дельфи, содержащий указатели, нифига не скажет программеру на РНР. Увы, это суровая правда. Суть программирования одна (а иначе почему Дональд Кнут так популярен?), но подходы языков - разные.
Apple Да я тебе не о синтаксисе и о точном подобии))) Ты программист или домохозяйка в конце-концов? ))) За 15 лет вырабатывается уже мышление, есть навыки как ошибку искать, даже мануал найти в интернете, дабы прочитать про каждую функцию и "въехать" в код. Не зря ж даже тут принято на мануал посылать. Тут вопрос не в том чтоб за день переквалифицироваться в програмера другого языка, а в том чтоб за день разобраться в 30 строках логически законченного кода. Не факт, что даже в таких 30-ти строках самому получиться найти ошибку, в силу не хватаемого опыта по этому языку, но понять логику скрипта, что он выполняет и что должно быть на выходе - думаю можно. Do you agree with me?))