|
|
|
| Давайте скрасим свой досуг и "расслабим" свой ум от обыденного напряжения .
Мы — поиграем.
Правила игры:
- первый игрок начинает игру;
- он пишет код (далее — вопрос — мини игра), в котором есть затаившаяся ошибка или несколько ошибок (далее — ответ);
- другие игроки предлагают варианты, где именно находится/находятся ошибка/и (дают ответ);
- игрок, который угадает сразу все ошибки — очередной победитель очередной мини игры;
- игрок, который угадал предыдущий вопрос задаёт новый (после того, как автор подтвердил, что он ответил правильно);
- на новый вопрос другие игроки вновь пытаются найти правильный ответ-разгадку.
Оформление: Дабы не запутаться в вопросах и ответах предлагаю:
1. Вопрос (код с ошибкой) писать в тегах «[ code ] [ /code ]» (без пробелов).
2. Ответы на вопрос писать без этих тегов.
Рейтинг: Предлагаю за каждый очередной правильный ответ на мини-игру игроку давать 1 балл, а после выстраивать таблицу рейтинга, просто для интереса.
ВАЖНО! Задавайте такие вопросы, на которые Вы сами знаете правильный ответ, т.е. Вы точно знаете, где находится ошибка в предложенном Вами коде. | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(06.01.2010 в 14:34)
| | Вопрос первый:
if ( !preg_match ( '/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i' , $email ) ) $error = true;
|
| |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(06.01.2010 в 14:35)
| | Вроде бы ошибка в [0-9a-z_^\.] символ "^" по-моему, ставится только в начале скобок) | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(06.01.2010 в 14:35)
| | В этом коде нет ни одной ошибки. Потому что нет входящих условий для паттерна. | |
|
|
|
|
 734 байт |
