PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (13): « 1 2 3 [4] 5 6 7 8 9 ... » В конец

> Найдено сообщений: 187
Uchenik Отправлено: 23 Февраля, 2012 - 13:54:29 • Тема: Размер файла в PHPExcel • Форум: Вопросы новичков

Ответов: 1
Просмотров: 93
Почитайте
http://ajc[dot]su/web-razrabotka/php[dot][dot][dot]ls-fajlov-v-php/
Uchenik Отправлено: 23 Февраля, 2012 - 13:50:09 • Тема: Вывод текста после определенного символа(как так сделать) • Форум: Вопросы новичков

Ответов: 6
Просмотров: 370
Берёте строку, допустим
PHP:
скопировать код в буфер обмена
  1. $line='вика+саша=паша';

дальше пишем что-то типа

затем добавляем
и о чудо! На экране светится надпись "паша"
а как вывести его в определённое место думаю догадаетесь =)
Uchenik Отправлено: 23 Февраля, 2012 - 13:47:03 • Тема: Работа с сессиями • Форум: Вопросы новичков

Ответов: 2
Просмотров: 184
=)
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql=mysql_query("SELECT * FROM $db_Sessions WHERE user='$_SESSION[SN]'");
  3. $res=mysql_fetch_assoc($sql);
  4. if (empty($res['id_session'])){
Uchenik Отправлено: 23 Февраля, 2012 - 09:42:41 • Тема: Вывод текста после определенного символа(как так сделать) • Форум: Вопросы новичков

Ответов: 6
Просмотров: 370
explode =)
Uchenik Отправлено: 23 Февраля, 2012 - 08:28:44 • Тема: Работа с сессиями • Форум: Вопросы новичков

Ответов: 2
Просмотров: 184
Добрый день.
Вопрос может показаться странным, но мне интересно почему так:
Я изменил место хранения сессий
PHP:
скопировать код в буфер обмена
  1. ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'].'/system/sessions/');

Теперь возникает непонятная мне ситуация, когда пользователь заходит на сайт, в папке system/sessions появляется файл sess_{$id_session} это нормально.

1.почему в папке tmp, куда раньше сохранялись сессии создаётся ещё 1 файл с другим именем?

Дальше какой-то бред:
Я хочу убить сессию пользователя, для этого посылаю команду серверу уничтожить файл в моей директории
PHP:
скопировать код в буфер обмена
  1. $_SERVER['DOCUMENT_ROOT'].'/system/sessions/

я не трогаю папку tmp. После удаления этого файла пользователя выкидывает (Так и планируется), но
2.почему когда он снова авторизуется ему возвращается тот же самый id сессии?
3.Почему файл восстанавливается, а не создаётся новый?
4.И почему в папке tmp всё-равно появляются файлы?


