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

08.06.2008, 09:13
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
Тяжёлая задача на php для сайта
Проблема в следующем:
Я делаю сайт на котором есть форма данные с которой уплывают в базу данных Mysql.
В одно из полей формы пользователь должен будет вводить слова через пробел.
К примеру так [быдла лох пожарник пропан мясо ....]
Так вот как мне сделать чтобы юзер мог ввести только 10 таких (любых) слов
Как сделать это на php?
|
|
|

08.06.2008, 09:28
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Ну проверить количество слов перед запросом в БД
|
|
|

08.06.2008, 10:04
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
а как?
Пожалуйста покажи на примере уже несколько дней думаю может пробелы считать
|
|
|

08.06.2008, 10:06
|
|
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,206
Провел на форуме: 4778940
Репутация:
1257
|
|
PHP код:
<?php
echo count(explode(" ","раз два три"));
?>
примерно так
|
|
|

08.06.2008, 10:08
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
mr.The
а можешь детальней объяснить?
|
|
|

08.06.2008, 10:10
|
|
Banned
Регистрация: 27.08.2007
Сообщений: 159
Провел на форуме: 994336
Репутация:
171
|
|
ну проверить количество слов ты можешь посчитать только непосредственно через пробелы....
Код:
procedure tform1.parserx(var s:string);
var i:integer;
m:string;
a:array of string;
begin
if s[1]=' ' then delete(s,1,1);
if s[length(s)]=' ' then delete(s,length(s),1);
i:=1;
n:=1;
s:=s+' ';
while i<=length(s) do
begin
if s[i]=' ' then
begin
a[n]:=copy(s,1,i-1));
b[n]:=a[n];
delete(s,1,i);
i:=0;
n:=n+1;
end;
i:=i+1;
end;
end;
вот пример кода только он на дельфи..разберешься..
|
|
|

08.06.2008, 10:12
|
|
Banned
Регистрация: 27.08.2007
Сообщений: 159
Провел на форуме: 994336
Репутация:
171
|
|
хотя mr.The сделал правильнее....мой пример просто отделяет каждые слова..еще вырезай пробелы в начале и конце строки...если они там есть.
|
|
|

08.06.2008, 10:13
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
Лучше б на php
|
|
|

08.06.2008, 10:14
|
|
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,206
Провел на форуме: 4778940
Репутация:
1257
|
|
это ж на дельфи 0_о ты походу разделом ошиблся)))
а можешь детальней объяснить?
функция explode развивает строку на построки(в данном случае делитель - пробел) и запаисывает в масив
а функция count считает длинну масива. ну echo, понятно, всё выводит))
еще вырезай пробелы в начале и конце строки
да ты прав. токгда лучше так
PHP код:
<?php
echo count(explode(" ",trim("раз два три ")))
?>
функция trim очищает пробелы и переносы строки с начала и конца строки (0_о)
Последний раз редактировалось mr.The; 08.06.2008 в 10:17..
|
|
|

08.06.2008, 10:16
|
|
Участник форума
Регистрация: 06.06.2008
Сообщений: 162
Провел на форуме: 3942177
Репутация:
244
|
|
PHP код:
<html><head></head><body>
<form method='post' action=''>
<input type='text' name='data'>
<input type='submit'>
</form>
</body></html>
<?php
$data = $_POST['data'];
$ar = explode(' ', $data);
if(count($ar) > 10){
echo 'no';
}
else {
echo 'yes';
}
?>
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|