|
|
для: Vyacheslav Tsv.
(06.01.2010 в 14:35)
| | Я тут набросал список из полдюжины пунктов, но игру рушить не хочу.
Так что пока ответ под замок --->
Пусть народ побалуется, чо... | |
|
|
|
|
|
|
|
для: Trianon
(06.01.2010 в 15:33)
| | Ах соблазн расковырять. Я осмелюсь предположить, что там что то в плане 21-й задачи.
Но - терпение. | |
|
|
|
|
|
|
|
для: Николай2357
(06.01.2010 в 23:39)
| | кроме того что ^ там совсем не к месту , если проверяется е-мэйл-адрес
, там для этих самых адресов целое RFC придумано
, и такие адреса какие бывают в это выражение даже не влезут
, и наоборот влезут такие каких не бывает.
, и какие они бывают - лучше таких выражений и не делать совсем ,)
Больше ошибок вроде и нет | |
|
|
|
|
|
|
|
для: Николай2357
(06.01.2010 в 23:39)
| | вопроса там нет. | |
|
|
|
|
|
|
|
для: Trianon
(07.01.2010 в 02:45)
| | Жаль. | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(06.01.2010 в 14:35)
| | Подсказка: ошибки в синтаксисе нет... | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(06.01.2010 в 16:33)
| | А, я понял! Дело в смайлике?
| |
|
|
|
|
|
|
|
для: Саня
(07.01.2010 в 12:56)
| | ^ не к месту точно. И не понятно, что должен давать REGEXP. Из-за одной задачки столько флуда. | |
|
|
|
|
|
|
|
для: Саня
(07.01.2010 в 12:56)
| | Это птичка))). Вообще он там не к месту, но не вредит. И считать это ошибкой вряд ли стоит. Шаблон будет работать. Вопрос - что он призван исключить. А раз условие не поставлено (ни где не написано, что это проверка емайла), значит код рабочий. | |
|
|
|
|
|
|
|
для: Николай2357
(07.01.2010 в 14:53)
| | Проверка e-mail указано в названии переменной - ищите подвохи )
Ещё подсказка: таких доменов не бывает.
P.S. Не думал, что первый вопрос будет уже такой сложный ) | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(07.01.2010 в 17:34)
| | Вопрос сложен в своей простоте. Если это не подвох, а действительно проверка строки на соответствие E-mail, то тогда пожалуйста. По порядку.
1. Нет привязки к началу и концу строки
2. В первой части паттерна (собственно названии ящика) не хватает дефиса.
3. Его же нет и в доменном имени.
4. В доменном имени не бывает символа подчеркивания.
5. Исключать точку там бессмысленно, так как в классе есть перечисление разрешенных.
6. {2,3} - почему 3... Я знаю зоны и из 6-ти. А уж 4 так вообще полно.
Ну, полдюжины набрал, хватит)). | |
|
|
|
|
|
|
|
для: Николай2357
(07.01.2010 в 17:59)
| | Николай2357 дал правильный ответ.
Молодец! Ты — первый победитель. Теперь ты вправе задать следующий вопрос. | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(07.01.2010 в 21:23)
| | пароль к моему ответу: 6
Я, кстати, кое-что упустил там.
Касательно п2. Николая дополню, что там не хватает не только дефиса.
набор символов в имени пользователя вообще ограничен мало. | |
|
|
|
|
|
|
|
для: Trianon
(07.01.2010 в 21:57)
| | плюс длина домена ограничена до 255 (если не ошибаюсь)
, минимальная длинна некоторых доменов второго уровня 2 , а некоторых 3
, плюс ещё куча правил типа апострофов кавычек и других разнообразных символов в именах пользователей и указания других параметров, кроме имени и домена
поиск по сохранённым rfc ни к чему хорошему не привёл , просще найти ссылку здесь ,)
http://xpoint.ru/forums/programming/perl/regexp/faq.xhtml | |
|
|
|
|
|
|
|
для: heed
(07.01.2010 в 22:15)
| | Люди, не ищите новых ошибок - вопрос уже устарел )
Во-вторых (тамо было в-первых), самые распространённые имена для e-mail адресов:
1. В домене может быть только a-z, 0-9 и -.
2. В имено только a-z, 0-9, _; Даже "-" разрешается не всеми почтовыми сервисами, также как ".", например.
3. Если у кого-то почтовый адрес вместе с "@" и "домен.зона" больше 33 символов - ну, это "надо же было такой ящик зарегистрировать" )
P.S. Найти можно много изъянов. Все ваши догадки (хоть и игра это всё) пойдут на пользу тем, кто ещё учится программированию и умеет читать что пишут. Давайте не будем столь категоричны, друзья ,) | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(07.01.2010 в 21:23)
| | Ну вот такой тогда код. Там есть где развернуться.))
<?php
$query = "SELEKT * FROM table";
$result = mysql_query($query);
$my_row = mysql_fetch_array($result);
do
{
printf ("<div class='my_div'>%s</div>",$my_row["text"]);
}
while($my_rows = mysql_fetch_array($result));
|
| |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2010 в 07:40)
| | Сразу в глаза запрос бросается, надо так:
<?php
$query = "SELECT * FROM table";
?>
|
| |
|
|
|
|
 765 байт |
