Мне бы очень хотелось узнать, не получилось ли у меня излишней перестраховки, или наоборот, где я что-то упустил. Если не трудно, подскажите.
Скрипт прилагаю:
<?php
if($ok)
{
// пользователь может изменить либо емейл, либо пароль, либо все вместе
if(empty($POST['value2']) && empty($POST['value4']))
$info[] = 'Ну хоть что-нибудб напишите!';
if(!empty($POST['value2']))
{ if(mb_strlen($POST['value2']) < 8)
$info[] = 'Слишком простой пароль! Нужно чтобы был не короче 8-ми символов.';
else
{
if($POST['value2'] && !$POST['value3'])
$info[] = 'Повторите пароль!';
else
{
if($POST['value2'] !== $POST['value3'])
$info[] = 'Пароли не совпадают!';
}
}
}
if(!empty($POST['value4']) && !preg_match("/^[a-z0-9_.-]+@([a-z0-9]+\.)+[a-z]{2,6}$/i", $POST['value4']))
$info[] = 'Не верный формат E-mail';
if(count($info) == 0)
{
include IRBIS_ROOT.'lib/mysql.php';
//не знаю, зачем эту проверку сюда влепил. Наверное я параноик.
$res=mysqlQuery("SELECT *
FROM `".IRBIS_DBPREFIX."user`
WHERE
`login` = '". escapeString($_SESSION['user_data']['login']) ."'
AND
`hash` = '". escapeString($_SESSION['user_data']['hash']) ."'
");
if(mysql_result($res, 0) > 0)
{
// поля, не редактируемые пользователем, заменяем старыми значениями.
$pass = '`password` = ';
$email = '`email` = ';
$pass .= (!empty($POST['value2']))? "'". md5($POST['value2'].IRBIS_SALT) ."'" : "'". escapeString($_SESSION['user_data']['password']). "'";
$email .= (!empty($POST['value4']))? "'". escapeString($POST['value4']) ."'" : "'". escapeString($_SESSION['user_data']['email']) ."'";
$res = mysqlQuery("UPDATE `".IRBIS_DBPREFIX."user`
SET ". escapeString($pass).",". escapeString($email)."
WHERE `id` = ". (int)$_SESSION['user_data']['id']
);
if(mysql_affected_rows() > 0)
$info[] = 'Учетная запись обновлена';
$res = mysqlQuery("SELECT *
FROM `". IRBIS_DBPREFIX ."user`
WHERE `id` = ". (int)$_SESSION['user_data']['id'] );
//обновляем данные
if(mysql_num_rows($res) > 0)
$_SESSION['user_data'] = htmlChars(mysql_fetch_assoc($res));
}
}
}
P.S. Защиту от доступа вне системы нужно еще поставить.
Спустя 14 минут, 1 секунда (25.09.2010 - 15:10) Ice написал(а):
лучше перебздеть, чем недобздеть
Спустя 46 минут, 27 секунд (25.09.2010 - 15:56) DmitryOpalev написал(а):
Цитата |
лучше перебздеть, чем недобздеть |
Поставлю себе в подпись под сообщением

Спустя 17 минут, 1 секунда (25.09.2010 - 16:13) twin написал(а):
стиль конечно неприятный. пароль в сессию я бы не стал... зачем рисковать. а так вполне разумно.
Спустя 54 секунды (25.09.2010 - 16:14) twin написал(а):
"... SET ". escapeString($pass)."- лишнее
Спустя 6 минут, 44 секунды (25.09.2010 - 16:21) Omega написал(а):
Спасибо за ответ. А можно подробнее про стиль? Имеется ввиду оформление кода?
Спустя 23 минуты, 39 секунд (25.09.2010 - 16:45) Omega написал(а):
А вот фрагмент Вашего урока "Защита страниц".
Так ведь здесь в сессии вообще все данные пользователя оказываются. Или...
elseif($ok)
{
$res = mysqlQuery("SELECT *
FROM `". IRB_DBPREFIX ."user`
WHERE `login` = '". escapeString($POST['value1']) ."'
AND `password` = '". md5($POST['value2'] . IRB_SALT) ."'
");
if(mysql_num_rows($res) > 0)
{
$_SESSION['user_data'] = mysql_fetch_assoc($res);
Так ведь здесь в сессии вообще все данные пользователя оказываются. Или...
Спустя 1 час, 39 минут, 17 секунд (25.09.2010 - 18:24) twin написал(а):
У меня нет нигде пароля в сессии... Я про это:
получить данные сессии очень сложно, но возможно. Конечно, это на грани параноидального синдрома, но так крепче спится.
А стиль... Ну в общем ничего, но отступы гуляют и длинные строки зря.
Поверь, когда код выглядет аккуратно, он и работает лучше. 100% замечено.
$pass .= (!empty($POST['value2']))? "'". md5($POST['value2'].IRBIS_SALT) ."'" : "'". escapeString($_SESSION['user_data']['password']). "'";
получить данные сессии очень сложно, но возможно. Конечно, это на грани параноидального синдрома, но так крепче спится.
А стиль... Ну в общем ничего, но отступы гуляют и длинные строки зря.
Поверь, когда код выглядет аккуратно, он и работает лучше. 100% замечено.
Спустя 1 час, 54 минуты, 4 секунды (25.09.2010 - 20:18) Omega написал(а):
Под фразой "пароль в сессии" я подразумевал то, что пароль (в зашифрованном виде) помещается в сессионную переменную. Собственно это и происходит при авторизации в Вашем read_controller'e (см. урок "Авторизация"):
Может Вы имели ввиду что-то другое, честно говоря, мне не совсем понятно.
Нельзя ли подробнее, что именно являет собой дыру в том месте, где я с помощью тернарного оператора присваиваю значение переменной $pass?
P.S. Извините за настырность, но...
см. статус
if(!$ok && isset($_COOKIE['hash']))
{
include './modules/register/functions.php';
$_SESSION['user_data'] = getLogin($_COOKIE['hash'], true);
Может Вы имели ввиду что-то другое, честно говоря, мне не совсем понятно.
Нельзя ли подробнее, что именно являет собой дыру в том месте, где я с помощью тернарного оператора присваиваю значение переменной $pass?
P.S. Извините за настырность, но...
см. статус

Спустя 8 минут, 44 секунды (25.09.2010 - 20:27) twin написал(а):
Ну по идее - да. Достать пароль из сессии, да еще и расшифровать - это фантастика.
Не ясно другое - зачем? Можно же и без этого.
Конечно, ничего страшного. Но когда пишешь (вернее стараешься писать) так, что нет даже самой фантастической дырки, оно полезно для здоровья.
Представь ситуацию.
Хакер хостится на одной площадке с тобой. Обычно при этом сессионные файлы находятся в общей tmp-овой папке. И если он найдет способ попасть туда - получит все твои сессии. Ну да, захэширован пароль. Но мало ли... Да и зачем просчитывать вероятности взломов - проще их просто предотвратить.
Не совать в сессию хоть мизерно значимую информацию.
ps
Не ясно другое - зачем? Можно же и без этого.
Конечно, ничего страшного. Но когда пишешь (вернее стараешься писать) так, что нет даже самой фантастической дырки, оно полезно для здоровья.
Представь ситуацию.
Хакер хостится на одной площадке с тобой. Обычно при этом сессионные файлы находятся в общей tmp-овой папке. И если он найдет способ попасть туда - получит все твои сессии. Ну да, захэширован пароль. Но мало ли... Да и зачем просчитывать вероятности взломов - проще их просто предотвратить.
Не совать в сессию хоть мизерно значимую информацию.
ps
Цитата |
см. статус |
аналогично))
Спустя 17 минут, 8 секунд (25.09.2010 - 20:44) Omega написал(а):
Спасибо. На счет сессии - это да! Но давайте вернемся к уроку. Как же нам все таки авторизовывать пользователя, ведь функция getLogin кладет в сессионную переменную всю учетку, в том числе и пароль?
А что если пароль сразу оттуда удалить, и оставить только те данные, которые будут использоваться в дальнейшем, например `login`для автоподстановки имени автора сообщения в гостевухе (тоже Ваш урок)? Тогда в случае перехвата нашей переменной хакер получит ... а что собственно он получит и как это использовать... принесет ли ему это пользу?
Может стоит подправить getLogin() или это будет уже излишеством?
Чтобы ,так сказать, задавить дырку в зародыше
А что если пароль сразу оттуда удалить, и оставить только те данные, которые будут использоваться в дальнейшем, например `login`для автоподстановки имени автора сообщения в гостевухе (тоже Ваш урок)? Тогда в случае перехвата нашей переменной хакер получит ... а что собственно он получит и как это использовать... принесет ли ему это пользу?
Может стоит подправить getLogin() или это будет уже излишеством?
Чтобы ,так сказать, задавить дырку в зародыше

Спустя 50 минут, 31 секунда (25.09.2010 - 21:34) inpost написал(а):
Omega
Уважаю, стараешься. В качестве совета, лучше $_POST['value2'] давать нормальные имена, так удобнее ориентироваться. Я сначала немного запутался. !empty - слишком часто пишешь, одной проверки хватит с головой. (конечно, если в дальнейшем не менял или видоизменял строку, но в данном коде изменений в дальнейшем не протикает, поэтому нет смысле повторяться). Я это к тому, что если ты пытаешься вырезать из строки недопустимые символы, а потом проверяешь снова, не стала ли строка пуста.
Ещё вот эта проверка смущает: if($POST['value2'] !== $POST['value3']). Можно было бы просто != делать, вдруг каким-то случайным образом пароли будут:
$pass1 = 12345;
$pass2 = "12345";
Ну это так, моя параноя. Хотя можно было бы сделать ещё так:
if((string)$POST['value2'] != (string)$POST['value3']), но это так, лишь догадки
Ну а если волнует скорость скрипта, то лучше указывать зарание какие данные достаёшь из базы данных, вместо "SELECT *" пишешь SELECT `name`,`password` и т.д. =)
Уважаю, стараешься. В качестве совета, лучше $_POST['value2'] давать нормальные имена, так удобнее ориентироваться. Я сначала немного запутался. !empty - слишком часто пишешь, одной проверки хватит с головой. (конечно, если в дальнейшем не менял или видоизменял строку, но в данном коде изменений в дальнейшем не протикает, поэтому нет смысле повторяться). Я это к тому, что если ты пытаешься вырезать из строки недопустимые символы, а потом проверяешь снова, не стала ли строка пуста.
Ещё вот эта проверка смущает: if($POST['value2'] !== $POST['value3']). Можно было бы просто != делать, вдруг каким-то случайным образом пароли будут:
$pass1 = 12345;
$pass2 = "12345";
Ну это так, моя параноя. Хотя можно было бы сделать ещё так:
if((string)$POST['value2'] != (string)$POST['value3']), но это так, лишь догадки
Ну а если волнует скорость скрипта, то лучше указывать зарание какие данные достаёшь из базы данных, вместо "SELECT *" пишешь SELECT `name`,`password` и т.д. =)
Спустя 39 минут, 50 секунд (25.09.2010 - 22:14) twin написал(а):
Цитата |
Уважаю, стараешься. В качестве совета, лучше $_POST['value2'] давать нормальные имена, так удобнее ориентироваться. |
Ересь. По той простой причине, что тебе никто не советовал этого делать.
Вот я по первости тоже не мог привыкнуть после общепринятых "нормальных имен", а теперь не представляю, как вы вообще не блудите... Ну если их 5-10, то ладно. А если 40 -50? Или больше...
Вот в жизни как - обычный адрес. Москва, Арбат, 10 -12. Все понятно.
А тут - Москва, Арбат, Красный дом, дверь с бубенчиком.
$POST - город. value - улица. Дальше номер. Если массив, то два, как дом и квартира.
Так не делает никто, кроме меня. Я каюсь - нагло пытаюсь внедрить свою систему. Но она рациональна, как не крути. И страхует от избыточности.
Omega
Цитата |
Может стоит подправить getLogin() или это будет уже излишеством? Чтобы ,так сказать, задавить дырку в зародыше |
Стоит. Тут ты прав.

Цитата |
а что собственно он получит и как это использовать... принесет ли ему это пользу? |
А не важно. Не нужно думать за него - он специалист в своей области и полюбому на порядок компетентнее тебя в этом вопросе.
Можно попытаться набить ему морду, а можно избежать мордобития.
Первое - философия быдла. Второе - что то японско-китайское. Я не каратист.

Спустя 56 минут, 56 секунд (25.09.2010 - 23:11) Omega написал(а):

А можно, как-нибудь в будущем, когда будет время и желание, сделать какой-нибудь урок, специально посвященный способам защиты?
Что-то вроде спецкурса?
Спустя 5 минут, 19 секунд (25.09.2010 - 23:16) Женя Попов написал(а):
<?php
$info = array();
if($ok)
{
if(!isset($POST['value2'],$POST['value4']))
$info[] = 'Ну хоть что-нибудб напишите!';
if(!empty($POST['value2']))
{
if(mb_strlen($POST['value2']) < 8)
$info[] = 'Слишком простой пароль! Нужно чтобы был не короче 8-ми символов.';
else
{
if($POST['value2'] && !$POST['value3'])
$info[] = 'Повторите пароль!';
else
{
if($POST['value2'] !== $POST['value3'])
$info[] = 'Пароли не совпадают!';
}
}
}
if($POST['value4']) && !preg_match("/^[a-z0-9_.-]+@([a-z0-9]+\.)+[a-z]{2,6}$/i", $POST['value4']))
$info[] = 'Не верный формат E-mail';
if(count($info) == 0)
{
include IRBIS_ROOT . 'lib/mysql.php';
$res = mysqlQuery( "SELECT * FROM `" . IRBIS_DBPREFIX . "user`
WHERE `login` = '". escapeString($_SESSION['user_data']['login']) ."'
AND `hash` = '". escapeString($_SESSION['user_data']['hash']) ."'");
if(mysql_result($res, 0) > 0)
{
$res = mysqlQuery(
"UPDATE `". IRBIS_DBPREFIX . "user`
SET `password` = '" . (($POST['value2']) ? "'". md5($POST['value2'] . IRBIS_SALT) ."'"
: "'" . $_SESSION['user_data']['password']) . "',
`email` = '" . (($POST['value4']) ? "'" . $POST['value4'] ."'"
: "'" . $_SESSION['user_data']['email'] . "'") .
" WHERE `id` = '". (int)$_SESSION['user_data']['id'] . "'");
if(mysql_affected_rows() > 0)
$info[] = 'Учетная запись обновлена';
$res = mysqlQuery("SELECT *
FROM `". IRBIS_DBPREFIX . "user` WHERE `id` = ". (int)$_SESSION['user_data']['id'] );
if(mysql_num_rows($res) > 0)
$_SESSION['user_data'] = htmlChars(mysql_fetch_assoc($res));
}
}
}
Может и работает,я не проверял, но для я нашел вещь, массив забыл обнулить.
Спустя 9 минут, 51 секунда (25.09.2010 - 23:26) Omega написал(а):
Цитата |
Может и работает,я не проверял, но для я нашел вещь, массив забыл обнулить. |
Женя, массив info обнуляется в файле variables.php, который инклудится в index.php. А через индекс мы проходим полюбому.
Спустя 3 минуты, 47 секунд (25.09.2010 - 23:30) twin написал(а):
Omega
Цитата |
А можно, как-нибудь в будущем, когда будет время и желание, сделать какой-нибудь урок, специально посвященный способам защиты? |
Спустя 1 минута, 51 секунда (25.09.2010 - 23:32) inpost написал(а):
twin
Возможно стоит разделить на мелкие и крупные проекты, на мелкие и крупные запросы? Я прекрасно понимаю тебя, в какой-то степени ты прав, но когда передаются всего 4-5 переменных, то гораздо приятнее будет назвать всё своими именами, и даже открыв через месяц свой скрипт, решив его править, ты уже знаешь, что $_POST['pass'] - будет пароль, а как же быть с $_POST['value3']??? Снова тратить лишнее время для корректировки мелочи? А если вдруг решишь попросить совета на форуме, то уж тем более создашь проблем не только себе но и другим людям. Вот из-за этого мне кажется, что если зарание знаешь, что переменных будет не так много, то рациональнее использовать имена. Вот даже обычная вставка:
Ведь всё приятно и удобно, и очевидно тем более. По крайней мере для таких маленьких запросов как этот.
Возможно стоит разделить на мелкие и крупные проекты, на мелкие и крупные запросы? Я прекрасно понимаю тебя, в какой-то степени ты прав, но когда передаются всего 4-5 переменных, то гораздо приятнее будет назвать всё своими именами, и даже открыв через месяц свой скрипт, решив его править, ты уже знаешь, что $_POST['pass'] - будет пароль, а как же быть с $_POST['value3']??? Снова тратить лишнее время для корректировки мелочи? А если вдруг решишь попросить совета на форуме, то уж тем более создашь проблем не только себе но и другим людям. Вот из-за этого мне кажется, что если зарание знаешь, что переменных будет не так много, то рациональнее использовать имена. Вот даже обычная вставка:
("INSERT INTO `table` SET
`password` = '{$_POST['password']}',
`name` = '{$_POST['name']}',
`text` = '{$_POST[text]}'
")
Ведь всё приятно и удобно, и очевидно тем более. По крайней мере для таких маленьких запросов как этот.
Спустя 15 минут, 26 секунд (25.09.2010 - 23:47) Omega написал(а):
twin, сенкс за редирект на "Основы безопасности..."
Сейчас это то что надо, имхо.
Время такое... нет злодеями кишит.
И лучше эти темы начинать рассматривать с самого начала обучения. Себе и другим дешевле выйдет.
Сейчас это то что надо, имхо.
Время такое... нет злодеями кишит.

И лучше эти темы начинать рассматривать с самого начала обучения. Себе и другим дешевле выйдет.
Спустя 1 минута, 45 секунд (25.09.2010 - 23:49) inpost написал(а):
Omega
Пройдись по форуму, в каждом разделе есть по нескольку прикреплённых тем, там много чего интересного.
Пройдись по форуму, в каждом разделе есть по нескольку прикреплённых тем, там много чего интересного.
Спустя 3 минуты, 51 секунда (25.09.2010 - 23:53) twin написал(а):
inpost
Цитата |
и даже открыв через месяц свой скрипт, решив его править, ты уже знаешь, что $_POST['pass'] - будет пароль, |
Ты просто не вник)))
Вот смотри, твой пример:
("INSERT INTO `table` SET
`password` = '{$_POST['value1]}',
`name` = '{$_POST['value2']}',
`text` = '{$_POST[value3]}'
")
ты заблудишься? Не ясно, что где?
Или это:
<form action="" method="post">
<input id="name" name="form[value1]" type="text">
<input id="password" name="form[value2]" type="text">
<textarea id="text" name="form[value3]" cols="20" rows="30"></textarea>
</form>
нужно потратить время, чтобы понять кто из них пароль?
Или так в крайнем случае:
if($POST['value1'] == 'admin') // value1 => name
{
это трудно?
Да в стократ легче, чем искать переменную по имени. Номер всетаки по прядку идет, а имя - хрен знает как.
Спустя 12 минут, 18 секунд (26.09.2010 - 00:05) Omega написал(а):
Не знаю... у меня с именами типа valueN проблем не было. Даже "чище" как-то выходит, нет ненужной инфы. А удержать в памяти несколько имен, я думаю, несложно. А если их много, то все равно появятся всевозможные name1, nameA и прочие вариации, что совсем не способствует ясности.
А в помощь памяти есть комментарии.
А в помощь памяти есть комментарии.
Спустя 14 минут, 1 секунда (26.09.2010 - 00:19) twin написал(а):
"Несколько" и "в памяти" - вот ключевые слова. Попробуй вспомнить через месяц кто где в форме из 50-ти полей. Показать?
Ищи-свищи по всем скриптам. читай-перечитывай.
А тут просто нужно посчитать.
Привыкли просто и не понимаете, что в реальной жизни так давно бы подохли)))
Я не хотел бы жить в розовом доме после алллеи налево, как зайдешь - направо, там на этаже горшок с геранью и дверь оббита дермантином.
Уж как то легче улица - номер дома - номер квартиры.
Ищи-свищи по всем скриптам. читай-перечитывай.
А тут просто нужно посчитать.
Привыкли просто и не понимаете, что в реальной жизни так давно бы подохли)))
Я не хотел бы жить в розовом доме после алллеи налево, как зайдешь - направо, там на этаже горшок с геранью и дверь оббита дермантином.

