if(!preg_match("/(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}/", $w))
ссылка типа http://phpforum.ru подойдёт,
а как сделать штоб он ещо проверял на http://php-forum.ru и http://phpforum.com.ru http://php-forum.com.ru
Спустя 20 минут, 35 секунд (26.02.2011 - 19:39) alex12060 написал(а):
if(!preg_match("/(http:\/\/)[a-zA-Z0-9-_]{4,16}\.\w{1,7}/", $w))
http://php-forum.ru - вот это прокатит. А с поддоменами - не помню)
Спустя 5 минут, 49 секунд (26.02.2011 - 19:44) qaz333 написал(а):
Цитата (alex12060 @ 26.02.2011 - 16:39) |
if(!preg_match("/(http:\/\/)[a-zA-Z0-9-_]{4,16}\.\w{1,7}/", $w)) http://php-forum.ru - вот это прокатит. А с поддоменами - не помню) |
о спс,
я так сделал
if(!preg_match("/(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}|(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}\.\w{1.7}|(http:\/\/)[a-zA-Z0-9-_]{1,16}\.\w{1,7}|(http:\/\/)[a-zA-Z0-9-_]{4,16}\.\w{1,7}\.\w{1,7}/", $w))
сойдёт? как думаеш? всё из описанного катит
Спустя 2 минуты, 50 секунд (26.02.2011 - 19:47) alex12060 написал(а):
не, грамоздко.
Ща.
Ща.
Спустя 11 минут, 13 секунд (26.02.2011 - 19:58) alex12060 написал(а):
preg_match("/(http|https):\/\/[a-zA-Z0-9а-яА-Я-_]{2,16}\.(\w{1,7}|[а-я]{2,3})i/", $str)
Я тебе такую сделал валидку. Не знаю, пока сырая, но работает с русскими доменами.
Спустя 18 секунд (26.02.2011 - 19:59) qaz333 написал(а):
Цитата (alex12060 @ 26.02.2011 - 16:47) |
не, грамоздко. Ща. |
ну чё там?
Спустя 3 минуты, 45 секунд (26.02.2011 - 20:02) qaz333 написал(а):
а как сделать штоб могла ещо присудствовать точка и запятая
Спустя 2 минуты, 1 секунда (26.02.2011 - 20:04) alex12060 написал(а):
точка и запятая?
Зачем это в домене?
Зачем это в домене?
Спустя 49 секунд (26.02.2011 - 20:05) qaz333 написал(а):
Цитата (alex12060 @ 26.02.2011 - 17:04) |
точка и запятая? Зачем это в домене? |
не, ето уже будет не в домене
Спустя 5 минут, 49 секунд (26.02.2011 - 20:11) alex12060 написал(а):
А где?
Ну, на, я балуюсь ;D
меняй на разные символы)
Ну, на, я балуюсь ;D
<?php
$str = '=';
if (preg_match("/\.|,/", $str))
echo 'true';
else
echo 'false';
die();
?>
меняй на разные символы)
Спустя 5 минут, 54 секунды (26.02.2011 - 20:17) qaz333 написал(а):
ага, а вот ещо вопрос,
почему пропускает больше 10 символов? што я написал нетак?
if(!preg_match("/[a-zA-Z0-9]{3,10}/", $e)) {
echo "Имя пользователя задано в неправильном формате";
почему пропускает больше 10 символов? што я написал нетак?
Спустя 11 минут, 24 секунды (26.02.2011 - 20:28) Dron19 написал(а):
Цитата (qaz333 @ 26.02.2011 - 16:44) | ||
о спс, я так сделал
сойдёт? как думаеш? всё из описанного катит |
если все из описанного катит, то это хорошо, но такая строка не сойдет, нужно более универсальную
Спустя 50 секунд (26.02.2011 - 20:29) Dron19 написал(а):
Вот так больше десяти символов не будет
if(!preg_match("/[a-zA-Z0-9]{3,}/", $e))
echo "Имя пользователя задано в неправильном формате";
Спустя 2 минуты, 57 секунд (26.02.2011 - 20:32) qaz333 написал(а):
Цитата (Dron19 @ 26.02.2011 - 17:29) |
Вот так больше десяти символов не будет <pre class="sh_sourceCode" rel="php"><span class="sh_control">if</span><span class="sh_symbol">(!</span><span class="sh_function">preg_match</span><span class="sh_symbol">(</span><span class="sh_string">"/[a-zA-Z0-9]{3,}/"</span><span class="sh_symbol">,</span> <span class="sh_variable">$e</span><span class="sh_symbol">))</span> <span class="sh_function">echo</span> <span class="sh_string">"Имя пользователя задано в неправильном формате"</span><span class="sh_symbol">;</span></pre> |
так разве ето правильно?
насколько я понял
{0,10} означает минимум 0 и максимум 10 букв
а
{3,} минимум 3 а дальше сколько хочеш
или я не так понял??? :blink:
цытата из пхпклаб
Естественно подобное задание количества символов в условии поиска не является единственным. Квантификаторы бывают разные! [a-z]{1,3} означает, что подряд может идти от одного до трех букв латинского алфавита. [a-z]{2,} означает, что может идти минимум 2 буквы латинского алфавита подряд.
Спустя 8 минут (26.02.2011 - 20:40) Dron19 написал(а):
ты правильно понял.
Спустя 11 минут, 12 секунд (26.02.2011 - 20:51) alex12060 написал(а):
$str = 'awwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww';
$str2 = 'awww';
if (preg_match("/^[a-z0-9]\w{3,10}$/i", $str2))
echo 'true';
else
echo 'false';
Проверяй. Подставляй разные переменные.
Спустя 5 минут, 19 секунд (26.02.2011 - 20:57) qaz333 написал(а):
што означает ети символы ^ ............ $/i
Спустя 51 секунда (26.02.2011 - 20:58) Dron19 написал(а):
начало и конец шаблона
Спустя 49 секунд (26.02.2011 - 20:58) alex12060 написал(а):
i - нечуствительность к регистру, поэтому [A-Z] убрал)
Спустя 2 минуты, 48 секунд (26.02.2011 - 21:01) qaz333 написал(а):
ну а символы ^........$ в донном случае какую роль играют?
Спустя 24 секунды (26.02.2011 - 21:02) alex12060 написал(а):
Цитата |
начало и конец шаблона |
тебе же ответили.
Спустя 49 секунд (26.02.2011 - 21:02) inpost написал(а):
Dron19
Не шаблона!
qaz333
Начало и конец строки, то есть поиск будет браться от самого начала строки и до самого конца, а не в середине. То есть от начала строки случайные символы (от 3-х до 10) до конца! По поводу модификатора i уже ответили =)
Не шаблона!
qaz333
Начало и конец строки, то есть поиск будет браться от самого начала строки и до самого конца, а не в середине. То есть от начала строки случайные символы (от 3-х до 10) до конца! По поводу модификатора i уже ответили =)
Спустя 1 минута, 50 секунд (26.02.2011 - 21:04) alex12060 написал(а):
inpost
Да, строки)
Да, строки)
Спустя 7 минут, 3 секунды (26.02.2011 - 21:11) qaz333 написал(а):
ага, понял, а в таком случае как будет правильно
так
или так
так
if(!preg_match("/^[a-zA-Z0-9]{1,15}@[a-zA-Z0-9]{1,10}\.[a-zA-Z0-9]{1,3}$/", $err)) {
или так
if(!preg_match("/^[a-zA-Z0-9]{1,15}$@^[a-zA-Z0-9]{1,10}$\.^[a-zA-Z0-9]{1,3}$/", $err)) {
Спустя 16 минут, 48 секунд (26.02.2011 - 21:28) alex12060 написал(а):
if (!eregi("^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$",$email)) { return false; }
Моя проверка.
Кстати, надо поменять функцию)
Спустя 6 минут, 9 секунд (26.02.2011 - 21:34) qaz333 написал(а):
Цитата (alex12060 @ 26.02.2011 - 18:28) |
if (!eregi("^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$",$email)) { return false; } Моя проверка. Кстати, надо поменять функцию) |
зачем менять?
цитата:,,Примечание: preg_match(), которая использует Perl-совместимый синтаксис регулярного выражения, работает часто быстрее, чем ereg().,,
зачем тебе тогда A-Z если eregi игнорирует регистр?
и непойму, а зачем плюсик перед собакой? +@
Спустя 14 минут, 2 секунды (26.02.2011 - 21:48) alex12060 написал(а):
Цитата |
и непойму, а зачем плюсик перед собакой? +@ |
Потому-что, + говорит о том, что после него должен идти только 1 символ. При этом, мы его опредилили - @
Если ввести 2 собаки, не сработает.
Почему eregi()?
хз, что первое вспомнил, то и написал)
Поэтому и сказал, что надо поменять))
Эту функцию я использую в своей разработке)
Спустя 3 минуты, 56 секунд (26.02.2011 - 21:52) qaz333 написал(а):
ясно,
у меня осталась последняя на сегодня проблема,
почему скрипт тупо игнорит ето условие
у меня осталась последняя на сегодня проблема,
<?
session_start();
include("dbconnect.php");
$m=!empty($_POST['mod'])?$_POST['mod']:NULL;
$q= !empty($_POST['namme'])?$_POST['namme']:NULL;
$w=!empty($_POST['ssilka'])?$_POST['ssilka']:NULL;
$k=!empty($_POST['kat'])?$_POST['kat']:NULL;
$o=!empty($_POST['opis'])?$_POST['opis']:NULL;
$i= !empty($_POST['idd'])?$_POST['idd']:NULL;
if($k == "NULL")
{
echo 'выберите каталог';
}
else
{
if(!preg_match("/^[a-zA-Z0-9]{4,12}$/", $q))
{
echo 'название сайта введено неправильно';
}
else
{
if(!preg_match("/(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}|(http:\/\/)[a-zA-Z0-9]{4,16}\.\w{1,7}\.\w{1.7}|(http:\/\/)[a-zA-Z0-9-_]{1,16}\.\w{1,7}|(http:\/\/)[a-zA-Z0-9-_]{4,16}\.\w{1,7}\.\w{1,7}/", $w))
{
echo 'ссылка на сайт введена неправильно';
}
else
{
if(!preg_match("/^[a-zA-Z0-9а-яА-Я\s\.\,]{10,30}$/", $o))
{
echo 'описание задано неправильно';
}
else
{
if($m == "create")
{
$qp = "SELECT `user_login`
FROM `topuser`
WHERE `id`= '{$_SESSION['id']}'
LIMIT 1";
$sp = mysql_query($qp) or die(mysql_error());
while ($rop = mysql_fetch_array($sp) )
{
$username= $rop['user_login'];
}
$sqbl="INSERT INTO topsite(user, name, ssilka, kate, opis, zn, NUM) VALUES ('$username', '$q', '$w', '$k', '$o', 'на проверке', '1')";
$rb=mysql_query ($sqbl);
header("Location: acaunt.php");
}
elseif($m == "red")
{
$yyy = "UPDATE `topsite` SET `kate` = '$k' , `name` = '$q', `opis` = '$o', `ssilka` = '$w' WHERE `id` =' $i' ";
$r=mysql_query ($yyy) or die(mysql_error());
header("Location: acaunt.php");
}
}
}
}
}
?>
почему скрипт тупо игнорит ето условие
if($k == "NULL")
{
echo 'выберите каталог';
}
Спустя 2 минуты, 30 секунд (26.02.2011 - 21:55) Dron19 написал(а):
Цитата (inpost @ 26.02.2011 - 18:02) |
Dron19 Не шаблона! qaz333 Начало и конец строки, то есть поиск будет браться от самого начала строки и до самого конца, а не в середине. То есть от начала строки случайные символы (от 3-х до 10) до конца! По поводу модификатора i уже ответили =) |
это одно и тоже, потому что регулярки рассматривают всю строку посимвольно, так что это синоним в данном случае
Спустя 54 секунды (26.02.2011 - 21:56) alex12060 написал(а):
if($k == "NULL")
{
echo 'выберите каталог';
}
NULL - эо тип данных, не строка, а ТИП ДАННЫХ.
Если хочешь проверять так, с "", то ставь 3 равно. Они проверяют само слово.
А == проверют и тип, и все подобное.
Поэтому, убирай "", либо, ставь 3 равно.
Спустя 13 секунд (26.02.2011 - 21:56) Dron19 написал(а):
потому что надо так
if($k == NULL)
{
echo 'выберите каталог';
}
Спустя 30 секунд (26.02.2011 - 21:56) Dron19 написал(а):
ой, не успел
Спустя 8 минут, 4 секунды (26.02.2011 - 22:04) qaz333 написал(а):
а.., понял, всем на сегодня спасибо
Спустя 2 дня, 19 часов, 47 минут, 20 секунд (1.03.2011 - 17:52) qaz333 написал(а):
всем привет, хотел поинтерисоватся, почему етот скрипт не пропускает русские и украинские буквы
if(!preg_match("/^[a-zA-Z0-9а-яА-Я\s\.\,]{10,40}$/", $o))
{
echo 'описание задано неправильно';
}
else
{
Спустя 47 минут, 57 секунд (1.03.2011 - 18:40) qaz333 написал(а):
хелп
Спустя 9 минут, 11 секунд (1.03.2011 - 18:49) inpost написал(а):
qaz333
модификаторы: u - для ЮТФ. и можно добавить is, по желанию.
модификаторы: u - для ЮТФ. и можно добавить is, по желанию.
Спустя 2 часа, 5 минут, 48 секунд (1.03.2011 - 20:55) qaz333 написал(а):
Цитата (inpost @ 1.03.2011 - 15:49) |
qaz333 модификаторы: u - для ЮТФ. и можно добавить is, по желанию. |
не помогло, или я не так сделал
if(!preg_match("/^[a-zA-Z0-9а-яА-Я\s\.\,]{10,40}$/u", $o))
{
echo 'описание задано неправильно';
}
else
{
Спустя 10 минут, 59 секунд (1.03.2011 - 21:06) inpost написал(а):
на первый взгляд всё верно, покажи текст, который ты вставляешь туда. (Как совет, отдельно ещё букву ёЁ добавить надо.
У тебя от 10 до 40 букв проходить должны.
У тебя от 10 до 40 букв проходить должны.
Спустя 38 минут, 44 секунды (1.03.2011 - 21:44) qaz333 написал(а):
любой текст где есть русские или украинские буквы не проходит
Спустя 1 час, 34 минуты, 26 секунд (1.03.2011 - 23:19) qaz333 написал(а):
хелп