|
|
для: Николай2357
(08.01.2010 в 07:40)
| | Перечень ошибок прикреплю, пока тоже с паролем. ============> | |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2010 в 07:40)
| | 1 $query = "SELECT * FROM table";
2 для "чистоты" лучше всего использовать mysql_fetch_assoc
3 непонятно зачем перед циклом $my_row = mysql_fetch_array($result);
4 глупый цикл который выполнится даже если записей нет, следует использовать while(){}
5 в sprintf всегда будет значение от пункта 2 | |
|
|
|
|
автор: .heed (08.01.2010 в 12:24) |
|
|
для: sl1p
(08.01.2010 в 09:31)
| | 3 потомучто цикл do while , а не просто while
увидел только $my_rows - ошибка в имени переменной | |
|
|
|
|
|
|
|
для: sl1p
(08.01.2010 в 09:31)
| | в первом пункте все равно ошибка. | |
|
|
|
|
|
|
|
для: root
(08.01.2010 в 12:28)
| | кавычки?
ну это смотря какое название таблицы :) оно же здесь к примеру. | |
|
|
|
|
|
|
|
для: sl1p
(08.01.2010 в 09:31)
| | тоесть в sprintf всегда будет значение от пункта 3($my_row), перепутал :) | |
|
|
|
|
|
|
|
для: sl1p
(08.01.2010 в 12:46)
| | Ну за исключением пары пунктов все верно. Знач водит sl1p )))
Пароль к файлу - 1221. | |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2010 в 12:56)
| |
<?
$s = "some string";
for($i = 0; $i < strlen($s); $i++) {
echo @${$s[$i]}--;
}
|
ы я дятел, я знаю))
не умею придумывать такое :) | |
|
|
|
|
|
|
|
для: sl1p
(08.01.2010 в 13:38)
| | Просто должно быть:
$s = "some string";
$strlen = strlen ( $s );
for ( $i = 0; $i < $strlen; $i++ )
{
echo $s [ $i ];
} | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(08.01.2010 в 16:51)
| | ну тут даже, допустим, вопрос: почему цикл бесконечный) | |
|
|
|
|
|
|
|
для: sl1p
(08.01.2010 в 16:55)
| | Ну, конечный же - равный strlen символов. | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(08.01.2010 в 19:12)
| | всмысле равный?:))) | |
|
|
|
|
|
|
|
для: sl1p
(09.01.2010 в 00:41)
| | strlen определяет количество символов и потом выводим снова по одному символу до последнего.
В итоге скрипт:
$s = "some string";
$strlen = strlen ( $s ); // даст ответ - 11
for ( $i = 0; $i < $strlen; $i++ ) // выводит с 0 до 10
{
echo $s [ $i ];
} | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(09.01.2010 в 01:32)
| | нет, не правильно :)
со strlen всё в порядке. | |
|
|
|
|
|
|
|
для: sl1p
(09.01.2010 в 17:12)
| | Тогда я не понял, что Вы хотите ) | |
|
|
|
|
автор: .heed (10.01.2010 в 12:32) |
|
|
для: sl1p
(09.01.2010 в 17:12)
| | там собака '@' совсем не к месту разлеглась ,) | |
|
|
|
|
|
|
|
для: .heed
(10.01.2010 в 12:32)
| | та к месту :)
хочу чтобы вы сказали почему именно мой код не измененный приводит к бесконечному циклу со всеми собаками т .д.:) | |
|
|
|
|
|
|
|
для: sl1p
(10.01.2010 в 16:28)
| | Вот непонятно, почто у тебя "--" стоит ) | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(11.01.2010 в 01:07)
| | ну не по что.. я ж сказал код тупой и бессмысленый:)
вобщем
при каждом проходе цикла создаётся переменная с именем сдед. символа в строке $s = "some string";
тоесть получается:
$s--;
$o--;
$m--;
$e--;
и т.д.
и когда доходит то $i в слове "string" уменьшает её на единицу что и создаёт бесконечный цикл:) | |
|
|
|
|
|
|
|
для: sl1p
(11.01.2010 в 04:18)
| | «Ты почто боярыню обидел» или «зачем раскрыл все карты»? ((( | |
|
|
|
|
|
|
|
для: sl1p
(11.01.2010 в 04:18)
| | >вобщем...
Только что хотел сказать!.. Задавайте новый вопрос! | |
|
|
|
|
|
|
|
для: sl1p
(11.01.2010 в 04:18)
| | sl1p, раз карты открыл — тебе и флаг в руки снова.
В Этой мини-игре никто не одержал победы. | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(12.01.2010 в 00:08)
| | >тебе и флаг в руки
Флаг в руки и паровоз напротив. :)
А вопрос был сложный, можно было помучать народ! | |
|
|
|
|
|
|
|
для: sl1p
(11.01.2010 в 04:18)
| | Что молчишь, sl1p? | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(06.01.2010 в 14:34)
| | Попробуем возобновить игру ,)
Очень простой для этого пример:
<?php
for ( $i = 0; $i > $count; $i++ )
{
if ( $i < 20 && $i > 10 ) echo'От 10 до 20';
else continue;
}
?>
|
| |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(18.09.2010 в 22:56)
| | на первый взгляд бесконечный цикл если $count < 0
ну и сам $count не определен нигде
чуть позже:
и еще не от 10 до 20, а от 11 до 19 ) | |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(18.09.2010 в 22:56)
| | Ошибки две:
1) $count не определена
2) "$i>$count" не имеет смысла если $i<$count | |
|
|
|
|
|
|
|
для: Gubichev
(19.09.2010 в 04:26)
| | как-то что-то мало.
3) else не имеет смысла в конце составного оператора
4) continue не имеет смысла в конце тела цикла
5) переменная $count не определена
и нет никакой возможости узнать, какие ошибки автор сделал намеренно, а какие по незнанию. | |
|
|
|
|
|
|
|
для: Trianon
(19.09.2010 в 12:21)
| | По незнанию нет никаких ) Пока полного ответа не вижу ))) | |
|
|
|