Уж как то легче улица - номер дома - номер квартиры.
Спустя 6 минут, 13 секунд (26.09.2010 - 00:25) inpost написал(а):
twin
Ладно, пример был не совсем удачным) Я к тому, что есть 3 страницы в админке, и каждый раз в value1 будет попадать разные имена. Чисто визуально сегодня $_POST['value1'] = имя, а в другом скрипте $_POST['value1'] = тема сообщения, а в третьем - размер ставки пользователя. Путаница, особенно когда ещё не сформированный конкретный стиль кода. Сейчас делаю сайт, и админку полностью переделал, сделал в 100 раз лучше, довольный как слон, я это к тому, что есть часть в чём я совершенствуюсь, есть другая часть, которая отложилась в памяти, обычное удобство, когда работу мозга направляешь на новые идеи, а не на запоминание или вспоминание, что в данном случае является $_POST['value17']. А если скрипт длинный на 200-300 строк и кача обработки, надо искать какие-то вставки, чтоб понять, что на самом деле это обозначало.
///////
Вот писал это сообщение и пытался понять, или даже вспомнить, на что напоминает твой скрипт. Вот копирую часть моего кода, очень старого:
Замечаешь момент путаницы и небольшого сходства? Вот это и есть главная причина, почему после я решил каждую переменную называть своим именем. =)
Конечно, я не хочу ни обидеть тебя, ни сравнить с кем-то, на данный момент, позволь мне польстить тебе, ты один из самых уважаемых мною личностей, и пусть я начинаю немножко спорить, но это лишь для того, чтоб понять твоё отношение к какому-то вопросу, и найти суть и ответ этого. (добавлю: объяснения и ход мыслей)
А вот появился вопрос, $_POST - это глобальная переменная, можно назвать даже массив, ведь записан он по системе name => value. Так сам вопрос, он передаётся как ассоциативный, или можно к нему как-то обращаться в виде: $_POST[0], $_POST[1]...? Собственно я пробовал сделать так, но не получилось.
Ладно, пример был не совсем удачным) Я к тому, что есть 3 страницы в админке, и каждый раз в value1 будет попадать разные имена. Чисто визуально сегодня $_POST['value1'] = имя, а в другом скрипте $_POST['value1'] = тема сообщения, а в третьем - размер ставки пользователя. Путаница, особенно когда ещё не сформированный конкретный стиль кода. Сейчас делаю сайт, и админку полностью переделал, сделал в 100 раз лучше, довольный как слон, я это к тому, что есть часть в чём я совершенствуюсь, есть другая часть, которая отложилась в памяти, обычное удобство, когда работу мозга направляешь на новые идеи, а не на запоминание или вспоминание, что в данном случае является $_POST['value17']. А если скрипт длинный на 200-300 строк и кача обработки, надо искать какие-то вставки, чтоб понять, что на самом деле это обозначало.
///////
Вот писал это сообщение и пытался понять, или даже вспомнить, на что напоминает твой скрипт. Вот копирую часть моего кода, очень старого:
$result = mysql_query("SELECT * FROM bm_m_stavka WHERE active='1'",$db);
while ($myrow = mysql_fetch_assoc($result)) { // НАЧАЛО WHILE
$result0 = mysql_query("SELECT * FROM bm_match WHERE id='".$myrow['bm_match0']."'",$db);
$myrow0 = mysql_fetch_assoc($result0);
if ($myrow0['active'] == 1) continue;
$result1 = mysql_query("SELECT * FROM bm_match WHERE id='".$myrow['bm_match1']."'",$db);
$myrow1 = mysql_fetch_assoc($result1);
if ($myrow1['active'] == 1) continue;
if ($myrow['vibor2'] != "")
{
$result2 = mysql_query("SELECT * FROM bm_match WHERE id='".$myrow['bm_match2']."'",$db);
$myrow2 = mysql_fetch_assoc($result2);
if ($myrow2['active'] == 1) continue;
}
if ($e == 0) {$result100 = mysql_query("UPDATE `bm_m_stavka` SET active='0',status='<span class=red>-".$myrow['stavka']."</span>' WHERE id='".$myrow['id']."'",$db); continue;}
if ($e == 1) { //НАЧАЛО ОБЫЧНЫХ ПОБЕД
$result00 = mysql_query("SELECT * FROM bm_greed WHERE id='".$myrow0['stavka']."'",$db);
$myrow00 = mysql_fetch_assoc($result00);
$koef0 = $myrow00[$myrow['vibor0']];}
Замечаешь момент путаницы и небольшого сходства? Вот это и есть главная причина, почему после я решил каждую переменную называть своим именем. =)
Конечно, я не хочу ни обидеть тебя, ни сравнить с кем-то, на данный момент, позволь мне польстить тебе, ты один из самых уважаемых мною личностей, и пусть я начинаю немножко спорить, но это лишь для того, чтоб понять твоё отношение к какому-то вопросу, и найти суть и ответ этого. (добавлю: объяснения и ход мыслей)
А вот появился вопрос, $_POST - это глобальная переменная, можно назвать даже массив, ведь записан он по системе name => value. Так сам вопрос, он передаётся как ассоциативный, или можно к нему как-то обращаться в виде: $_POST[0], $_POST[1]...? Собственно я пробовал сделать так, но не получилось.
Спустя 5 секунд (26.09.2010 - 00:25) Ice написал(а):
Цитата (twin @ 25.09.2010 - 23:14) |
Второе - что то японско-китайское. Я не каратист. |
"Настоящий главнокомандующий нашел бы способ обойтись без войны" - слова какого-то из китайских Императоров
Спустя 6 минут, 2 секунды (26.09.2010 - 00:32) Omega написал(а):
С переменными оно конечно лучше по порядку... А вот про дома и улицы... Терпеть не могу все эти забугорные авеню под номерами, хотя это может и удобнее, но чертовски скучно.
Спустя 10 минут, 15 секунд (26.09.2010 - 00:42) twin написал(а):
inpost
Я же не настаиваю))) Вернее настаиваю кое что из ранеток... но не имеет значения.
Откуда это взялось. Я как то писал приложение для локальной сети. Что то типа 1С. Бухгалтерия вобщем. Когда количество переменных перевалило за 300, я просто перестал контролировать скрипт.
А форм там было очень много - заказы, контроль, баланс и пр. пр.
Вот тогда и пришлось ставить номера и адреса. Если бы я писал, как Попов -
Я бы сдох.
Ну а вы пишите как хотите - я только показываю, как удобнее. Решает каждый сам на сам.
Я же не настаиваю))) Вернее настаиваю кое что из ранеток... но не имеет значения.
Откуда это взялось. Я как то писал приложение для локальной сети. Что то типа 1С. Бухгалтерия вобщем. Когда количество переменных перевалило за 300, я просто перестал контролировать скрипт.
А форм там было очень много - заказы, контроль, баланс и пр. пр.
Вот тогда и пришлось ставить номера и адреса. Если бы я писал, как Попов -
$my_row_work_drow_net_balans_limit_decada_hren_poimy_chto
Я бы сдох.
Ну а вы пишите как хотите - я только показываю, как удобнее. Решает каждый сам на сам.
Спустя 2 минуты, 49 секунд (26.09.2010 - 00:45) inpost написал(а):
twin
В том то и дело, Попов писал: $myrow, $myrow1, $myrow2, $myrow3 =)))
В том то и дело, Попов писал: $myrow, $myrow1, $myrow2, $myrow3 =)))
Спустя 1 минута, 16 секунд (26.09.2010 - 00:46) twin написал(а):
Ай молодца.
Не знал. Надо руку пожать.