В БД есть таблица, которая хранит в себе данные о сессиях.
CODE (SQL):
скопировать код в буфер обмена
  1. `id_session` tinytext COLLATE utf8_unicode_ci NOT NULL,
  2.   `putdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  3.   `user` tinytext COLLATE utf8_unicode_ci NOT NULL,
  4.   `page` text COLLATE utf8_unicode_ci NOT NULL

А работа с этой таблицей выполняется скриптом
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT * FROM ".$db_Sessions."
  2.            WHERE id_session = '$id_session'";
  3.   $ses = mysql_query($query);
  4.   if(!$ses) exit("Ошибка в запросе к таблице сессий");
  5.   if(mysql_num_rows($ses)>0)
  6.   {
  7.     $query = "UPDATE ".$db_Sessions." SET putdate = NOW(),
  8.                                 user = '$_SESSION[SN]', page='$_SESSION[page]'
  9.              WHERE id_session = '$id_session'";
  10.     mysql_query($query);
  11.   }
  12.   else
  13.   {
  14.     $query = "INSERT INTO ".$db_Sessions."
  15.              VALUES('$id_session', NOW(), '$_SESSION[SN]','$_SESSION[page]')";
  16.     if(!mysql_query($query))
  17.     {
  18.       exit("Ошибка при добавлении пользователя"; );
  19.     }
  20.   }
  21.   $query = "DELETE FROM ".$db_Sessions."
  22.            WHERE putdate < NOW() -  INTERVAL '20' MINUTE";
  23.   mysql_query($query);
Uchenik Отправлено: 10 Февраля, 2012 - 07:02:36 • Тема: Строковые операции и вывод • Форум: Хранение данных, их вывод и обработка

Ответов: 16
Просмотров: 3669
Я уже решил свою проблему, но как писалось в моей теме, моё решение не столь элегантное как хотелось бы, но зато полностью соответствует моим требованиям к коду:
1. Никаких echo или ptint в коде.
2. Никакого смешивания с HTML
3. Управляемость и изменяемость без вмешательства в код.
4. Зависимость модулей проекта друг от друга, но при этом если 1 модуль упал, проект должен продолжать работу.

А как я решил свою проблему, я выложу когда приведу код в более-менее читабельный вид.
Uchenik Отправлено: 09 Февраля, 2012 - 14:46:58 • Тема: Строковые операции и вывод • Форум: Хранение данных, их вывод и обработка

Ответов: 16
Просмотров: 3669
ОК! Давайте тогда вместо везде писать
PHP:
скопировать код в буфер обмена
  1. $world='world'; echo "HELLO {$world}";
БРЕД! Зачем загружать код лишними действиями.
Или вообще, давайте уже для полного счастья добавим экранирование.

snikers987 где логика? И вообще мне начинает казаться что Вы просто нашли новую тему чтобы тупо поспорить, не важно о чём, не важно зачем и кому это нужно, важен сам факт спора!
Делаете вид что спорите по делу, а на самом деле тупо накручиваете счетчик сообщений.
Это даже заметно по Вашему КПД, из почти 800 сообщений, только 9 полезных. Реальное достижение, учитесь у таких как Eugen. Он не болтает просто так, он всегда говорит четко, коротко и по делу.
Uchenik Отправлено: 09 Февраля, 2012 - 14:20:06 • Тема: Строковые операции и вывод • Форум: Хранение данных, их вывод и обработка

Ответов: 16
Просмотров: 3669
Не нужно плодить бредокодеров, которые будут забивать код экранами, потому-что им лень понять разницу между кавычками и апострофами =)
(Добавление)

Спойлер (Отобразить)
Uchenik Отправлено: 09 Февраля, 2012 - 13:51:57 • Тема: Строковые операции и вывод • Форум: Хранение данных, их вывод и обработка

Ответов: 16
Просмотров: 3669
ЧТД =)
(Добавление)
Спойлер (Отобразить)
Uchenik Отправлено: 09 Февраля, 2012 - 13:23:23 • Тема: Вывод результата запроса • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1049
EuGen
Спасибо за заботу, но эта линка когда-то была моей домашней страницей, не думаю что там появилось что-то новое =)
А вообще код правильный, всё работает, только вот с выводом результата проблемка. точнее сказать слишком уж много обработок и преобразований получается.
Uchenik Отправлено: 09 Февраля, 2012 - 13:13:10 • Тема: Вывод результата запроса • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1049
Я пробовал выводить print_r ($result[0][0]); ругается.
Вот так
PHP:
скопировать код в буфер обмена
  1. while($myr=mysql_fetch_row($res))
  2.                         {$string=implode("+",$myr).'<br>';
  3.                         $result.=$string;}

В $result попадает что-то более-менее адекватное, по крайней мере это патом можно прочитать.
PHP:
скопировать код в буфер обмена
  1. $type='2';
  2. $table=$db_plugins;
  3. $field='*';
  4. $where='`pid`>0';
  5. $cycle=true;
  6. sql_selector($type,$table,$field,$data,$where,$cycle);
  7. if (is_array($result)==true)
  8. {$Message = 'result - массив<br>';}
  9. if (is_string($result)==true)
  10. {$Message = 'result-строка<br>';}
  11.  echo $result.'<br>';

Вот так всё выводится почти как нужно, просто патом обработать через explode, убрать все лишнее. Но это слишком топорный вариант. Хочется чего-то более изящного
Uchenik Отправлено: 09 Февраля, 2012 - 13:08:13 • Тема: Строковые операции и вывод • Форум: Хранение данных, их вывод и обработка

Ответов: 16
Просмотров: 3669
Оно мало и незаметно, в случае если это пара строк,или даже пара десятков строк, а если несколько сотен или даже несколько тысяч строк кода, в которых везде стоят неправильные кавычки и куча экранов, работать будет определённо медленнее чем валидный код, не говоря уже о том что его читать неудобно =)
Uchenik Отправлено: 09 Февраля, 2012 - 13:03:28 • Тема: Вывод результата запроса • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1049
=)
Суть вот в чем.
Пользователем через специальный интерфейс заполняются параметры запроса:
Type = тип запроса. Всего их 6
Field = какие поля нужно найти
Where=какую таблицу нужно просмотреть
Cycle=использовать ли цикл
Т.е. через этот конструктор строится запрос. Сначала все эти данные передаются в sql_selector
который в зависимости от типа переадресовывает все данные в нужную функцию. Всё прекрасно работает, кроме одного. Когда тип выбран 2 - SELECT
строится запрос "SELECT ".$Field." FROM "$Table" WHERE "$Where""
тоже ничего сложного. Но если был передан параметр Cycle=TRUE, т.е. запрос в цикле, начинается тупняк, потому-что возвращаемый функцией результат является строкой, в которой просто много раз написано слово Array.
Ну к примеру мне нужно построить такой запрос
PHP:
скопировать код в буфер обмена
  1. SELECT * FROM Users WHERE `Name`='Alex'

при обычном построениее запроса ничего сложного, мы делаем просто
PHP:
скопировать код в буфер обмена
  1. $sql="SELECT * FROM Users WHERE `Name`='Alex'";
  2. $res=mysql_query($sql);
  3.  
  4. while($myr=mysql_fetch_row($res);)
  5. {echo $myr[0]; echo $myr[1]; //и так далее все поля, которые нужны
  6. }

и выведется своего рода таблица. А если мне не нужно выводить результат сразу, т.к. я вообще не использую echo и print, я просто сохраняю полученные результаты в переменную, которую позже вывожу через шаблон. (отделяю логику от представления)
В случае если запрос должен вывести 1 результат, вывод результата не составит труда, а что если имеется цикл? Т.е. у нас несколько разных результатов, правильно? Что нужно теперь сделать? Как их вывести? Самый логичный вариант это просто взять и добавить в конец цикла что-то типа

т.е. в результате $Result содержит в себе не последний массив, а все полученные массивы в виде строк одного целого массива. Я понятно излагаю?
Uchenik Отправлено: 09 Февраля, 2012 - 12:34:54 • Тема: как связать? • Форум: Вопросы новичков

Ответов: 5
Просмотров: 167
А зачем нам нужна радиокнопка со значением, бОльшим, чем это разрешено?
(Добавление)
Цитата:
При выборе радиокнопки с большим значением чем $var3 в обработчике появлялась надпись об этом, загвоздка только в том что не знаю как в обработчик передать $var3 для сравнения, само сравнение и вывод сообщения я и сам могу сделать...

PHP:
скопировать код в буфер обмена
  1. if ($_POST['nr_ocupat_angaj']>$var3)
  2. {echo 'Переданное значение больше чем '.$var3;}

Что-то такое?
Вот только смысла в этом я не вижу. Зачем создавать элемент интерфейса, который нельзя использовать.
Uchenik Отправлено: 09 Февраля, 2012 - 12:31:59 • Тема: Строковые операции и вывод • Форум: Хранение данных, их вывод и обработка

Ответов: 16
Просмотров: 3669
Мелкий
спор немного затянулся, Вам так не кажется?
Кстати Топ вообще не об этом =)
Ладно, в этой части признаю свою ошибку, под давлением улик =)
Но вот в остальном меня ещё никто не переубедил.
Или Вы и на эту тему хотите поспорить?
На сколько правильно писать
PHP:
скопировать код в буфер обмена
  1.  header("WWW-Authenticate: Basic realm=\"Administration\"");

вместо
PHP:
скопировать код в буфер обмена
  1. header('WWW-Authenticate: Basic realm="Administration"');

Лично мне экранирование глаза режет, а Вам? По-моему вообще изучение PHP нужно начинать с понимания разницы между кавычками и апострофами

Страниц (13): « 1 2 3 [4] 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB