Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

08.03.2009, 11:56
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Велемир, если капча не очень сложная - перебирают попиксельно.
|
|
|

08.03.2009, 12:43
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
imajo.ati Смотря как именно реализовано. Следующий код у меня нормально работает и на винде и на никсах
PHP код:
#!/usr/local/bin/php
<?php
$port = 9050;
$sock = stream_socket_server('tcp://0.0.0.0:'.intval($port), $errno, $errstr);
$clients = array($sock);
while (true)
{
$read = $clients;
if (stream_select($read, $write = NULL, $except = NULL, 5) < 1)
continue;
if (in_array($sock, $read))
{
$clients[] = $newsock = stream_socket_accept($sock);
fwrite($newsock, "Welcome to server\r\n");
$ip = stream_socket_get_name($newsock, true);
echo "New client connected: {$ip}\n";
$key = array_search($sock, $read);
unset($read[$key]);
}
foreach ($read as $read_sock)
{
$data = @fgets($read_sock, 1024);
if ($data === false)
{
$key = array_search($read_sock, $clients);
unset($clients[$key]);
echo "client disconnected.\n";
continue;
}
$data = trim($data);
if (!empty($data)) {
foreach ($clients as $send_sock)
{
if ($send_sock == $sock || $send_sock == $read_sock)
continue;
fwrite($send_sock, $data."\r\n");
}
}
}
}
fclose($sock);
?>
|
|
|

08.03.2009, 13:14
|
|
Новичок
Регистрация: 25.01.2009
Сообщений: 4
Провел на форуме: 11532
Репутация:
1
|
|
Сообщение от _SEREGA_
Я так себе понимаю синтаксис но не врубаюсь куда пихать код, я хостинг на hut.ru зарегал
может посоветуете нормальный хостинг (бесплатный конечно) с полноценным пхп?
Должно было окошко с текстом появиться?
Нет. Команда echo просто выведет в экран браузера данные, которые ты ей указал в параметрах. То есть результатом твоей программы будет:
Код:
<html>
<head>
<title>Тестируем PHP</title>
</head>
<body>
Hello, world!
</body>
</html>
Именно это прилетит в браузер (можешь посмотреть HTML код в браузере). Соответственно, ты увидишь только фразу "Hello, world!".
Насчет фришного хостинга: загугли "Бесплатный хостинг PHP". Из личного опыта: tut.su, ayola.net - бесплатные, но постят рекламу, а также следят за тем, что ты у них размещаешь.
Для разработки программ на php лучше подними у себя web-сервер с php. Это не так сложно. Зато получишь полный доступ ко всем настройкам php (очень важно при разработке программ) и не будешь мучаться с заливкой файлов.
|
|
|

08.03.2009, 14:28
|
|
Познающий
Регистрация: 10.12.2008
Сообщений: 36
Провел на форуме: 844207
Репутация:
47
|
|
Знаю что тема заезженная, но на форуме по поиску не нашел. Как проверить поля на соответствие?
Тоесть чтоб в поле e-mail вводили мыло, и т.п. Чтобы поля не были пустыми. Вроде слышал что нужен AJAX скрипт. Подскажите пожалуйста.
п.с. насчет этого никто не поможет? http://forum.antichat.ru/showpost.php?p=1155867&postcount=9314
|
|
|

08.03.2009, 14:40
|
|
Участник форума
Регистрация: 26.12.2006
Сообщений: 107
Провел на форуме: 228267
Репутация:
27
|
|
Здравствуйте, помогите правильно составить регулярку, что бы если строка более N-го количества символов (допустим более 40), то эта строка обрезается по последний пробел, пробывал сам, вот что получилось:
Код:
function cut ($str, $dlina='40') {
if (preg_match('#^([\s\S]{'.$dlina.'}[^\!\.\?]*)[\.\!\?]#i',strip_tags($str),$match)) $code = $match[1];
else if (preg_match('#^([\s\S]{'.$dlina.'}[^\ \ ]*)[\ \ ]#i',strip_tags($str),$match)) $code = $match[1];
return $code;
}
$text='Исследование программных продуктов, защит программного обеспечения, низкоуровневое программирование';
echo "Символов до: ".strlen(strip_tags($text))."<br />";
$text=cut($text);
echo "$text<br />";
echo "Символов после: ".strlen(strip_tags($text))."<br /><br /><br />";
$text='Исследование программных продуктов, защитатников';
echo "Символов до: ".strlen(strip_tags($text))."<br />";
$text=cut($text);
echo "$text<br />";
echo "Символов после: ".strlen(strip_tags($text))."<br />";
но функция cut(); работает только если текст более 40 символов и после этих 40 символов есть пробел, вот код выполнения:
Код:
Символов до: 99
Исследование программных продуктов, защит
Символов после: 41
Символов до: 48
Notice: Undefined variable: code in script.php on line 8
Символов после: 0
А нужно что бы было так:
Код:
Символов до: 99
Исследование программных продуктов, защит
Символов после: 41
Символов до: 48
Исследование программных продуктов
Символов после: 34
|
|
|

08.03.2009, 15:00
|
|
Новичок
Регистрация: 25.01.2009
Сообщений: 4
Провел на форуме: 11532
Репутация:
1
|
|
Сообщение от VaTTka
Знаю что тема заезженная, но на форуме по поиску не нашел. Как проверить поля на соответствие?
Тоесть чтоб в поле e-mail вводили мыло, и т.п. Чтобы поля не были пустыми. Вроде слышал что нужен AJAX скрипт. Подскажите пожалуйста.
п.с. насчет этого никто не поможет? http://forum.antichat.ru/showpost.php?p=1155867&postcount=9314
Делается это вот так:
Код:
<HTML>
<head>
<SCRIPT LANGUAGE="JavaScript">
function checkIt() {
//Проверка поля mail формы form1
if (document.forms.form1.mail.value != "") {
} else {
alert("Не заполнено поле \"Мыло\" в форме. \n\nПожалуйста, введите мыло.");
document.forms.form1.mail.focus();
return false;
}
//Сюда можно вставить проверку других полей
return true;
}
</SCRIPT>
</head>
<body>
<form action="" method="GET" name="form1">
Мыло: <input type="text" name="mail" value="" size="30" />
<input type="submit" value="Отправить" onclick="return checkIt()"/>
</form>
</body>
</HTML>
Поясню, как это работает:
При нажатии кнопки отправить вызывается функция ChekIt(), если она возвращает True, то данные отправляются, в противном случаи - нет.
В функции ChekIt() необходимо проверить каждое поле на "заполненность":
Код:
if (document.forms.form1.mail.value != "") {
} else {
alert("Не заполнено поле \"Мыло\" в форме. \n\nПожалуйста, введите мыло.");
document.forms.form1.mail.focus();
return false;
}
В том порядке, в котором ты хочешь, чтобы возвращались сообщения об ошибках, если не заполнено несколько полей. Этот кусок кода проверяет, заполнено ли поле mail, и, если нет, сообщает об ошибке, переводит курсор в это поле и возвращает False, чтобы форма не отправлялась на сервер. Для обработки других полей скопируй этот кусок кода столько раз, сколько необходимо. Только не забудь исправить имя поля (в ДВУХ местах) и поправить текст сообщения.
Ну и в конце функции, если все поля успешно заполнены, то возвращаем true.
Последний раз редактировалось initab; 08.03.2009 в 17:05..
|
|
|

08.03.2009, 15:55
|
|
Познающий
Регистрация: 10.12.2008
Сообщений: 36
Провел на форуме: 844207
Репутация:
47
|
|
initab,
со вторым полем проблема, не проверят поле password. Изменил все как положено..
Код:
if (document.forms.password.password.value != "") {
} else {
alert("Не заполнено поле \"Пароль\" в форме. \n\nПожалуйста, введите свой пароль."); // выводит сообщение, если поле Subject не заполнено
document.forms.password.password.focus();
return false;
}
Последний раз редактировалось VaTTka; 08.03.2009 в 16:07..
|
|
|

08.03.2009, 16:08
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
spamoney Как-то так
PHP код:
function cut($str,$len=40)
{
if (strlen($str)<=$len) return $str;
else {preg_match('~^([\s\S]{' . intval($len) . '}[^ ]*)?~', $str,$match); return $match[1];}
return false;
}
$str='Исследование программных продуктов, защит программного обеспечения, низкоуровневое программирование';
echo strlen($str).'-----'.cut($str);
|
|
|

08.03.2009, 16:24
|
|
Участник форума
Регистрация: 26.12.2006
Сообщений: 107
Провел на форуме: 228267
Репутация:
27
|
|
Сообщение от Gifts
spamoney Как-то так
PHP код:
function cut($str,$len=40)
{
if (strlen($str)<=$len) return $str;
else {preg_match('~^([\s\S]{' . intval($len) . '}[^ ]*)?~', $str,$match); return $match[1];}
return false;
}
$str='Исследование программных продуктов, защит программного обеспечения, низкоуровневое программирование';
echo strlen($str).'-----'.cut($str);
Пасиб, но немного не то, если берем строчку:
Код:
$str='Исследование программных продуктов, низкоуровневое программирование';
то на выходе получим:
Код:
67-----Исследование программных продуктов, низкоуровневое
а нужно что б было так:
Код:
36-----Исследование программных продуктов,
т.е нужно что б строка на выходе была меньше или равна 40 символам и была обрезана по последнему пробелу (что бы не обрезалось пол слова)
|
|
|

08.03.2009, 16:31
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме: 905389
Репутация:
332
|
|
Сообщение от DDoSька
Если тебе лень печатать,то пожалуйста
.
я в плане оптимизации)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|