Не знал. Надо руку пожать.
Спустя 5 минут, 5 секунд (26.09.2010 - 00:51) inpost написал(а):
twin
Если не против, повторю вопрос: "А вот появился вопрос, $_POST - это глобальная переменная, можно назвать даже массив, ведь записан он по системе name => value. Так сам вопрос, он передаётся как ассоциативный, или можно к нему как-то обращаться в виде: $_POST[0], $_POST[1]...? Собственно я пробовал сделать так, но не получилось. "
Если не против, повторю вопрос: "А вот появился вопрос, $_POST - это глобальная переменная, можно назвать даже массив, ведь записан он по системе name => value. Так сам вопрос, он передаётся как ассоциативный, или можно к нему как-то обращаться в виде: $_POST[0], $_POST[1]...? Собственно я пробовал сделать так, но не получилось. "
Спустя 7 минут, 11 секунд (26.09.2010 - 00:58) twin написал(а):
Нет, не выйдет. Для того я и мудрил на своем сайте с функцией href().
Там отчасти решается эта проблема.
Там отчасти решается эта проблема.
Спустя 8 месяцев, 21 день, 15 часов, 3 минуты, 4 секунды (17.06.2011 - 16:01) Guest написал(а):
Где этот мануал по созданию ЛК, не могй найти, весь инет обрыскал. ПОдскажите плиз!